1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
trait K trait L object O { type LK = K with L val A: LK = new K with L val B: LK = new K with L } object Test extends dotty.runtime.LegacyApp { val scrut: O.LK = O.B scrut match { case O.A => ??? case O.B => // spurious unreachable } }