-
-
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
generic types parameter asserts the compiler (#2) #22647
Comments
!nim c proc c0(n: static int): int = 8
proc c1(n: static int): int = n div 2
proc c2(n: static int): int = n * 2
type
a[N: static int] = object
f0 : array[N, int]
b[N: static int] = object
f0 : a[c0(N)] # does not work
f1 : a[c1(N)] # does not work
f2 : a[c2(N)] # does not work
f3 : a[N * 2] # does not work
f4 : a[N] # works
proc p[N: static int](x : a[N]) = echo x.f0[0]
proc p[N: static int](x : b[N]) =
x.f0.p()
x.f1.p()
x.f2.p()
x.f3.p()
x.f4.p()
var x: b[4]
x.p() |
@dagan-deon (none) devel 👎 FAILOutput
Stats
IRCompiled filesize0 bytes (0 bytes)
ASTnnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("c0"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
newLit(8)
)
),
nnkProcDef.newTree(
newIdentNode("c1"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("div"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkProcDef.newTree(
newIdentNode("c2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("a"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
),
newEmptyNode()
)
)
)
),
nnkTypeDef.newTree(
newIdentNode("b"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c0"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f1"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c1"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f2"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c2"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f3"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("N"),
newLit(2)
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f4"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newLit(0)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f1")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f2")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f3")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f4")
),
newIdentNode("p")
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newLit(4)
),
newEmptyNode()
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("p")
)
)
) stable 👎 FAILOutput
Stats
IRCompiled filesize0 bytes (0 bytes)
ASTnnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("c0"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
newLit(8)
)
),
nnkProcDef.newTree(
newIdentNode("c1"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("div"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkProcDef.newTree(
newIdentNode("c2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("a"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
),
newEmptyNode()
)
)
)
),
nnkTypeDef.newTree(
newIdentNode("b"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c0"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f1"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c1"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f2"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c2"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f3"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("N"),
newLit(2)
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f4"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newLit(0)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f1")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f2")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f3")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f4")
),
newIdentNode("p")
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newLit(4)
),
newEmptyNode()
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("p")
)
)
) 2.0.0 👎 FAILOutput
Stats
IRCompiled filesize0 bytes (0 bytes)
ASTnnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("c0"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
newLit(8)
)
),
nnkProcDef.newTree(
newIdentNode("c1"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("div"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkProcDef.newTree(
newIdentNode("c2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("a"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
),
newEmptyNode()
)
)
)
),
nnkTypeDef.newTree(
newIdentNode("b"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c0"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f1"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c1"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f2"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c2"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f3"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("N"),
newLit(2)
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f4"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newLit(0)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f1")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f2")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f3")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f4")
),
newIdentNode("p")
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newLit(4)
),
newEmptyNode()
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("p")
)
)
) 1.6.0 👎 FAILOutput
Stats
IRCompiled filesize0 bytes (0 bytes)
ASTnnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("c0"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
newLit(8)
)
),
nnkProcDef.newTree(
newIdentNode("c1"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("div"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkProcDef.newTree(
newIdentNode("c2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("a"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
),
newEmptyNode()
)
)
)
),
nnkTypeDef.newTree(
newIdentNode("b"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c0"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f1"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c1"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f2"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c2"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f3"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("N"),
newLit(2)
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f4"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newLit(0)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f1")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f2")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f3")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f4")
),
newIdentNode("p")
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newLit(4)
),
newEmptyNode()
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("p")
)
)
) 1.4.0 👎 FAILOutput
Stats
IRCompiled filesize0 bytes (0 bytes)
ASTnnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("c0"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
newLit(8)
)
),
nnkProcDef.newTree(
newIdentNode("c1"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("div"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkProcDef.newTree(
newIdentNode("c2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("a"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
),
newEmptyNode()
)
)
)
),
nnkTypeDef.newTree(
newIdentNode("b"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c0"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f1"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c1"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f2"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c2"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f3"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("N"),
newLit(2)
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f4"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newLit(0)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f1")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f2")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f3")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f4")
),
newIdentNode("p")
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newLit(4)
),
newEmptyNode()
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("p")
)
)
) 1.2.0 👎 FAILOutput
Stats
IRCompiled filesize0 bytes (0 bytes)
ASTnnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("c0"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
newLit(8)
)
),
nnkProcDef.newTree(
newIdentNode("c1"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("div"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkProcDef.newTree(
newIdentNode("c2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("a"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
),
newEmptyNode()
)
)
)
),
nnkTypeDef.newTree(
newIdentNode("b"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c0"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f1"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c1"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f2"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c2"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f3"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("N"),
newLit(2)
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f4"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newLit(0)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f1")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f2")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f3")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f4")
),
newIdentNode("p")
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newLit(4)
),
newEmptyNode()
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("p")
)
)
) 1.0.0 👎 FAILOutput
Stats
IRCompiled filesize0 bytes (0 bytes)
ASTnnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("c0"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
newLit(8)
)
),
nnkProcDef.newTree(
newIdentNode("c1"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("div"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkProcDef.newTree(
newIdentNode("c2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("a"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
),
newEmptyNode()
)
)
)
),
nnkTypeDef.newTree(
newIdentNode("b"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c0"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f1"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c1"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f2"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c2"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f3"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("N"),
newLit(2)
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f4"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newLit(0)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f1")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f2")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f3")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f4")
),
newIdentNode("p")
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newLit(4)
),
newEmptyNode()
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("p")
)
)
) 0.20.2 👎 FAILOutput
Stats
IRCompiled filesize0 bytes (0 bytes)
ASTnnkStmtList.newTree(
nnkProcDef.newTree(
newIdentNode("c0"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
newLit(8)
)
),
nnkProcDef.newTree(
newIdentNode("c1"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("div"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkProcDef.newTree(
newIdentNode("c2"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newIdentNode("int"),
nnkIdentDefs.newTree(
newIdentNode("n"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("n"),
newLit(2)
)
)
),
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("a"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("array"),
newIdentNode("N"),
newIdentNode("int")
),
newEmptyNode()
)
)
)
),
nnkTypeDef.newTree(
newIdentNode("b"),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("f0"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c0"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f1"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c1"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f2"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkCall.newTree(
newIdentNode("c2"),
newIdentNode("N")
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f3"),
nnkBracketExpr.newTree(
newIdentNode("a"),
nnkInfix.newTree(
newIdentNode("*"),
newIdentNode("N"),
newLit(2)
)
),
newEmptyNode()
),
nnkIdentDefs.newTree(
newIdentNode("f4"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("a"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newLit(0)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("p"),
newEmptyNode(),
nnkGenericParams.newTree(
nnkIdentDefs.newTree(
newIdentNode("N"),
nnkCommand.newTree(
newIdentNode("static"),
newIdentNode("int")
),
newEmptyNode()
)
),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newIdentNode("N")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f0")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f1")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f2")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f3")
),
newIdentNode("p")
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("f4")
),
newIdentNode("p")
)
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkBracketExpr.newTree(
newIdentNode("b"),
newLit(4)
),
newEmptyNode()
)
),
nnkCall.newTree(
nnkDotExpr.newTree(
newIdentNode("x"),
newIdentNode("p")
)
)
) Stats
🤖 Bug found in |
Not an early generic semchecking bug, for some reason |
What is the status/plan for this?
|
I mean it should work. Can't really say when it will be fixed if someone doesn't have a solution, and no one has suggested one. Can't think of a workaround right now either. |
ok thanks. I think I will need to make time to dig into the compiler internals. |
Seems to work now? No idea how |
It compiles but the
And changing it to |
Description
Nim Version
Nim Compiler Version 2.1.1 [Linux: amd64]
Compiled at 2023-09-05
Copyright (c) 2006-2023 by Andreas Rumpf
git hash: 8f7aedb
active boot switches: -d:release
Current Output
Expected Output
No response
Possible Solution
No response
Additional Information
No response
The text was updated successfully, but these errors were encountered: