// !DIAGNOSTICS: -DEBUG_INFO_SMARTCAST interface Either interface Left: Either { val value: A } interface Right: Either { val value: B } class C1(val v1: Int) class C2(val v2: Int) fun _when(e: Either): Any { return when (e) { is Left -> e.value.v1 is Right -> e.value.v2 else -> e } }