Giter Site home page Giter Site logo

Comments (2)

juancarlospaco avatar juancarlospaco commented on July 30, 2024 1

!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.

github-actions avatar github-actions commented on July 30, 2024
🐧 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 filesize 0 (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 filesize 0 (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 filesize 0 (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 filesize 0 (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 filesize 0 (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 filesize 0 (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 filesize 0 (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 filesize 0 (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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.