Closed jfecher closed 8 months ago
@jfecher what is the status of this issue?
Lowest hanging fruit to attempt to fix would be replacing suspicious usages of hashmap with something like indexmap
@jfecher - "The above is not enough, we would need a dependency tree of structures, we could also use this in places where globals depend on other globals"
Spoke with Jake; he says, ideally name resolution is split into smaller components and we build this dependency tree at the last step to be used in later passes.
Can we re-tag this E-HIGH? I think it'd require a large rewrite of name resolution to first create the graph then follow its nodes to resolve names in that order.
Edit: Retagged it as "Large" myself. Not sure what the precise difference is between Large and X-Large so I kept it on large.
precise difference is between Large and X-Large
Choice is all good as long as it feels right. The Size field is used just as a subjective reference for now.
Aim
Trying to write a program
Expected behavior
Noir should issue an error that nested arrays are currently unimplemented
Bug
The error is only issued sometimes when the program is compiled. This is because on some runs
Array
is resolved first and whenShouldError
is subsequently resolved, it can see all the fields ofArray
and will error that nested arrays are used. On other runs however,ShouldError
is resolved first and sees only an empty struct forArray
and thus does not issue an error. In this case, the program continues until monomorphization where it fails with an unreachable assert.To reproduce
1. 2. 3. 4.
Installation method
None
Nargo version
No response
@noir-lang/noir_wasm version
No response
@noir-lang/barretenberg version
No response
@noir-lang/aztec_backend version
No response
Additional context
No response
Submission Checklist