Compiler version
3.2.2
3.3.0-RC3
Minimized code
enum Foo[A]: case Bar[X, Y]() extends Foo[X | Y] def go[A](foo: Foo[A]): Unit = foo match case b: Foo.Bar[x, y] => summon[(x | y) <:< A] // OK summon[(x | y) =:= A] // KO: Cannot prove that x | y =:= A.
Output
Cannot prove that x | y =:= A. where: x is a type in method go with bounds <: A y is a type in method go with bounds <: A
Expectation
Should compile.