FILE: implicitReceivers.kt public final class A : R|kotlin/Any| { public constructor(): R|A| { super() } public final fun foo(): R|kotlin/Unit| { } } public final class B : R|kotlin/Any| { public constructor(): R|B| { super() } public final fun bar(): R|kotlin/Unit| { } } public final fun R|T|.with(block: R|T.() -> kotlin/Unit|): R|kotlin/Unit| { } public final fun R|kotlin/Any?|.test_1(): R|kotlin/Unit| { when () { (this@R|/test_1| is R|A|) -> { this@R|/test_1|.R|/A.foo|() this@R|/test_1|.R|/A.foo|() } else -> { this@R|/test_1|.#() #() } } this@R|/test_1|.#() #() } public final fun R|kotlin/Any?|.test_2(): R|kotlin/Unit| { when () { (this@R|/test_2| !is R|A|) -> { this@R|/test_2|.#() #() } else -> { this@R|/test_2|.R|/A.foo|() this@R|/test_2|.R|/A.foo|() } } this@R|/test_2|.#() #() } public final fun test_3(a: R|kotlin/Any|, b: R|kotlin/Any|, c: R|kotlin/Any|): R|kotlin/Unit| { R|kotlin/with#|>(R|/a|, = wa@fun R|kotlin/Any|.(): { ^ R|kotlin/with#|>(R|/b|, = wb@fun R|kotlin/Any|.(): { R|kotlin/with|(R|/c|, = wc@fun R|kotlin/Any|.(): R|kotlin/Unit| { (this@R|special/anonymous| as R|A|) this@R|special/anonymous|.R|/A.foo|() this@R|special/anonymous|.R|/A.foo|() } ) this@R|special/anonymous|.#() ^ #() } ) } ) } public final fun R|kotlin/Any?|.test_4(): R|kotlin/Unit| { when () { (this@R|/test_4| !is R|A|) -> { this@R|/test_4|.#() #() this@R|/test_4|.#() #() } else -> { when () { (this@R|/test_4| !is R|B|) -> { this@R|/test_4|.#() #() this@R|/test_4|.R|/A.foo|() this@R|/test_4|.R|/A.foo|() } else -> { this@R|/test_4|.R|/A.foo|() this@R|/test_4|.R|/A.foo|() this@R|/test_4|.R|/B.bar|() this@R|/test_4|.R|/B.bar|() } } } } this@R|/test_4|.#() #() this@R|/test_4|.#() #() } public final fun R|kotlin/Any|.test_5(): R|kotlin/Int| { ^test_5 when () { (this@R|/test_5| is R|kotlin/collections/List<*>|) -> { this@R|/test_5|.R|SubstitutionOverride| } (this@R|/test_5| is R|kotlin/String|) -> { this@R|/test_5|.R|kotlin/String.length| } else -> { Int(0) } } } public final fun R|kotlin/Any|.test_6(): R|kotlin/Unit| { (this@R|/test_6| as R|kotlin/collections/List<*>|) this@R|/test_6|.R|SubstitutionOverride| (this@R|/test_6| as R|kotlin/String|) this@R|/test_6|.R|kotlin/String.length| }