Coder Social home page Coder Social logo

nim-1.6.14 regression: overload resolution between function that returns iterator and other type always expects iterator about nim HOT 3 CLOSED

dsemi avatar dsemi commented on May 31, 2024
nim-1.6.14 regression: overload resolution between function that returns iterator and other type always expects iterator

from nim.

Comments (3)

ringabout avatar ringabout commented on May 31, 2024 1

!nim c

import sugar
import sequtils

proc dosomething(iter: int -> (iterator: int)) =
  discard

proc dosomething(iter: int -> seq[int]) =
  discard

proc makeSeq(x: int): seq[int] =
  @[x]

# Works fine with 1.6.12 and 1.6.14
dosomething(makeSeq)

# Works with 1.6.12, fails with 1.6.14
dosomething((y) => makeSeq(y))

from nim.

github-actions avatar github-actions commented on May 31, 2024
🐧 Linux bisect by @ringabout (member)
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
/home/runner/work/Nim/Nim/temp.nim(12, 27) Error: type mismatch: got 'seq[int]' for 'makeSeq(y)' but expected 'iterator (): int{.closure.}'
assertions.nim(34)       raiseAssert
Error: unhandled exception: errGenerated [AssertionDefect]

IR

Compiled filesize 0 bytes (0 bytes)

Stats

  • Started 2024-01-12T03:07:22
  • Finished 2024-01-12T03:07:22
  • Duration

AST

