@@ -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 }
@@ -148,7 +148,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
148148    tree
149149
150150  override  def  prepareForBind (tree : Bind )(using  Context ):  Context  = 
151-     refInfos. register(tree)
151+     register(tree)
152152    ctx
153153  /*  cf QuotePattern
154154  override def transformBind(tree: Bind)(using Context): tree.type = 
@@ -166,7 +166,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
166166
167167  override  def  prepareForValDef (tree : ValDef )(using  Context ):  Context  = 
168168    if  ! tree.symbol.is(Deferred ) &&  tree.rhs.symbol !=  defn.Predef_undefined  then 
169-       refInfos. register(tree)
169+       register(tree)
170170    relax(tree.rhs, tree.tpt.tpe)
171171    ctx
172172  override  def  transformValDef (tree : ValDef )(using  Context ):  tree.type  = 
@@ -190,7 +190,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
190190    if  tree.symbol.is(Inline ) then 
191191      refInfos.inliners +=  1 
192192    else  if  ! tree.symbol.is(Deferred ) &&  tree.rhs.symbol !=  defn.Predef_undefined  then 
193-       refInfos. register(tree)
193+       register(tree)
194194    relax(tree.rhs, tree.tpt.tpe)
195195    ctx
196196  override  def  transformDefDef (tree : DefDef )(using  Context ):  tree.type  = 
@@ -204,14 +204,13 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
204204  override  def  transformTypeDef (tree : TypeDef )(using  Context ):  tree.type  = 
205205    traverseAnnotations(tree.symbol)
206206    if  ! tree.symbol.is(Param ) then  //  type parameter to do?
207-       refInfos. register(tree)
207+       register(tree)
208208    tree
209209
210210  override  def  transformOther (tree : Tree )(using  Context ):  tree.type  = 
211211    tree match 
212212    case  imp : Import  => 
213-       if  phaseMode eq PhaseMode .Aggregate  then 
214-         refInfos.register(imp)
213+       register(imp)
215214      transformAllDeep(imp.expr)
216215      for  selector <-  imp.selectors do 
217216        if  selector.isGiven then 
@@ -353,7 +352,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
353352    while  ! done &&  ctxs.hasNext do 
354353      val  cur  =  ctxs.next()
355354      if  cur.owner.userSymbol ==  sym &&  ! sym.is(Package ) then 
356-         enclosed =  true  //  found enclosing definition, don't register  the reference
355+         enclosed =  true  //  found enclosing definition, don't record  the reference
357356      if  isLocal then 
358357        if  cur.owner eq sym.owner then 
359358          done =  true  //  for local def, just checking that it is not enclosing
@@ -393,6 +392,12 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
393392    if  imports &&  candidate !=  NoContext  &&  candidate.isImportContext &&  importer !=  null  then 
394393      refInfos.sels.put(importer, ())
395394  end  resolveUsage 
395+ 
396+   /**  Register new element for warnings only at typer */  
397+   def  register (tree : Tree )(using  Context ):  Unit  = 
398+     if  phaseMode eq PhaseMode .Aggregate  then 
399+       refInfos.register(tree)
400+ 
396401end  CheckUnused 
397402
398403object  CheckUnused : 
0 commit comments