@@ -384,6 +384,7 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
384384 if matches then sel else loop(sels)
385385 case nil => null
386386 loop(info.selectors)
387+ end matchingSelector
387388
388389 def checkMember (ctxsym : Symbol ): Boolean =
389390 ctxsym.isClass && sym.owner.isClass
@@ -407,38 +408,37 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
407408 val cur = ctxs.next()
408409 if cur.owner.userSymbol == sym && ! sym.is(Package ) then
409410 enclosed = true // found enclosing definition, don't record the reference
410- if isLocal then
411- if cur.owner eq sym.owner then
412- done = true // for local def, just checking that it is not enclosing
413- else
414- if cur.isImportContext then
415- val sel = matchingSelector(cur.importInfo.nn)
416- if sel != null then
417- if cur.importInfo.nn.isRootImport then
418- if precedence.weakerThan(OtherUnit ) then
419- precedence = OtherUnit
420- candidate = cur
421- importer = sel
422- done = true
423- else if sel.isWildcard then
424- if precedence.weakerThan(Wildcard ) then
425- precedence = Wildcard
426- candidate = cur
427- importer = sel
428- else
429- if precedence.weakerThan(NamedImport ) then
430- precedence = NamedImport
431- candidate = cur
432- importer = sel
433- else if checkMember(cur.owner) then
434- if sym.is(Package ) || sym.srcPos.sourcePos.source == ctx.source then
435- precedence = Definition
436- candidate = cur
437- importer = null // ignore import in same scope; we can't check nesting level
411+ if cur.isImportContext then
412+ val sel = matchingSelector(cur.importInfo.nn)
413+ if sel != null then
414+ if cur.importInfo.nn.isRootImport then
415+ if precedence.weakerThan(OtherUnit ) then
416+ precedence = OtherUnit
417+ candidate = cur
418+ importer = sel
438419 done = true
439- else if precedence.weakerThan(OtherUnit ) then
440- precedence = OtherUnit
441- candidate = cur
420+ else if sel.isWildcard then
421+ if precedence.weakerThan(Wildcard ) then
422+ precedence = Wildcard
423+ candidate = cur
424+ importer = sel
425+ else
426+ if precedence.weakerThan(NamedImport ) then
427+ precedence = NamedImport
428+ candidate = cur
429+ importer = sel
430+ else if isLocal then
431+ if cur.owner eq sym.owner then
432+ done = true // local def or param
433+ else if checkMember(cur.owner) then
434+ if sym.is(Package ) || sym.srcPos.sourcePos.source == ctx.source then
435+ precedence = Definition
436+ candidate = cur
437+ importer = null // ignore import in same scope; we can't check nesting level
438+ done = true
439+ else if precedence.weakerThan(OtherUnit ) then
440+ precedence = OtherUnit
441+ candidate = cur
442442 end while
443443 // record usage and possibly an import
444444 if ! enclosed then
0 commit comments