FILE: objectInnerClass.kt public final val case1: R|A| = object : R|A| { private constructor(): R|| { super() } local final inner class Child : R|/.Base| { public .constructor(property: R|B|): R|/.Child| { this@R|/|.super/.Base|>(R|/property|) } public final fun R|/.Base|.zoo(): R|kotlin/Unit| { lval x: R|B| = this@R|/zoo|.R|/property| } public final fun foo(): R|kotlin/Unit| { this@R|/.Child|.R|/baseFun|() lval x: R|B| = this@R|/.Child|.R|/property| (this@R|/.Child|, this@R|/.Child|).R|/zoo|() (this@R|/|, this@R|/.Child|).R|/.hoo|() } } public final fun R|/.Child|.voo(): R|kotlin/Unit| { lval x: R|B| = this@R|/.voo|.R|/property| } public final fun R|/.Base|.hoo(): R|kotlin/Unit| { lval x: R|B| = this@R|/.hoo|.R|/property| } local open inner class Base : R|kotlin/Any| { public .constructor(property: R|B|): R|/.Base| { super() } public final val property: R|B| = R|/property| public get(): R|B| public final fun baseFun(): R|kotlin/Unit| { } } public final fun caseForBase(): R|kotlin/Unit| { lval base: R|/.Base| = this@R|/|.R|/.Base.Base|(R|/B.B|()) R|/base|.R|/baseFun|() R|/base|.R|/property| (this@R|/|, R|/base|).R|/.hoo|() } public final fun caseForChild(): R|kotlin/Unit| { lval child: R|/.Child| = this@R|/|.R|/.Child.Child|(R|/B.B|()) R|/child|.R|/baseFun|() R|/child|.R|/property| R|/child|.R|/foo|() (this@R|/|, R|/child|).R|/.hoo|() (this@R|/|, R|/child|).R|/.voo|() } } public get(): R|A| public final class Case2 : R|kotlin/Any| { public constructor(): R|Case2| { super() } public final val x: R|Case2.Base| = object : R|Case2.Base| { private constructor(): R|| { this@R|/Case2|.super(R|/B.B|()) } public final fun R|Case2.Base|.zoo(): R|kotlin/Unit| { lval x: R|B| = this@R|/.zoo|.R|/Case2.Base.property| } public final fun foo(): R|kotlin/Unit| { this@R|/|.R|/Case2.Base.baseFun|() lval x: R|B| = this@R|/|.R|/Case2.Base.property| (this@R|/|, this@R|/|).R|/.zoo|() (this@R|/Case2|, this@R|/|).R|/Case2.hoo|() } } public get(): R|Case2.Base| public final fun R|Case2.Base|.hoo(): R|kotlin/Unit| { lval x: R|B| = this@R|/Case2.hoo|.R|/Case2.Base.property| } public open inner class Base : R|kotlin/Any| { public Case2.constructor(property: R|B|): R|Case2.Base| { super() } public final val property: R|B| = R|/property| public get(): R|B| public final fun baseFun(): R|kotlin/Unit| { } } public final fun caseForBase(): R|kotlin/Unit| { lval base: R|Case2.Base| = this@R|/Case2|.R|/Case2.Base.Base|(R|/B.B|()) R|/base|.R|/Case2.Base.baseFun|() R|/base|.R|/Case2.Base.property| (this@R|/Case2|, R|/base|).R|/Case2.hoo|() } public final fun caseForChild(): R|kotlin/Unit| { lval child: R|Case2.Base| = this@R|/Case2|.R|/Case2.x| R|/child|.R|/Case2.Base.baseFun|() R|/child|.R|/Case2.Base.property| (this@R|/Case2|, R|/child|).R|/Case2.hoo|() } } public final class Case3 : R|kotlin/Any| { public constructor(): R|Case3| { super() } public final val x: R|A| = object : R|A| { private constructor(): R|| { super() } local final inner class Child : R|/.Base| { public .constructor(property: R|B|): R|/.Child| { this@R|/|.super/.Base|>(R|/property|) } public final fun R|/.Base|.zoo(): R|kotlin/Unit| { lval x: R|B| = this@R|/zoo|.R|/property| } public final fun foo(): R|kotlin/Unit| { this@R|/.Child|.R|/baseFun|() lval x: R|B| = this@R|/.Child|.R|/property| (this@R|/.Child|, this@R|/.Child|).R|/zoo|() (this@R|/|, this@R|/.Child|).R|/.hoo|() } } public final fun R|/.Child|.voo(): R|kotlin/Unit| { lval x: R|B| = this@R|/.voo|.R|/property| } public final fun R|/.Base|.hoo(): R|kotlin/Unit| { lval x: R|B| = this@R|/.hoo|.R|/property| } local open inner class Base : R|kotlin/Any| { public .constructor(property: R|B|): R|/.Base| { super() } public final val property: R|B| = R|/property| public get(): R|B| public final fun baseFun(): R|kotlin/Unit| { } } public final fun caseForBase(): R|kotlin/Unit| { lval base: R|/.Base| = this@R|/|.R|/.Base.Base|(R|/B.B|()) R|/base|.R|/baseFun|() R|/base|.R|/property| (this@R|/|, R|/base|).R|/.hoo|() } public final fun caseForChild(): R|kotlin/Unit| { lval child: R|/.Child| = this@R|/|.R|/.Child.Child|(R|/B.B|()) R|/child|.R|/baseFun|() R|/child|.R|/property| R|/child|.R|/foo|() (this@R|/|, R|/child|).R|/.hoo|() (this@R|/|, R|/child|).R|/.voo|() } } public get(): R|A| } public abstract interface A : R|kotlin/Any| { } public final class B : R|kotlin/Any| { public constructor(): R|B| { super() } }