FILE: kt37056.kt public final fun case1(a: R|A?|): R|kotlin/Unit| { lval test: R|kotlin/String?| = R|/a|?.{ $subj$.R|kotlin/let|( = let@fun (it: R|A|): R|kotlin/String| { Q|Case1|.R|/Case1.Companion.invoke|(R|/it|) Q|Case1|.R|/Case1.Companion.invoke|(R|/it|) ^ Q|Case1|.R|/Case1.Companion.invoke|(R|/A.A|()) } ) } Q|Case1|.R|/Case1.Companion.invoke|(R|/A.A|()) Q|Case1|.R|/Case1.Companion.invoke|(R|/A.A|()) } public final class Case1 : R|kotlin/Any| { private constructor(a: R|A|): R|Case1| { super() } public final val a: R|A| = R|/a| public get(): R|A| public final companion object Companion : R|kotlin/Any| { private constructor(): R|Case1.Companion| { super() } public final operator fun invoke(a: R|A|): R|kotlin/String| { ^invoke String() } } } public final fun case2(a: R|A|): R|kotlin/Unit| { Q|Case2|.R|/Case2.Companion.invoke|(R|/a|) Q|Case2|.R|/Case2.Companion.invoke|(R|/a|) } public final class Case2 : R|kotlin/Any| { public constructor(): R|Case2| { super() } public final companion object Companion : R|kotlin/Any| { private constructor(): R|Case2.Companion| { super() } public final operator fun invoke(a: R|A|): R|kotlin/String| { ^invoke String() } } } public final class A : R|kotlin/Any| { public constructor(): R|A| { super() } }