Closed metagn closed 1 week ago
Thanks for your hard work on this PR! The lines below are statistics of the Nim compiler built from 3e47725c08b42515d17d77b3a6c9cc3029e5681c
Hint: mm: orc; opt: speed; options: -d:release 177289 lines; 9.527s; 652.941MiB peakmem
fixes #14067, fixes #15004, fixes #19019
Anonymous procs are added to scope 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 assfGenSym
so they do not get added to scope or cause any name conflicts. The commented outand not isAnon
check wouldn't work becauseisAnon
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.