nnkStmtList.newTree(
  nnkImportStmt.newTree(
    newIdentNode("sugar")
  ),
  nnkImportStmt.newTree(
    newIdentNode("sequtils")
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkPar.newTree(
            nnkIteratorTy.newTree(
              nnkFormalParams.newTree(
                newIdentNode("int")
              ),
              newEmptyNode()
            )
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkBracketExpr.newTree(
            newIdentNode("seq"),
            newIdentNode("int")
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("makeSeq"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("seq"),
        newIdentNode("int")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("x"),
        newIdentNode("int"),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkPrefix.newTree(
        newIdentNode("@"),
        nnkBracket.newTree(
          newIdentNode("x")
        )
      )
    )
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    newIdentNode("makeSeq")
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    nnkInfix.newTree(
      newIdentNode("=>"),
      nnkPar.newTree(
        newIdentNode("y")
      ),
      nnkCall.newTree(
        newIdentNode("makeSeq"),
        newIdentNode("y")
      )
    )
  )
)
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
/home/runner/work/Nim/Nim/temp.nim(12, 27) Error: type mismatch: got 'seq[int]' for 'makeSeq(y)' but expected 'iterator (): int{.closure.}'
assertions.nim(34)       raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]

IR

Compiled filesize 0 bytes (0 bytes)

Stats

  • Started 2024-01-12T03:07:23
  • Finished 2024-01-12T03:07:23
  • Duration

AST

nnkStmtList.newTree(
  nnkImportStmt.newTree(
    newIdentNode("sugar")
  ),
  nnkImportStmt.newTree(
    newIdentNode("sequtils")
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkPar.newTree(
            nnkIteratorTy.newTree(
              nnkFormalParams.newTree(
                newIdentNode("int")
              ),
              newEmptyNode()
            )
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkBracketExpr.newTree(
            newIdentNode("seq"),
            newIdentNode("int")
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("makeSeq"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("seq"),
        newIdentNode("int")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("x"),
        newIdentNode("int"),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkPrefix.newTree(
        newIdentNode("@"),
        nnkBracket.newTree(
          newIdentNode("x")
        )
      )
    )
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    newIdentNode("makeSeq")
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    nnkInfix.newTree(
      newIdentNode("=>"),
      nnkPar.newTree(
        newIdentNode("y")
      ),
      nnkCall.newTree(
        newIdentNode("makeSeq"),
        newIdentNode("y")
      )
    )
  )
)
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
/home/runner/work/Nim/Nim/temp.nim(12, 27) Error: type mismatch: got 'seq[int]' for 'makeSeq(y)' but expected 'iterator (): int{.closure.}'
assertions.nim(34)       raiseAssert
Error: unhandled exception: options.nim(664, 5) `false` errGenerated [AssertionDefect]

IR

Compiled filesize 0 bytes (0 bytes)

Stats

  • Started 2024-01-12T03:07:26
  • Finished 2024-01-12T03:07:26
  • Duration

AST

nnkStmtList.newTree(
  nnkImportStmt.newTree(
    newIdentNode("sugar")
  ),
  nnkImportStmt.newTree(
    newIdentNode("sequtils")
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkPar.newTree(
            nnkIteratorTy.newTree(
              nnkFormalParams.newTree(
                newIdentNode("int")
              ),
              newEmptyNode()
            )
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkBracketExpr.newTree(
            newIdentNode("seq"),
            newIdentNode("int")
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("makeSeq"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("seq"),
        newIdentNode("int")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("x"),
        newIdentNode("int"),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkPrefix.newTree(
        newIdentNode("@"),
        nnkBracket.newTree(
          newIdentNode("x")
        )
      )
    )
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    newIdentNode("makeSeq")
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    nnkInfix.newTree(
      newIdentNode("=>"),
      nnkPar.newTree(
        newIdentNode("y")
      ),
      nnkCall.newTree(
        newIdentNode("makeSeq"),
        newIdentNode("y")
      )
    )
  )
)
1.6.14 👎 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(12, 27) Error: type mismatch: got 'seq[int]' for 'makeSeq(y)' but expected 'iterator (): int{.closure.}'
fatal.nim(54)            sysFatal
Error: unhandled exception: options.nim(645, 14) `false` errGenerated [AssertionDefect]

IR

Compiled filesize 0 bytes (0 bytes)

Stats

  • Started 2024-01-12T03:07:28
  • Finished 2024-01-12T03:07:29
  • Duration

AST

nnkStmtList.newTree(
  nnkImportStmt.newTree(
    newIdentNode("sugar")
  ),
  nnkImportStmt.newTree(
    newIdentNode("sequtils")
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkPar.newTree(
            nnkIteratorTy.newTree(
              nnkFormalParams.newTree(
                newIdentNode("int")
              ),
              newEmptyNode()
            )
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkBracketExpr.newTree(
            newIdentNode("seq"),
            newIdentNode("int")
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("makeSeq"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("seq"),
        newIdentNode("int")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("x"),
        newIdentNode("int"),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkPrefix.newTree(
        newIdentNode("@"),
        nnkBracket.newTree(
          newIdentNode("x")
        )
      )
    )
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    newIdentNode("makeSeq")
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    nnkInfix.newTree(
      newIdentNode("=>"),
      nnkPar.newTree(
        newIdentNode("y")
      ),
      nnkCall.newTree(
        newIdentNode("makeSeq"),
        newIdentNode("y")
      )
    )
  )
)
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(12, 12) Error: ambiguous call; both temp.dosomething(iter: proc (i0: int): iterator (): int{.closure.}{.closure.}) [declared in /home/runner/work/Nim/Nim/temp.nim(3, 6)] and temp.dosomething(iter: proc (i0: int): seq[int]{.closure.}) [declared in /home/runner/work/Nim/Nim/temp.nim(5, 6)] match for: (proc (y: GenericParam): untyped)

IR

Compiled filesize 0 bytes (0 bytes)

Stats

  • Started 2024-01-12T03:07:31
  • Finished 2024-01-12T03:07:31
  • Duration

AST

nnkStmtList.newTree(
  nnkImportStmt.newTree(
    newIdentNode("sugar")
  ),
  nnkImportStmt.newTree(
    newIdentNode("sequtils")
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkPar.newTree(
            nnkIteratorTy.newTree(
              nnkFormalParams.newTree(
                newIdentNode("int")
              ),
              newEmptyNode()
            )
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkBracketExpr.newTree(
            newIdentNode("seq"),
            newIdentNode("int")
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("makeSeq"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("seq"),
        newIdentNode("int")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("x"),
        newIdentNode("int"),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkPrefix.newTree(
        newIdentNode("@"),
        nnkBracket.newTree(
          newIdentNode("x")
        )
      )
    )
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    newIdentNode("makeSeq")
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    nnkInfix.newTree(
      newIdentNode("=>"),
      nnkPar.newTree(
        newIdentNode("y")
      ),
      nnkCall.newTree(
        newIdentNode("makeSeq"),
        newIdentNode("y")
      )
    )
  )
)
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(12, 12) Error: ambiguous call; both temp.dosomething(iter: proc (i0: int): iterator (): int{.closure.}{.closure.}) [declared in /home/runner/work/Nim/Nim/temp.nim(3, 6)] and temp.dosomething(iter: proc (i0: int): seq[int]{.closure.}) [declared in /home/runner/work/Nim/Nim/temp.nim(5, 6)] match for: (proc (y: GenericParam): untyped)

IR

Compiled filesize 0 bytes (0 bytes)

Stats

  • Started 2024-01-12T03:07:33
  • Finished 2024-01-12T03:07:33
  • Duration

AST

nnkStmtList.newTree(
  nnkImportStmt.newTree(
    newIdentNode("sugar")
  ),
  nnkImportStmt.newTree(
    newIdentNode("sequtils")
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkPar.newTree(
            nnkIteratorTy.newTree(
              nnkFormalParams.newTree(
                newIdentNode("int")
              ),
              newEmptyNode()
            )
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkBracketExpr.newTree(
            newIdentNode("seq"),
            newIdentNode("int")
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("makeSeq"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("seq"),
        newIdentNode("int")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("x"),
        newIdentNode("int"),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkPrefix.newTree(
        newIdentNode("@"),
        nnkBracket.newTree(
          newIdentNode("x")
        )
      )
    )
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    newIdentNode("makeSeq")
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    nnkInfix.newTree(
      newIdentNode("=>"),
      nnkPar.newTree(
        newIdentNode("y")
      ),
      nnkCall.newTree(
        newIdentNode("makeSeq"),
        newIdentNode("y")
      )
    )
  )
)
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(12, 12) Error: ambiguous call; both temp.dosomething(iter: proc (i0: int): iterator (): int{.closure.}{.closure.}) [declared in /home/runner/work/Nim/Nim/temp.nim(3, 6)] and temp.dosomething(iter: proc (i0: int): seq[int]{.closure.}) [declared in /home/runner/work/Nim/Nim/temp.nim(5, 6)] match for: (proc (y: GenericParam): untyped)

IR

Compiled filesize 0 bytes (0 bytes)

Stats

  • Started 2024-01-12T03:07:35
  • Finished 2024-01-12T03:07:35
  • Duration

AST

nnkStmtList.newTree(
  nnkImportStmt.newTree(
    newIdentNode("sugar")
  ),
  nnkImportStmt.newTree(
    newIdentNode("sequtils")
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkPar.newTree(
            nnkIteratorTy.newTree(
              nnkFormalParams.newTree(
                newIdentNode("int")
              ),
              newEmptyNode()
            )
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("dosomething"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode(),
      nnkIdentDefs.newTree(
        newIdentNode("iter"),
        nnkInfix.newTree(
          newIdentNode("->"),
          newIdentNode("int"),
          nnkBracketExpr.newTree(
            newIdentNode("seq"),
            newIdentNode("int")
          )
        ),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkDiscardStmt.newTree(
        newEmptyNode()
      )
    )
  ),
  nnkProcDef.newTree(
    newIdentNode("makeSeq"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      nnkBracketExpr.newTree(
        newIdentNode("seq"),
        newIdentNode("int")
      ),
      nnkIdentDefs.newTree(
        newIdentNode("x"),
        newIdentNode("int"),
        newEmptyNode()
      )
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkPrefix.newTree(
        newIdentNode("@"),
        nnkBracket.newTree(
          newIdentNode("x")
        )
      )
    )
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    newIdentNode("makeSeq")
  ),
  nnkCall.newTree(
    newIdentNode("dosomething"),
    nnkInfix.newTree(
      newIdentNode("=>"),
      nnkPar.newTree(
        newIdentNode("y")
      ),
      nnkCall.newTree(
        newIdentNode("makeSeq"),
        newIdentNode("y")
      )
    )
  )
)
Stats
  • GCC 11.4.0
  • Clang 14.0.0
  • NodeJS 19.0
  • Created 2024-01-12T03:06:52Z
  • 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 16 minutes bisecting 7 commits at 0 commits per second

from nim.

dsemi avatar dsemi commented on May 31, 2024

Neat tool! Maybe a good feature request is to be able to set boundaries in case there's some set of code that's also broken on old versions like it appears this is.

I manually bisected and found 4ea0ce9 to be the culprit.

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.