Skip to content

Commit fa34018

Browse files
authored
Dealias when looking into imports (#22889)
Fixes #22787
2 parents d519790 + 7719401 commit fa34018

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

Diff for: compiler/src/dotty/tools/dotc/transform/CheckUnused.scala

+3-1
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,9 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
292292

293293
def matchingSelector(info: ImportInfo): ImportSelector | Null =
294294
val qtpe = info.site
295-
def hasAltMember(nm: Name) = qtpe.member(nm).hasAltWith(_.symbol == sym)
295+
def hasAltMember(nm: Name) = qtpe.member(nm).hasAltWith: alt =>
296+
alt.symbol == sym
297+
|| nm.isTypeName && alt.symbol.isAliasType && alt.info.dealias.typeSymbol == sym
296298
def loop(sels: List[ImportSelector]): ImportSelector | Null = sels match
297299
case sel :: sels =>
298300
val matches =

Diff for: tests/warn/i22787.scala

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//> using options -Wunused:imports -Werror
2+
3+
object tpd:
4+
type Block = Trees.Block
5+
6+
object Trees:
7+
abstract case class Block(x: Int)
8+
private object Block
9+
val block = new Block(42) {}
10+
11+
def f(x: Any) =
12+
import tpd.Block
13+
//import Trees.Block
14+
x match
15+
case Block(_) => "yes"
16+
case _ => "no"
17+
18+
@main def test = println:
19+
f(Trees.block)

0 commit comments

Comments
 (0)