FILE: unsafeAssignmentExtra.fir.kt public abstract interface Foo : R|kotlin/Any| { public abstract var a: R|T| public get(): R|T| public set(value: R|T|): R|kotlin/Unit| public abstract val b: R|kotlin/Array| public get(): R|kotlin/Array| public abstract fun accept(arg: R|T|): R|kotlin/Unit| } public final class FooImpl : R|Foo| { public constructor(): R|FooImpl| { super() } } public final fun bar(p: R|kotlin/reflect/KMutableProperty0|): R|kotlin/Unit| { R|/p|.R|SubstitutionOverride|(Int(100)) } public final fun myBuilder(block: R|Foo.() -> kotlin/Unit|): R|Foo| { ^myBuilder R|/FooImpl.FooImpl|().R|kotlin/apply||>(R|/block|) } public final fun R|Foo|.change(block: R|Foo.() -> kotlin/Unit|): R|Foo| { R|/block|.R|SubstitutionOverride|(this@R|/change|) ^change this@R|/change| } public final fun main(arg: R|kotlin/Any|, condition: R|kotlin/Boolean|): R|kotlin/Unit| { lval value: R|Foo| = R|/myBuilder|( = myBuilder@fun R|Foo|.(): R|kotlin/Unit| { this@R|special/anonymous|.R|SubstitutionOverride|>|.R|SubstitutionOverride|(Int(0), Int(123)) this@R|special/anonymous|.R|SubstitutionOverride| = Int(45) lval : R|kotlin/Int| = this@R|special/anonymous|.R|SubstitutionOverride| this@R|special/anonymous|.R|SubstitutionOverride| = R|/|.#() R|/| R|/bar|(::R|SubstitutionOverride|) when () { (this@R|special/anonymous|.R|SubstitutionOverride| is R|kotlin/Int|) -> { this@R|special/anonymous|.R|SubstitutionOverride| = Int(67) lval : R|kotlin/Int| = this@R|special/anonymous|.R|SubstitutionOverride| this@R|special/anonymous|.R|SubstitutionOverride| = R|/|.#() R|/| R|/bar|(::R|SubstitutionOverride|) } } when (R|/condition|) { ==($subj$, Boolean(true)) -> { this@R|special/anonymous|.R|SubstitutionOverride| = Int(87) } ==($subj$, Boolean(false)) -> { this@R|special/anonymous|.R|SubstitutionOverride| = Int(65) } } lval x: by this@R|special/anonymous|.R|SubstitutionOverride| this@R|special/anonymous|.R|/change|( = change@fun R|Foo|.(): R|kotlin/Unit| { this@R|special/anonymous|.R|SubstitutionOverride| = Int(99) } ) } ) lval value2: R|Foo| = R|/myBuilder|( = myBuilder@fun R|Foo|.(): R|kotlin/Unit| { this@R|special/anonymous|.R|SubstitutionOverride|(String()) this@R|special/anonymous|.R|SubstitutionOverride| = Int(45) when (R|/condition|) { ==($subj$, Boolean(true)) -> { this@R|special/anonymous|.R|SubstitutionOverride| = Int(87) } ==($subj$, Boolean(false)) -> { this@R|special/anonymous|.R|SubstitutionOverride| = Int(65) } } this@R|special/anonymous|.R|/change|( = change@fun R|Foo|.(): R|kotlin/Unit| { this@R|special/anonymous|.R|SubstitutionOverride| = Int(99) } ) when () { (this@R|special/anonymous|.R|SubstitutionOverride| is R|kotlin/Int|) -> { this@R|special/anonymous|.R|SubstitutionOverride| = Int(67) } } } ) lval value3: R|Foo| = R|/myBuilder|( = myBuilder@fun R|Foo|.(): R|kotlin/Unit| { this@R|special/anonymous|.R|SubstitutionOverride|(String()) this@R|special/anonymous|.R|SubstitutionOverride| = Int(45) R|/bar|(::R|SubstitutionOverride|) } ) local final fun baz(t: R|kotlin/Int|): R|kotlin/Unit| { } lval value4: R|Foo & java/io/Serializable)>| = R|/myBuilder| & java/io/Serializable)|>( = myBuilder@fun R|Foo & java/io/Serializable)>|.(): R|kotlin/Unit| { this@R|special/anonymous|.R|SubstitutionOverride|(String()) this@R|special/anonymous|.R|SubstitutionOverride| = Int(45) this@R|special/anonymous|.R|SubstitutionOverride|>|.R|SubstitutionOverride|(Int(0), Int(123)) R|/baz|(this@R|special/anonymous|.R|SubstitutionOverride|) } ) }