Open
Description
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.