-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Static seq default arguments cause incorrect type mismatch #22793
Comments
!nim c const x = @["a", "b"]
proc myProc(x: seq[string]) = echo x
x.myProc()
proc myProc2(x: seq[string] = @[]) = echo x
x.myProc2()
proc myProc3(x: static seq[string]) = echo x
x.myProc3()
proc myProc4(x: static seq[string] = @[]) = echo x
x.myProc4() |
🐧 Linux bisect by @juancarlospaco (collaborator)devel 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) stable 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 2.0.0 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 1.6.14 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 1.4.8 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 1.2.18 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 1.0.10 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) Stats
🤖 Bug found in |
🪟 Windows bisect by @juancarlospaco (collaborator)devel 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) stable 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 2.0.0 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 1.6.14 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 1.4.8 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 1.2.18 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 1.0.10 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) Stats
🤖 Bug found in |
🍎 macOS bisect by @juancarlospaco (collaborator)devel 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) stable 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 2.0.0 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 1.6.14 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 1.4.8 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 1.2.18 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) 1.0.10 👎 FAILOutput
IRCompiled filesize0 bytes (0 bytes)
Stats
ASTnnkStmtList.newTree(
nnkConstSection.newTree(
nnkConstDef.newTree(
newIdentNode("x"),
newEmptyNode(),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
newLit("a"),
newLit("b")
)
)
)
),
nnkProcDef.newTree(
newIdentNode("myProc"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc")
)
),
nnkProcDef.newTree(
newIdentNode("myProc2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc2")
)
),
nnkProcDef.newTree(
newIdentNode("myProc3"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc3")
)
),
nnkProcDef.newTree(
newIdentNode("myProc4"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkCommand.newTree(
newIdentNode("static"),
nnkBracketExpr.newTree(
newIdentNode("seq"),
newIdentNode("string")
)
),
nnkPrefix.newTree(
newIdentNode("@"),
nnkBracket.newTree(
)
)
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("x")
)
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("myProc4")
)
)
) Stats
🤖 Bug found in |
Not related to empty sequence type inference? Also where is the compiler crash? const x = @["a", "b"]
proc myProc4(x: static seq[string] = @["a"]) =
echo x
x.myProc4()
|
I'm happy to rename based on suggestions. |
Sorry for misleading, there seems to be 2 issues here:
proc myProc3(x: static seq[string]) =
echo x
myProc3(@[]) # type mismatch with echo
Same issue #9863 |
refs nim-lang#24184, refs (fixes) nim-lang#23010, nim-lang#22793
fixes #23010, split from #24195 When resemming bracket nodes, the compiler currently unconditionally makes a new node with an array type based on the node. However the VM can generate bracket nodes with `seq` types, which this erases. To fix this, if a bracket node already has a type, we still resem the bracket node, but don't construct a new type for it, instead using the type of the original node. A version of this was rejected that didn't resem the node at all if it was typed, but I can't find it. The difference with this one is that the individual elements are still resemmed. This should fix the break caused by #24184 so we could redo it after this PR but it might still have issues, not to mention the related pre-existing issues like #22793, #12559 etc.
Description
With procs you have the feature that you can assign default values to their parameters.
proc someProc(x: int = 5)
is a valid proc, which uses5
as a parameter value if the parameterx
is not set by the caller ofsomeProc
.For sequences you can pass even pass empty sequences as default values!
This does not break, because the compiler will infer the type of the empty seq based on the type of the parameter itself.
This inference breaks when the parameter type is a static seq.
See below an example:
Nim Version
Nim Compiler Version 2.0.0 [Linux: amd64]
Compiled at 2023-08-01
Copyright (c) 2006-2023 by Andreas Rumpf
git hash: a488067
active boot switches: -d:release
Current Output
Expected Output
Possible Solution
No response
Additional Information
static seq[T]
is the only other type I could create this kind of problem for.For other more generic types like
Option
it works fine.The text was updated successfully, but these errors were encountered: