@@ -61,12 +61,9 @@ class MacroAnnotations(phase: IdentityDenotTransformer):
61
61
insertedAfter = suffixed :: insertedAfter
62
62
for prefixedTree <- prefixed do
63
63
checkMacroDef(prefixedTree, tree, annot)
64
- enterMissingSymbols(prefixedTree)
65
64
for suffixedTree <- suffixed do
66
65
checkMacroDef(suffixedTree, tree, annot)
67
- enterMissingSymbols(suffixedTree)
68
66
TreeChecker .checkMacroGeneratedTree(tree, newTree)
69
- enterMissingSymbols(newTree)
70
67
newTree
71
68
case (Nil , Nil ) =>
72
69
report.error(i " Unexpected `Nil` returned by `( ${annot.tree}).transform(..)` during macro expansion " , annot.tree.srcPos)
@@ -82,6 +79,7 @@ class MacroAnnotations(phase: IdentityDenotTransformer):
82
79
insertedAfter.foreach(allTrees.++= )
83
80
84
81
val result = allTrees.result()
82
+ for tree <- result do enterMissingSymbols(tree)
85
83
debug.println(result.map(_.show).mkString(" expanded to:\n " , " \n " , " " ))
86
84
result
87
85
@@ -136,7 +134,7 @@ class MacroAnnotations(phase: IdentityDenotTransformer):
136
134
else if annotated.isClass && annotated.owner.is(Package ) /* && !sym.isClass*/ then
137
135
report.error(i " macro annotation can not add top-level ${sym.showKind}. $annot tried to add $sym. " , annot.tree)
138
136
139
- private def enterMissingSymbols (tree : MemberDef )(using Context ) = new TreeTraverser {
137
+ private def enterMissingSymbols (tree : DefTree )(using Context ) = new TreeTraverser {
140
138
def traverse (tree : tpd.Tree )(using Context ): Unit = tree match
141
139
case tdef @ TypeDef (_, template : Template ) =>
142
140
// for tree <- template.constr :: template.body do
@@ -146,7 +144,7 @@ class MacroAnnotations(phase: IdentityDenotTransformer):
146
144
report.error(em " Macro added a definition with the wrong owner - ${tree.symbol.owner} - ${tdef.symbol} in ${tree.source}" )
147
145
else if ! isSymbolInDecls(tree.symbol) then
148
146
tree.symbol.enteredAfter(phase)
149
- traverseChildren(tree) // Taverse before or after dealing with this class?
147
+ traverseChildren(tree) // Traverse before or after dealing with this class?
150
148
case _ => traverseChildren(tree)
151
149
}.traverse(tree)
152
150
0 commit comments