@@ -71,7 +71,7 @@ class PostTyper extends MacroTransform with IdentityDenotTransformer { thisPhase
71
71
override def run (using Context ): Unit =
72
72
val unit = ctx.compilationUnit
73
73
if unit.isJava then
74
- checkAppliedTypes (unit.tpdTree)
74
+ AppliedTypeChecker ().traverse (unit.tpdTree)
75
75
else
76
76
super .run
77
77
@@ -126,34 +126,19 @@ class PostTyper extends MacroTransform with IdentityDenotTransformer { thisPhase
126
126
tree
127
127
end normalizeTypeArgs
128
128
129
- /** Scan a tree and check all the AppliedTypeTrees in it. */
130
- def checkAppliedTypes (tree : Tree )(using Context ): Unit = tree match
131
- case tpt : TypeTree =>
132
- Checking .checkAppliedTypesIn(tpt)
133
- case tree : AppliedTypeTree =>
134
- Checking .checkAppliedType(tree, EmptyTree )
135
- case tree : TypeBoundsTree =>
136
- checkAppliedTypes(tree.hi)
137
- case tree : TypeApply =>
138
- val TypeApply (fn, args) = normalizeTypeArgs(tree)
139
- args.foreach(checkAppliedTypes)
140
- case tree : ValDef =>
141
- checkAppliedTypes(tree.tpt)
142
- case tree : DefDef =>
143
- checkAppliedTypes(tree.tpt)
144
- tree.vparamss.flatten.foreach(checkAppliedTypes)
145
- tree.tparams.foreach(checkAppliedTypes)
146
- case PackageDef (pid, stats) =>
147
- stats.foreach(checkAppliedTypes)
148
- case TypeDef (name, rhs) =>
149
- checkAppliedTypes(rhs)
150
- case t : Template =>
151
- t.parents.foreach(checkAppliedTypes)
152
- t.body.foreach(checkAppliedTypes)
153
- case a : Annotated =>
154
- checkAppliedTypes(a.arg)
155
- case _ =>
156
- // no need to check this
129
+ private class AppliedTypeChecker extends TreeTraverser {
130
+ /** Scan a tree and check all the AppliedTypeTrees in it. */
131
+ def traverse (tree : Tree )(using Context ): Unit = tree match
132
+ case tpt : TypeTree =>
133
+ Checking .checkAppliedTypesIn(tpt)
134
+ case tree : AppliedTypeTree =>
135
+ Checking .checkAppliedType(tree, EmptyTree )
136
+ case tree : TypeApply =>
137
+ val ta @ TypeApply (fn, args) = normalizeTypeArgs(tree)
138
+ traverseChildren(ta)
139
+ case _ =>
140
+ traverseChildren(tree)
141
+ }
157
142
158
143
class PostTyperTransformer extends Transformer {
159
144
0 commit comments