@@ -539,7 +539,10 @@ object CheckUnused:
539539          val  alias  =  m.owner.info.member(sym.name)
540540          if  alias.exists then 
541541            val  aliasSym  =  alias.symbol
542-             if  aliasSym.isAllOf(PrivateParamAccessor , butNot =  CaseAccessor ) &&  ! infos.refs(alias.symbol) then 
542+             if  aliasSym.isAllOf(PrivateParamAccessor , butNot =  CaseAccessor )
543+               &&  ! infos.refs(alias.symbol)
544+               &&  ! usedByDefaultGetter(sym, m)
545+             then 
543546              if  aliasSym.is(Local ) then 
544547                if  ctx.settings.WunusedHas .explicits then 
545548                  warnAt(pos)(UnusedSymbol .explicitParams(aliasSym))
@@ -569,7 +572,7 @@ object CheckUnused:
569572
570573    //  does the param have an alias in a default arg method that is used?
571574    def  usedByDefaultGetter (param : Symbol , meth : Symbol ):  Boolean  = 
572-       val  cls  =  meth.enclosingClass
575+       val  cls  =  if  meth.isPrimaryConstructor  then  meth.enclosingClass.companionModule  else   meth.enclosingClass
573576      val  MethName  =  meth.name
574577      cls.info.decls.exists:  d => 
575578        d.name match 
@@ -606,7 +609,10 @@ object CheckUnused:
606609            val  checking  = 
607610                 aliasSym.isAllOf(PrivateParamAccessor , butNot =  CaseAccessor )
608611              ||  aliasSym.isAllOf(Protected  |  ParamAccessor , butNot =  CaseAccessor ) &&  m.owner.is(Given )
609-             if  checking &&  ! infos.refs(alias.symbol) then 
612+             if  checking
613+               &&  ! infos.refs(alias.symbol)
614+               &&  ! usedByDefaultGetter(sym, m)
615+             then 
610616              warnAt(pos)(UnusedSymbol .implicitParams(aliasSym))
611617        else  if  ! usedByDefaultGetter(sym, m) then 
612618          warnAt(pos)(UnusedSymbol .implicitParams(sym))
0 commit comments