Skip to content

Commit aed0a27

Browse files
authored
Merge pull request #341 from scala/backport-lts-3.3-22889
Backport "Dealias when looking into imports" to 3.3 LTS
2 parents 1835fc6 + b1fb18b commit aed0a27

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

compiler/src/dotty/tools/dotc/transform/CheckUnused.scala

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

284284
def matchingSelector(info: ImportInfo): ImportSelector | Null =
285285
val qtpe = info.site
286-
def hasAltMember(nm: Name) = qtpe.member(nm).hasAltWith(_.symbol == sym)
286+
def hasAltMember(nm: Name) = qtpe.member(nm).hasAltWith: alt =>
287+
alt.symbol == sym
288+
|| nm.isTypeName && alt.symbol.isAliasType && alt.info.dealias.typeSymbol == sym
287289
def loop(sels: List[ImportSelector]): ImportSelector | Null = sels match
288290
case sel :: sels =>
289291
val matches =

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)