Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
gensym anonymous proc symbols (#24422)
fixes #14067, fixes #15004, fixes #19019 Anonymous procs are [added to scope](https://github.com/nim-lang/Nim/blob/8091d76306c23b866af00d384b9b6f929ef8ed23/compiler/semstmts.nim#L2466) with the name `:anonymous`. This means that if they have the same signature in a scope, they can consider each other as redefinitions. To prevent this, mark their symbols as `sfGenSym` so they do not get added to scope or cause any name conflicts. The commented out `and not isAnon` check wouldn't work because `isAnon` would not be true if the proc is being resemmed, in which case the name field in the proc AST would have the symbol of the anonymous proc rather than being empty. There is a separate problem of default values in generic/normal procs not opening new scopes which is partially responsible for #19019.
- Loading branch information