File tree 2 files changed +16
-2
lines changed
compiler/src/dotty/tools/dotc/transform
tests/neg-custom-args/fatal-warnings
2 files changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -590,9 +590,12 @@ 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 qualHasSymbol = qual.tpe.member(sym.name).alternatives.map(_.symbol).map(dealias).contains(dealiasedSym)
593
+ val typeSelections = sels.flatMap(n => qual.tpe.member(n.name.toTypeName).alternatives)
594
+ 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)
594
597
def selector = sels.find(sel => (sel.name.toTermName == sym.name || sel.name.toTypeName == sym.name) && symName.map(n => n.toTermName == sel.rename).getOrElse(true ))
595
- def dealiasedSelector = sels.flatMap(sel => qual.tpe.member(sym.name).alternatives .map(m => (sel, m.symbol))).collect {
598
+ def dealiasedSelector = sels.flatMap(sel => allSelections .map(m => (sel, m.symbol))).collect {
596
599
case (sel, sym) if dealias(sym) == dealiasedSym => sel
597
600
}.headOption
598
601
def wildcard = sels.find(sel => sel.isWildcard && ((sym.is(Given ) == sel.isGiven) || sym.is(Implicit )))
Original file line number Diff line number Diff line change @@ -273,3 +273,14 @@ package foo.test.i16679b:
273
273
import Foo .x
274
274
case class CoolClass (i : Int )
275
275
println(summon[myPackage.CaseClassName [CoolClass ]])
276
+
277
+ package foo .test .i17156:
278
+ package a:
279
+ trait Foo [A ]
280
+
281
+ package b:
282
+ type Xd = Foo
283
+
284
+ package c:
285
+ import b .Xd
286
+ trait Z derives Xd
You can’t perform that action at this time.
0 commit comments