@@ -3,7 +3,7 @@ package transform
33
44import ast .* , desugar .{ForArtifact , PatternVar }, tpd .* , untpd .ImportSelector
55import config .ScalaSettings
6- import core .* , Contexts .* , Flags .*
6+ import core .* , Contexts .* , Decorators . * , Flags .*
77import Names .{Name , SimpleName , DerivedName , TermName , termName }
88import NameKinds .{BodyRetainerName , ContextBoundParamName , ContextFunctionParamName , DefaultGetterName , WildcardParamName }
99import NameOps .{isAnonymousFunctionName , isReplWrapperName , setterName }
@@ -165,7 +165,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
165165 tree
166166
167167 override def prepareForBind (tree : Bind )(using Context ): Context =
168- refInfos. register(tree)
168+ register(tree)
169169 ctx
170170 /* cf QuotePattern
171171 override def transformBind(tree: Bind)(using Context): tree.type =
@@ -183,7 +183,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
183183
184184 override def prepareForValDef (tree : ValDef )(using Context ): Context =
185185 if ! tree.symbol.is(Deferred ) && tree.rhs.symbol != defn.Predef_undefined then
186- refInfos. register(tree)
186+ register(tree)
187187 relax(tree.rhs, tree.tpt.tpe)
188188 ctx
189189 override def transformValDef (tree : ValDef )(using Context ): tree.type =
@@ -207,7 +207,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
207207 if tree.symbol.is(Inline ) then
208208 refInfos.inliners += 1
209209 else if ! tree.symbol.is(Deferred ) && tree.rhs.symbol != defn.Predef_undefined then
210- refInfos. register(tree)
210+ register(tree)
211211 relax(tree.rhs, tree.tpt.tpe)
212212 ctx
213213 override def transformDefDef (tree : DefDef )(using Context ): tree.type =
@@ -221,7 +221,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
221221 override def transformTypeDef (tree : TypeDef )(using Context ): tree.type =
222222 traverseAnnotations(tree.symbol)
223223 if ! tree.symbol.is(Param ) then // type parameter to do?
224- refInfos. register(tree)
224+ register(tree)
225225 tree
226226
227227 override def prepareForStats (trees : List [Tree ])(using Context ): Context =
@@ -237,8 +237,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
237237 override def transformOther (tree : Tree )(using Context ): tree.type =
238238 tree match
239239 case imp : Import =>
240- if phaseMode eq PhaseMode .Aggregate then
241- refInfos.register(imp)
240+ register(imp)
242241 transformAllDeep(imp.expr)
243242 for selector <- imp.selectors do
244243 if selector.isGiven then
@@ -403,7 +402,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
403402 while ! done && ctxs.hasNext do
404403 val cur = ctxs.next()
405404 if cur.owner.userSymbol == sym && ! sym.is(Package ) then
406- enclosed = true // found enclosing definition, don't register the reference
405+ enclosed = true // found enclosing definition, don't record the reference
407406 if isLocal then
408407 if cur.owner eq sym.owner then
409408 done = true // for local def, just checking that it is not enclosing
@@ -475,6 +474,12 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
475474 return
476475 case _ =>
477476 end resolveScoped
477+
478+ /** Register new element for warnings only at typer */
479+ def register (tree : Tree )(using Context ): Unit =
480+ if phaseMode eq PhaseMode .Aggregate then
481+ refInfos.register(tree)
482+
478483end CheckUnused
479484
480485object CheckUnused :
0 commit comments