## Compiler version 3.2.1, 3.3.0-RC1-bin-20221209-231f9ab-NIGHTLY Used to work in 3.1.3 ## Minimized code ```scala class Box[+A](a: A) val box: Box[Int] = Box(123) type Elem[T] = T match case Box[a] => a def x1[F](f: F): Elem[f.type] = ??? def y1 = x1(box) def x2[F <: Box[Any]](f: F): Elem[f.type] = ??? def y2 = x2(box) ``` ## Output As seen in REPL: ```scala // defined case class Box val box: Box[Int] = Box(123) def x1[F](f: F): Elem[f.type] def y1: Int def x2[F <: Box[Any]](f: F): Any def y2: Any ``` ## Expectation `Elem[f.type]` should be properly computed as `Int`, as in 3.1.3: ```scala // defined case class Box val box: Box[Int] = Box(123) def x1[F](f: F): Elem[f.type] def y1: Int def x2[F <: Box[Any]](f: F): Elem[f.type] def y2: Int ```