@@ -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
- checkBounds (unit.tpdTree)
74
+ checkAppliedTypes (unit.tpdTree)
75
75
else
76
76
super .run
77
77
@@ -126,26 +126,32 @@ class PostTyper extends MacroTransform with IdentityDenotTransformer { thisPhase
126
126
tree
127
127
end normalizeTypeArgs
128
128
129
- /** Scan a tree and check the type bounds . */
130
- def checkBounds (tree : Tree )(using Context ): Unit = tree match
129
+ /** Scan a tree and check all the AppliedTypeTrees in it . */
130
+ def checkAppliedTypes (tree : Tree )(using Context ): Unit = tree match
131
131
case tpt : TypeTree =>
132
132
Checking .checkAppliedTypesIn(tpt)
133
- case app : AppliedTypeTree =>
134
- Checking .checkAppliedType(app, EmptyTree )
133
+ case tree : AppliedTypeTree =>
134
+ Checking .checkAppliedType(tree, EmptyTree )
135
+ case tree : TypeBoundsTree =>
136
+ checkAppliedTypes(tree.hi)
135
137
case tree : TypeApply =>
136
138
val TypeApply (fn, args) = normalizeTypeArgs(tree)
137
- args.foreach(checkBounds)
138
- case tree : ValOrDefDef =>
139
- checkBounds(tree.tpt)
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)
140
146
case PackageDef (pid, stats) =>
141
- stats.foreach(checkBounds )
147
+ stats.foreach(checkAppliedTypes )
142
148
case TypeDef (name, rhs) =>
143
- checkBounds (rhs)
149
+ checkAppliedTypes (rhs)
144
150
case t : Template =>
145
- t.parents.foreach(checkBounds )
146
- t.body.foreach(checkBounds )
151
+ t.parents.foreach(checkAppliedTypes )
152
+ t.body.foreach(checkAppliedTypes )
147
153
case a : Annotated =>
148
- checkBounds (a.arg)
154
+ checkAppliedTypes (a.arg)
149
155
case _ =>
150
156
// no need to check this
151
157
0 commit comments