FILE: companionObjectCall.kt public final class A : R|kotlin/Any| { public constructor(): R|A| { super() } } 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|kotlin/String|): R|Case1| { super() } public final val a: R|kotlin/String| = R|/a| public get(): R|kotlin/String| 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 fun case3(a: R|A|): R|kotlin/Unit| { Q|Case3.Companion|.R|/Case3.Companion.invoke|(R|/a|) Q|Case3.Companion|.R|/Case3.Companion.invoke|(R|/a|) } public final class Case3 : R|kotlin/Any| { public constructor(): R|Case3| { super() } public final companion object Companion : R|kotlin/Any| { private constructor(): R|Case3.Companion| { super() } public final operator fun invoke(parameterA: R|A|): R|kotlin/String| { ^invoke String() } } }