Comments (2)
!nim c
import std / sequtils
type
OrderedContainer*[T] = concept x # basically openarray in concept form
x.len is SomeInteger
for index, item in x.pairs:
index is Ordinal
item is T
type IndexType = typeOf(x.pairs.toSeq[0].key)
x[IndexType] is T
let exampleData = @[1, 2, 3]
block conceptInsideOpenArray:
proc conceptProc[T](arg: OrderedContainer[T]) =
echo arg.len
proc openarrayProc[T](arg: openarray[T]) =
conceptProc(arg)
conceptProc(exampleData) # compiles
openarrayProc(exampleData) # code gen fails
block openArrayInsideConcept:
proc openarrayProc2[T](arg: openarray[T]) =
echo arg.len
proc conceptProc2[T](arg: OrderedContainer[T]) =
openarrayProc2(arg)
openarrayProc2(exampleData) # compiles
conceptProc2(exampleData) # nim compiler crash
from nim.
🐧 Linux bisect by @juancarlospaco (collaborator)
devel 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Error: internal error: openArrayLoc: OrderedContainer[int, OrderedContainer]
assertions.nim(34) raiseAssert
Error: unhandled exception: errInternal [AssertionDefect]
IR
Compiled filesize0 (0 bytes)
Stats
- Started
2024-07-21T22:35:48
- Finished
2024-07-21T22:35:49
- Duration
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("sequtils")
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("OrderedContainer")
),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkTypeClassTy.newTree(
nnkArgList.newTree(
newIdentNode("x")
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("len")
),
newIdentNode("SomeInteger")
),
nnkForStmt.newTree(
newIdentNode("index"),
newIdentNode("item"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("index"),
newIdentNode("Ordinal")
),
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("item"),
newIdentNode("T")
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("IndexType"),
newEmptyNode(),
nnkCall.newTree(
newIdentNode("typeOf"),
nnkDotExpr.newTree(
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
newIdentNode("toSeq")
),
newLit(0)
),
newIdentNode("key")
)
)
)
),
nnkInfix.newTree(
newIdentNode("is"),
nnkBracketExpr.newTree(
newIdentNode("x"),
newIdentNode("IndexType")
),
newIdentNode("T")
)
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("exampleData"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit(1),
newLit(2),
newLit(3)
)
)
)
),
nnkBlockStmt.newTree(
newIdentNode("conceptInsideOpenArray"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("conceptProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("openarrayProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("openarrayProc"),
newIdentNode("exampleData")
)
)
),
nnkBlockStmt.newTree(
newIdentNode("openArrayInsideConcept"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("openarrayProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("conceptProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("conceptProc2"),
newIdentNode("exampleData")
)
)
)
)
stable 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Error: internal error: openArrayLoc: OrderedContainer[int, OrderedContainer]
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(682, 5) `false` errInternal [AssertionDefect]
IR
Compiled filesize0 (0 bytes)
Stats
- Started
2024-07-21T22:35:52
- Finished
2024-07-21T22:35:53
- Duration
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("sequtils")
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("OrderedContainer")
),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkTypeClassTy.newTree(
nnkArgList.newTree(
newIdentNode("x")
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("len")
),
newIdentNode("SomeInteger")
),
nnkForStmt.newTree(
newIdentNode("index"),
newIdentNode("item"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("index"),
newIdentNode("Ordinal")
),
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("item"),
newIdentNode("T")
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("IndexType"),
newEmptyNode(),
nnkCall.newTree(
newIdentNode("typeOf"),
nnkDotExpr.newTree(
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
newIdentNode("toSeq")
),
newLit(0)
),
newIdentNode("key")
)
)
)
),
nnkInfix.newTree(
newIdentNode("is"),
nnkBracketExpr.newTree(
newIdentNode("x"),
newIdentNode("IndexType")
),
newIdentNode("T")
)
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("exampleData"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit(1),
newLit(2),
newLit(3)
)
)
)
),
nnkBlockStmt.newTree(
newIdentNode("conceptInsideOpenArray"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("conceptProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("openarrayProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("openarrayProc"),
newIdentNode("exampleData")
)
)
),
nnkBlockStmt.newTree(
newIdentNode("openArrayInsideConcept"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("openarrayProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("conceptProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("conceptProc2"),
newIdentNode("exampleData")
)
)
)
)
2.0.4 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Error: internal error: openArrayLoc: OrderedContainer[int, OrderedContainer]
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errInternal [AssertionDefect]
IR
Compiled filesize0 (0 bytes)
Stats
- Started
2024-07-21T22:35:55
- Finished
2024-07-21T22:35:56
- Duration
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("sequtils")
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("OrderedContainer")
),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkTypeClassTy.newTree(
nnkArgList.newTree(
newIdentNode("x")
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("len")
),
newIdentNode("SomeInteger")
),
nnkForStmt.newTree(
newIdentNode("index"),
newIdentNode("item"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("index"),
newIdentNode("Ordinal")
),
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("item"),
newIdentNode("T")
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("IndexType"),
newEmptyNode(),
nnkCall.newTree(
newIdentNode("typeOf"),
nnkDotExpr.newTree(
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
newIdentNode("toSeq")
),
newLit(0)
),
newIdentNode("key")
)
)
)
),
nnkInfix.newTree(
newIdentNode("is"),
nnkBracketExpr.newTree(
newIdentNode("x"),
newIdentNode("IndexType")
),
newIdentNode("T")
)
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("exampleData"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit(1),
newLit(2),
newLit(3)
)
)
)
),
nnkBlockStmt.newTree(
newIdentNode("conceptInsideOpenArray"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("conceptProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("openarrayProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("openarrayProc"),
newIdentNode("exampleData")
)
)
),
nnkBlockStmt.newTree(
newIdentNode("openArrayInsideConcept"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("openarrayProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("conceptProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("conceptProc2"),
newIdentNode("exampleData")
)
)
)
)
2.0.0 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Error: internal error: openArrayLoc: OrderedContainer[int, OrderedContainer]
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(664, 5) `false` errInternal [AssertionDefect]
IR
Compiled filesize0 (0 bytes)
Stats
- Started
2024-07-21T22:35:59
- Finished
2024-07-21T22:35:59
- Duration
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("sequtils")
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("OrderedContainer")
),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkTypeClassTy.newTree(
nnkArgList.newTree(
newIdentNode("x")
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("len")
),
newIdentNode("SomeInteger")
),
nnkForStmt.newTree(
newIdentNode("index"),
newIdentNode("item"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("index"),
newIdentNode("Ordinal")
),
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("item"),
newIdentNode("T")
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("IndexType"),
newEmptyNode(),
nnkCall.newTree(
newIdentNode("typeOf"),
nnkDotExpr.newTree(
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
newIdentNode("toSeq")
),
newLit(0)
),
newIdentNode("key")
)
)
)
),
nnkInfix.newTree(
newIdentNode("is"),
nnkBracketExpr.newTree(
newIdentNode("x"),
newIdentNode("IndexType")
),
newIdentNode("T")
)
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("exampleData"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit(1),
newLit(2),
newLit(3)
)
)
)
),
nnkBlockStmt.newTree(
newIdentNode("conceptInsideOpenArray"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("conceptProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("openarrayProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("openarrayProc"),
newIdentNode("exampleData")
)
)
),
nnkBlockStmt.newTree(
newIdentNode("openArrayInsideConcept"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("openarrayProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("conceptProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("conceptProc2"),
newIdentNode("exampleData")
)
)
)
)
1.6.20 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Error: internal error: openArrayLoc: OrderedContainer[int, OrderedContainer]
fatal.nim(54) sysFatal
Error: unhandled exception: options.nim(662, 14) `false` errInternal [AssertionDefect]
IR
Compiled filesize0 (0 bytes)
Stats
- Started
2024-07-21T22:36:02
- Finished
2024-07-21T22:36:02
- Duration
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("sequtils")
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("OrderedContainer")
),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkTypeClassTy.newTree(
nnkArgList.newTree(
newIdentNode("x")
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("len")
),
newIdentNode("SomeInteger")
),
nnkForStmt.newTree(
newIdentNode("index"),
newIdentNode("item"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("index"),
newIdentNode("Ordinal")
),
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("item"),
newIdentNode("T")
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("IndexType"),
newEmptyNode(),
nnkCall.newTree(
newIdentNode("typeOf"),
nnkDotExpr.newTree(
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
newIdentNode("toSeq")
),
newLit(0)
),
newIdentNode("key")
)
)
)
),
nnkInfix.newTree(
newIdentNode("is"),
nnkBracketExpr.newTree(
newIdentNode("x"),
newIdentNode("IndexType")
),
newIdentNode("T")
)
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("exampleData"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit(1),
newLit(2),
newLit(3)
)
)
)
),
nnkBlockStmt.newTree(
newIdentNode("conceptInsideOpenArray"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("conceptProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("openarrayProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("openarrayProc"),
newIdentNode("exampleData")
)
)
),
nnkBlockStmt.newTree(
newIdentNode("openArrayInsideConcept"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("openarrayProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("conceptProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("conceptProc2"),
newIdentNode("exampleData")
)
)
)
)
1.4.8 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(16, 14) Error: type mismatch: got <seq[int]>
but expected one of:
proc conceptProc[T](arg: OrderedContainer[T])
first type mismatch at position: 1
required type for arg: OrderedContainer[T]
but expression 'exampleData' is of type: seq[int]
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: attempting to call undeclared routine: 'pairs'
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: attempting to call undeclared routine: 'pairs'
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: expression 'pairs' cannot be called
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: expression '' has no type (or is ambiguous)
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(793, 23) template/generic instantiation of `toSeq1` from here
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: illformed AST:
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(793, 23) template/generic instantiation of `toSeq1` from here
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: illformed AST:
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(795, 23) OrderedContainer: wrong number of arguments
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(795, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(756, 17) OrderedContainer: undeclared identifier: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(795, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(756, 17) OrderedContainer: undeclared identifier: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(795, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(764, 27) OrderedContainer: undeclared identifier: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(795, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(764, 27) OrderedContainer: undeclared identifier: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(795, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(764, 32) OrderedContainer: attempting to call undeclared routine: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(795, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(764, 32) OrderedContainer: attempting to call undeclared routine: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(795, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/pure/collections/sequtils.nim(764, 32) OrderedContainer: type mismatch
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: illformed AST:
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: illformed AST:
expression: conceptProc(exampleData)
IR
Compiled filesize0 (0 bytes)
Stats
- Started
2024-07-21T22:36:04
- Finished
2024-07-21T22:36:05
- Duration
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("sequtils")
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("OrderedContainer")
),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkTypeClassTy.newTree(
nnkArglist.newTree(
newIdentNode("x")
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("len")
),
newIdentNode("SomeInteger")
),
nnkForStmt.newTree(
newIdentNode("index"),
newIdentNode("item"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("index"),
newIdentNode("Ordinal")
),
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("item"),
newIdentNode("T")
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("IndexType"),
newEmptyNode(),
nnkCall.newTree(
newIdentNode("typeOf"),
nnkDotExpr.newTree(
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
newIdentNode("toSeq")
),
newLit(0)
),
newIdentNode("key")
)
)
)
),
nnkInfix.newTree(
newIdentNode("is"),
nnkBracketExpr.newTree(
newIdentNode("x"),
newIdentNode("IndexType")
),
newIdentNode("T")
)
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("exampleData"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit(1),
newLit(2),
newLit(3)
)
)
)
),
nnkBlockStmt.newTree(
newIdentNode("conceptInsideOpenArray"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("conceptProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("openarrayProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("openarrayProc"),
newIdentNode("exampleData")
)
)
),
nnkBlockStmt.newTree(
newIdentNode("openArrayInsideConcept"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("openarrayProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("conceptProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("conceptProc2"),
newIdentNode("exampleData")
)
)
)
)
1.2.18 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(16, 14) Error: type mismatch: got <seq[int]>
but expected one of:
proc conceptProc[T](arg: OrderedContainer[T])
first type mismatch at position: 1
required type for arg: OrderedContainer[T]
but expression 'exampleData' is of type: seq[int]
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: attempting to call undeclared routine: 'pairs'
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: attempting to call undeclared routine: 'pairs'
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: expression 'pairs' cannot be called
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(764, 23) template/generic instantiation of `toSeq1` from here
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: illformed AST:
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(764, 23) template/generic instantiation of `toSeq1` from here
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: illformed AST:
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(766, 23) OrderedContainer: wrong number of arguments
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(766, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(727, 17) OrderedContainer: undeclared identifier: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(766, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(727, 17) OrderedContainer: undeclared identifier: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(766, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(735, 25) OrderedContainer: undeclared identifier: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(766, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(735, 25) OrderedContainer: undeclared identifier: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(766, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(735, 30) OrderedContainer: attempting to call undeclared routine: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(766, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(735, 30) OrderedContainer: attempting to call undeclared routine: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(766, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/pure/collections/sequtils.nim(735, 30) OrderedContainer: type mismatch
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: illformed AST:
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: illformed AST:
expression: conceptProc(exampleData)
IR
Compiled filesize0 (0 bytes)
Stats
- Started
2024-07-21T22:36:07
- Finished
2024-07-21T22:36:07
- Duration
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("sequtils")
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("OrderedContainer")
),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkTypeClassTy.newTree(
nnkArglist.newTree(
newIdentNode("x")
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("len")
),
newIdentNode("SomeInteger")
),
nnkForStmt.newTree(
newIdentNode("index"),
newIdentNode("item"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("index"),
newIdentNode("Ordinal")
),
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("item"),
newIdentNode("T")
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("IndexType"),
newEmptyNode(),
nnkCall.newTree(
newIdentNode("typeOf"),
nnkDotExpr.newTree(
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
newIdentNode("toSeq")
),
newLit(0)
),
newIdentNode("key")
)
)
)
),
nnkInfix.newTree(
newIdentNode("is"),
nnkBracketExpr.newTree(
newIdentNode("x"),
newIdentNode("IndexType")
),
newIdentNode("T")
)
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("exampleData"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit(1),
newLit(2),
newLit(3)
)
)
)
),
nnkBlockStmt.newTree(
newIdentNode("conceptInsideOpenArray"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("conceptProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("openarrayProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("openarrayProc"),
newIdentNode("exampleData")
)
)
),
nnkBlockStmt.newTree(
newIdentNode("openArrayInsideConcept"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("openarrayProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("conceptProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("conceptProc2"),
newIdentNode("exampleData")
)
)
)
)
1.0.10 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(16, 14) Error: type mismatch: got <seq[int]>
but expected one of:
proc conceptProc[T](arg: OrderedContainer[T])
first type mismatch at position: 1
required type for arg: OrderedContainer[T]
but expression 'exampleData' is of type: seq[int]
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: attempting to call undeclared routine: 'pairs'
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: attempting to call undeclared routine: 'pairs'
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: expression 'pairs' cannot be called
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(668, 23) template/generic instantiation of `toSeq1` from here
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: illformed AST:
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(668, 23) template/generic instantiation of `toSeq1` from here
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: illformed AST:
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(670, 23) OrderedContainer: wrong number of arguments
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(670, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(631, 17) OrderedContainer: undeclared identifier: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(670, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(631, 17) OrderedContainer: undeclared identifier: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(670, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(639, 25) OrderedContainer: undeclared identifier: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(670, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(639, 25) OrderedContainer: undeclared identifier: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(670, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(639, 30) OrderedContainer: attempting to call undeclared routine: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(670, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(639, 30) OrderedContainer: attempting to call undeclared routine: 'iter2'
/home/runner/work/Nim/Nim/temp.nim(8, 36) template/generic instantiation of `toSeq` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(670, 23) template/generic instantiation of `toSeq2` from here
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/pure/collections/sequtils.nim(639, 30) OrderedContainer: type mismatch
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: illformed AST:
/home/runner/work/Nim/Nim/temp.nim(8, 30) OrderedContainer: illformed AST:
expression: conceptProc(exampleData)
IR
Compiled filesize0 (0 bytes)
Stats
- Started
2024-07-21T22:36:09
- Finished
2024-07-21T22:36:09
- Duration
AST
nnkStmtList.newTree(
nnkImportStmt.newTree(
nnkInfix.newTree(
newIdentNode("/"),
newIdentNode("std"),
newIdentNode("sequtils")
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("OrderedContainer")
),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkTypeClassTy.newTree(
nnkArglist.newTree(
newIdentNode("x")
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("len")
),
newIdentNode("SomeInteger")
),
nnkForStmt.newTree(
newIdentNode("index"),
newIdentNode("item"),
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("index"),
newIdentNode("Ordinal")
),
nnkInfix.newTree(
newIdentNode("is"),
newIdentNode("item"),
newIdentNode("T")
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("IndexType"),
newEmptyNode(),
nnkCall.newTree(
newIdentNode("typeOf"),
nnkDotExpr.newTree(
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("pairs")
),
newIdentNode("toSeq")
),
newLit(0)
),
newIdentNode("key")
)
)
)
),
nnkInfix.newTree(
newIdentNode("is"),
nnkBracketExpr.newTree(
newIdentNode("x"),
newIdentNode("IndexType")
),
newIdentNode("T")
)
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("exampleData"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit(1),
newLit(2),
newLit(3)
)
)
)
),
nnkBlockStmt.newTree(
newIdentNode("conceptInsideOpenArray"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("conceptProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("openarrayProc"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("conceptProc"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("openarrayProc"),
newIdentNode("exampleData")
)
)
),
nnkBlockStmt.newTree(
newIdentNode("openArrayInsideConcept"),
nnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("openarrayProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("openarray"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkDotExpr.newTree(
newIdentNode("arg"),
newIdentNode("len")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("conceptProc2"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("T"),
newEmptyNode(),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("arg"),
nnkBracketExpr.newTree(
newIdentNode("OrderedContainer"),
newIdentNode("T")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("arg")
)
)
),
nnkCall.newTree(
newIdentNode("openarrayProc2"),
newIdentNode("exampleData")
),
nnkCall.newTree(
newIdentNode("conceptProc2"),
newIdentNode("exampleData")
)
)
)
)
Stats
- GCC
11.4.0
- Clang
14.0.0
- NodeJS
20.4
- Created
2024-07-21T22:35:22Z
- Comments
1
- Commands
nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
🤖 Bug found in 23 minutes
bisecting 8
commits at 0
commits per second
from nim.
Related Issues (20)
- Regression - cannot instantiate Maybe generic arguments are missing HOT 5
- Identifier expected or compiler segfault with templates over generic type in type section HOT 3
- Nested generic/static parameter: undeclared identifier in typesections HOT 2
- 2.2.0 rc1 regression with cdecl functions
- Warnings missing when compiling the same file twice HOT 4
- `genericsOpenSym` not working when additional generally non-matching symbol with same name is present HOT 1
- nimsuggest crashes when using `--mm:arc/orc` and if an object that contains `string` or `seq` is constructed HOT 2
- ARC hooks missing when sinking generic typeclass HOT 3
- os module uses wrong path separator in nimvm when cross-compiling HOT 2
- Objects can protect illegal recursion but tuples cant HOT 4
- Extract/move can cause SIGSEGV error when used with 2D sequences HOT 7
- Nested dirty template in generic proc HOT 11
- Disambiguating module of template call with shared symbol prevents building
- succ raise OverflowDefect, succ does not handle unsigned integers correctly HOT 1
- Useless empty C files with arc/orc
- Identifier exported as typename in one module and `template` in another can't be used in `template`
- JS Browser sourcemap support | net::ERR_FILE_NOT_FOUND
- Call operator fails to bind across imports HOT 2
- Compiler infers `sink` in return type from `auto` HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nim.