Skip to content

Pattern Match Exhaustiveness Check Misses a Case #20130

Closed
@CyrilFMoser

Description

@CyrilFMoser

Compiler version

3.4.1

Minimized code

sealed trait T_A[B]
sealed trait T_B[C]
case class CC_B[C]() extends T_A[T_B[C]]
case class CC_C[B, C](c: T_A[B], d: T_B[C]) extends T_B[C]
case class CC_E[C]() extends T_B[C]

val v_a: T_B[Int] = CC_C(null, CC_E())
val v_b: Int = v_a match {
  case CC_C(_, CC_C(_, _)) => 0
  case CC_E()              => 5
}

Output

Crashes

Expectation

Should give a warning at compile time that the pattern match is not exhaustive.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions