This PR fixes #13268 where `local macro` (and other local declarations) with compound names of depth ≥ 3 would silently lose their local entries. When `expandNamespacedDeclaration` rewrites e.g. `local macro (name := A.B.C) ...` into `namespace A.B.C; end_local_scope; ...; end A.B.C`, the compound `namespace A.B.C` pushes multiple scopes, but `end_local_scope` only marked the topmost scope as non-delimiting. This meant `addLocalEntry`'s stack traversal would stop at the first unmarked scope, and the local entry would be lost when the namespace scopes were popped. The fix parameterizes `end_local_scope` with a depth argument so it marks exactly the right number of scope levels as non-delimiting. `expandNamespacedDeclaration` now passes `ns.getNumParts` as the depth, and `expandInCmd` passes `1`. Closes #13268
4 lines
36 B
Text
4 lines
36 B
Text
42 : Nat
|
|
42 : Nat
|
|
42 : Nat
|
|
42 : Nat
|