@@ -590,12 +590,13 @@ object CheckUnused:
590
590
private def isInImport (imp : tpd.Import , isAccessible : Boolean , symName : Option [Name ])(using Context ): Option [ImportSelector ] =
591
591
val tpd .Import (qual, sels) = imp
592
592
val dealiasedSym = dealias(sym)
593
+ val simpleSelections = qual.tpe.member(sym.name).alternatives
593
594
val typeSelections = sels.flatMap(n => qual.tpe.member(n.name.toTypeName).alternatives)
594
595
val termSelections = sels.flatMap(n => qual.tpe.member(n.name.toTermName).alternatives)
595
- val allSelections = typeSelections ::: termSelections ::: qual.tpe.member(sym.name).alternatives
596
- val qualHasSymbol = allSelections .map(_.symbol).map(dealias).contains(dealiasedSym)
596
+ val selectionsToDealias = typeSelections ::: termSelections
597
+ val qualHasSymbol = simpleSelections.map(_.symbol).contains(sym) || (simpleSelections ::: selectionsToDealias) .map(_.symbol).map(dealias).contains(dealiasedSym)
597
598
def selector = sels.find(sel => (sel.name.toTermName == sym.name || sel.name.toTypeName == sym.name) && symName.map(n => n.toTermName == sel.rename).getOrElse(true ))
598
- def dealiasedSelector = sels.flatMap(sel => allSelections .map(m => (sel, m.symbol))).collect {
599
+ def dealiasedSelector = sels.flatMap(sel => selectionsToDealias .map(m => (sel, m.symbol))).collect {
599
600
case (sel, sym) if dealias(sym) == dealiasedSym => sel
600
601
}.headOption
601
602
def wildcard = sels.find(sel => sel.isWildcard && ((sym.is(Given ) == sel.isGiven) || sym.is(Implicit )))
@@ -604,6 +605,7 @@ object CheckUnused:
604
605
else
605
606
None
606
607
608
+
607
609
private def dealias (symbol : Symbol )(using Context ): Symbol =
608
610
if (symbol.isType && symbol.asType.denot.isAliasType) then
609
611
symbol.asType.typeRef.dealias.typeSymbol
0 commit comments