Skip to content

Commit e0a32a3

Browse files
authored
Merge pull request #608 from scala/backport-lts-3.3-23964
Backport "Call inhabited for AppliedType recursively" to 3.3 LTS
2 parents 17eee73 + 1795327 commit e0a32a3

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

compiler/src/dotty/tools/dotc/transform/patmat/Space.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,7 @@ object SpaceEngine {
680680
case OrType(tp1, tp2) => inhabited(tp1) || inhabited(tp2)
681681
case tp: RefinedType => inhabited(tp.parent)
682682
case tp: TypeRef => !containsUninhabitedField(tp) && inhabited(tp.prefix)
683+
case tp: AppliedType => !containsUninhabitedField(tp) && inhabited(tp.tycon)
683684
case _ => !containsUninhabitedField(tp)
684685

685686
if inhabited(refined) then refined

tests/pos/i23734.scala

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
trait Nodes1 {
2+
sealed trait B
3+
final case class R1() extends B
4+
}
5+
6+
trait Nodes2 extends Nodes1 {
7+
final case class R2[T]() extends B
8+
}
9+
10+
11+
object Impl1 extends Nodes1
12+
13+
object test2 {
14+
val a: Impl1.B = ???
15+
a match {
16+
case Impl1.R1() => ???
17+
}
18+
}

0 commit comments

Comments
 (0)