lambdaInWhenBranch.kt 601 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
// ISSUE: KT-39080
// !DUMP_CFG

private sealed class Sealed

private data class SubClass1(val t: String) : Sealed()
private data class SubClass2 : Sealed()

private fun foo(p: Sealed) {
    when (p) {
        is SubClass1 -> "".let {
            it
        }
        is SubClass2 -> ""
    }

    p.<!UNRESOLVED_REFERENCE!>t<!> // should not be resolved, but it has a smartcast to SubClass1 because of the lambda

    when (p) {
        is SubClass1 -> p.t
        is SubClass2 -> "2"
    }.length // should be resolved, but when is not considered as sealed because type of p is not a sealed class
23
}