@@ -6,6 +6,7 @@ import dotty.tools.dotc.ast.tpd.*
66import dotty .tools .dotc .ast .untpd , untpd .ImportSelector
77import dotty .tools .dotc .config .ScalaSettings
88import dotty .tools .dotc .core .Contexts .*
9+ import dotty .tools .dotc .core .Decorators .*
910import dotty .tools .dotc .core .Flags .*
1011import dotty .tools .dotc .core .Names .{Name , SimpleName , DerivedName , TermName , termName }
1112import dotty .tools .dotc .core .NameKinds .{
@@ -169,12 +170,12 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
169170 tree
170171
171172 override def prepareForBind (tree : Bind )(using Context ): Context =
172- refInfos. register(tree)
173+ register(tree)
173174 ctx
174175
175176 override def prepareForValDef (tree : ValDef )(using Context ): Context =
176177 if ! tree.symbol.is(Deferred ) && tree.rhs.symbol != defn.Predef_undefined then
177- refInfos. register(tree)
178+ register(tree)
178179 relax(tree.rhs, tree.tpt.tpe)
179180 ctx
180181 override def transformValDef (tree : ValDef )(using Context ): tree.type =
@@ -196,7 +197,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
196197 if tree.symbol.is(Inline ) then
197198 refInfos.inliners += 1
198199 else if ! tree.symbol.is(Deferred ) && tree.rhs.symbol != defn.Predef_undefined then
199- refInfos. register(tree)
200+ register(tree)
200201 relax(tree.rhs, tree.tpt.tpe)
201202 ctx
202203 override def transformDefDef (tree : DefDef )(using Context ): tree.type =
@@ -208,7 +209,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
208209 override def transformTypeDef (tree : TypeDef )(using Context ): tree.type =
209210 traverseAnnotations(tree.symbol)
210211 if ! tree.symbol.is(Param ) then // type parameter to do?
211- refInfos. register(tree)
212+ register(tree)
212213 tree
213214
214215 override def prepareForStats (trees : List [Tree ])(using Context ): Context =
@@ -224,8 +225,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
224225 override def transformOther (tree : Tree )(using Context ): tree.type =
225226 tree match
226227 case imp : Import =>
227- if phaseMode eq PhaseMode .Aggregate then
228- refInfos.register(imp)
228+ register(imp)
229229 transformAllDeep(imp.expr)
230230 for selector <- imp.selectors do
231231 if selector.isGiven then
@@ -375,7 +375,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
375375 while ! done && ctxs.hasNext do
376376 val cur = ctxs.next()
377377 if cur.owner.userSymbol == sym && ! sym.is(Package ) then
378- enclosed = true // found enclosing definition, don't register the reference
378+ enclosed = true // found enclosing definition, don't record the reference
379379 if isLocal then
380380 if cur.owner eq sym.owner then
381381 done = true // for local def, just checking that it is not enclosing
@@ -447,6 +447,12 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
447447 return
448448 case _ =>
449449 end resolveScoped
450+
451+ /** Register new element for warnings only at typer */
452+ def register (tree : Tree )(using Context ): Unit =
453+ if phaseMode eq PhaseMode .Aggregate then
454+ refInfos.register(tree)
455+
450456end CheckUnused
451457
452458object CheckUnused :
0 commit comments