FILE: lambdaInWhenBranch.kt private sealed class Sealed : R|kotlin/Any| { protected constructor(): R|Sealed| { super() } } private final data class SubClass1 : R|Sealed| { public constructor(t: R|kotlin/String|): R|SubClass1| { super() } public final val t: R|kotlin/String| = R|/t| public get(): R|kotlin/String| public final operator fun component1(): R|kotlin/String| public final fun copy(t: R|kotlin/String| = this@R|/SubClass1|.R|/SubClass1.t|): R|SubClass1| } private final data class SubClass2 : R|Sealed| { public constructor(): R|SubClass2| { super() } public final fun copy(): R|SubClass2| } private final fun foo(p: R|Sealed|): R|kotlin/Unit| { when (R|/p|) { ($subj$ is R|SubClass1|) -> { String().R|kotlin/let|( = let@fun (it: R|kotlin/String|): R|kotlin/String| { ^ R|/it| } ) } ($subj$ is R|SubClass2|) -> { String() } } R|/p|.# when (R|/p|) { ($subj$ is R|SubClass1|) -> { R|/p|.R|/SubClass1.t| } ($subj$ is R|SubClass2|) -> { String(2) } } .R|kotlin/String.length| }