## Compiler version 3.7.1 (not 3.7.0, 3.3.6) ## Minimized code ```scala //> using scala 3.7.1 package example sealed trait A[X, Y] case class B[X](x: X) extends A[X, Int] case class C[X](x: X) extends A[X, Int] case class D[X, Y](x: X, y: Y) extends A[X, Y] def f[X, Y](a: A[X, Y]): Y = a match { case B(_) | C(_) => 2 case D(_, y) => y } ``` ## Output ```scala [error] ./A.scala:11:23 [error] Found: (2 : Int) [error] Required: Y [error] case B(_) | C(_) => 2 [error] ^ ``` ## Expectation success ## Note - maybe https://github.com/scala/scala3/pull/22853 https://github.com/scala/scala3/issues/22805 ? 🤔