FILE: arraySet.kt public final class A : R|kotlin/Any| { public constructor(): R|A| { super() } public final operator fun get(index: R|kotlin/Int|): R|T| { ^get Null(null)!! } public final operator fun set(index: R|kotlin/Int|, value: R|T|): R|kotlin/Unit| { } } public final class B : R|kotlin/Any| { public constructor(): R|B| { super() } public final operator fun plusAssign(other: R|B|): R|kotlin/Unit| { } } public final class C : R|kotlin/Any| { public constructor(): R|C| { super() } public final operator fun plus(other: R|C|): R|C| { ^plus this@R|/C| } } public final class D : R|kotlin/Any| { public constructor(): R|D| { super() } public final operator fun plusAssign(other: R|D|): R|kotlin/Unit| { } public final operator fun plus(other: R|D|): R|D| { ^plus this@R|/D| } } public final fun test_1(a: R|A|): R|kotlin/Unit| { R|/a|.R|SubstitutionOverride|(Int(0), R|/B.B|()) Unit } public final fun test_2(a: R|A|): R|kotlin/Unit| { R|/a|.R|SubstitutionOverride|(Int(0), R|/C.C|()) Unit } public final fun test_3(a: R|A|): R|kotlin/Unit| { R|/a|.R|SubstitutionOverride|(Int(0), R|/D.D|()) Unit }