FILE /complexAugmentedAssignment.kt CLASS OBJECT X1 $this: VALUE_PARAMETER this@X1: X1 CONSTRUCTOR private constructor X1() BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'constructor Any()' INSTANCE_INITIALIZER_CALL classDescriptor='X1' PROPERTY public final var x1: kotlin.Int FIELD PROPERTY_BACKING_FIELD public final var x1: kotlin.Int EXPRESSION_BODY CONST Int type=kotlin.Int value='0' FUN DEFAULT_PROPERTY_ACCESSOR public final fun (): kotlin.Int $this: VALUE_PARAMETER this@X1: X1 BLOCK_BODY RETURN type=kotlin.Nothing from='(): Int' GET_FIELD 'x1: Int' type=kotlin.Int origin=null receiver: GET_VAR 'this@X1: X1' type=X1 origin=null FUN DEFAULT_PROPERTY_ACCESSOR public final fun (: kotlin.Int): kotlin.Unit $this: VALUE_PARAMETER this@X1: X1 VALUE_PARAMETER value-parameter : kotlin.Int BLOCK_BODY SET_FIELD 'x1: Int' type=kotlin.Unit origin=null receiver: GET_VAR 'this@X1: X1' type=X1 origin=null value: GET_VAR 'value-parameter : Int' type=kotlin.Int origin=null CLASS OBJECT X2 $this: VALUE_PARAMETER this@X2: X2 CONSTRUCTOR private constructor X2() BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'constructor Any()' INSTANCE_INITIALIZER_CALL classDescriptor='X2' PROPERTY public final var x2: kotlin.Int FIELD PROPERTY_BACKING_FIELD public final var x2: kotlin.Int EXPRESSION_BODY CONST Int type=kotlin.Int value='0' FUN DEFAULT_PROPERTY_ACCESSOR public final fun (): kotlin.Int $this: VALUE_PARAMETER this@X2: X2 BLOCK_BODY RETURN type=kotlin.Nothing from='(): Int' GET_FIELD 'x2: Int' type=kotlin.Int origin=null receiver: GET_VAR 'this@X2: X2' type=X1.X2 origin=null FUN DEFAULT_PROPERTY_ACCESSOR public final fun (: kotlin.Int): kotlin.Unit $this: VALUE_PARAMETER this@X2: X2 VALUE_PARAMETER value-parameter : kotlin.Int BLOCK_BODY SET_FIELD 'x2: Int' type=kotlin.Unit origin=null receiver: GET_VAR 'this@X2: X2' type=X1.X2 origin=null value: GET_VAR 'value-parameter : Int' type=kotlin.Int origin=null CLASS OBJECT X3 $this: VALUE_PARAMETER this@X3: X3 CONSTRUCTOR private constructor X3() BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'constructor Any()' INSTANCE_INITIALIZER_CALL classDescriptor='X3' PROPERTY public final var x3: kotlin.Int FIELD PROPERTY_BACKING_FIELD public final var x3: kotlin.Int EXPRESSION_BODY CONST Int type=kotlin.Int value='0' FUN DEFAULT_PROPERTY_ACCESSOR public final fun (): kotlin.Int $this: VALUE_PARAMETER this@X3: X3 BLOCK_BODY RETURN type=kotlin.Nothing from='(): Int' GET_FIELD 'x3: Int' type=kotlin.Int origin=null receiver: GET_VAR 'this@X3: X3' type=X1.X2.X3 origin=null FUN DEFAULT_PROPERTY_ACCESSOR public final fun (: kotlin.Int): kotlin.Unit $this: VALUE_PARAMETER this@X3: X3 VALUE_PARAMETER value-parameter : kotlin.Int BLOCK_BODY SET_FIELD 'x3: Int' type=kotlin.Unit origin=null receiver: GET_VAR 'this@X3: X3' type=X1.X2.X3 origin=null value: GET_VAR 'value-parameter : Int' type=kotlin.Int origin=null FUN FAKE_OVERRIDE public open override fun equals(other: kotlin.Any?): kotlin.Boolean $this: VALUE_PARAMETER this@Any: Any VALUE_PARAMETER value-parameter other: kotlin.Any? FUN FAKE_OVERRIDE public open override fun hashCode(): kotlin.Int $this: VALUE_PARAMETER this@Any: Any FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String $this: VALUE_PARAMETER this@Any: Any FUN FAKE_OVERRIDE public open override fun equals(other: kotlin.Any?): kotlin.Boolean $this: VALUE_PARAMETER this@Any: Any VALUE_PARAMETER value-parameter other: kotlin.Any? FUN FAKE_OVERRIDE public open override fun hashCode(): kotlin.Int $this: VALUE_PARAMETER this@Any: Any FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String $this: VALUE_PARAMETER this@Any: Any FUN FAKE_OVERRIDE public open override fun equals(other: kotlin.Any?): kotlin.Boolean $this: VALUE_PARAMETER this@Any: Any VALUE_PARAMETER value-parameter other: kotlin.Any? FUN FAKE_OVERRIDE public open override fun hashCode(): kotlin.Int $this: VALUE_PARAMETER this@Any: Any FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String $this: VALUE_PARAMETER this@Any: Any FUN public fun test1(a: kotlin.IntArray): kotlin.Unit VALUE_PARAMETER value-parameter a: kotlin.IntArray BLOCK_BODY VAR var i: kotlin.Int CONST Int type=kotlin.Int value='0' TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit BLOCK type=kotlin.Int origin=POSTFIX_INCR VAR IR_TEMPORARY_VARIABLE val tmp1_array: kotlin.IntArray GET_VAR 'value-parameter a: IntArray' type=kotlin.IntArray origin=null VAR IR_TEMPORARY_VARIABLE val tmp2_index0: kotlin.Int BLOCK type=kotlin.Int origin=POSTFIX_INCR VAR IR_TEMPORARY_VARIABLE val tmp0: kotlin.Int GET_VAR 'i: Int' type=kotlin.Int origin=POSTFIX_INCR SET_VAR 'i: Int' type=kotlin.Unit origin=POSTFIX_INCR CALL 'inc(): Int' type=kotlin.Int origin=POSTFIX_INCR $this: GET_VAR 'tmp0: Int' type=kotlin.Int origin=null GET_VAR 'tmp0: Int' type=kotlin.Int origin=null VAR IR_TEMPORARY_VARIABLE val tmp3: kotlin.Int CALL 'get(Int): Int' type=kotlin.Int origin=POSTFIX_INCR $this: GET_VAR 'tmp1_array: IntArray' type=kotlin.IntArray origin=null index: GET_VAR 'tmp2_index0: Int' type=kotlin.Int origin=null CALL 'set(Int, Int): Unit' type=kotlin.Unit origin=POSTFIX_INCR $this: GET_VAR 'tmp1_array: IntArray' type=kotlin.IntArray origin=null index: GET_VAR 'tmp2_index0: Int' type=kotlin.Int origin=null value: CALL 'inc(): Int' type=kotlin.Int origin=POSTFIX_INCR $this: GET_VAR 'tmp3: Int' type=kotlin.Int origin=null GET_VAR 'tmp3: Int' type=kotlin.Int origin=null FUN public fun test2(): kotlin.Unit BLOCK_BODY TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit BLOCK type=kotlin.Int origin=POSTFIX_INCR VAR IR_TEMPORARY_VARIABLE val tmp0_this: X1 GET_OBJECT 'X1' type=X1 BLOCK type=kotlin.Int origin=POSTFIX_INCR VAR IR_TEMPORARY_VARIABLE val tmp1: kotlin.Int CALL '(): Int' type=kotlin.Int origin=POSTFIX_INCR $this: GET_VAR 'tmp0_this: X1' type=X1 origin=null CALL '(Int): Unit' type=kotlin.Unit origin=POSTFIX_INCR $this: GET_VAR 'tmp0_this: X1' type=X1 origin=null : CALL 'inc(): Int' type=kotlin.Int origin=POSTFIX_INCR $this: GET_VAR 'tmp1: Int' type=kotlin.Int origin=null GET_VAR 'tmp1: Int' type=kotlin.Int origin=null TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit BLOCK type=kotlin.Int origin=POSTFIX_INCR VAR IR_TEMPORARY_VARIABLE val tmp2_this: X1.X2 GET_OBJECT 'X2' type=X1.X2 BLOCK type=kotlin.Int origin=POSTFIX_INCR VAR IR_TEMPORARY_VARIABLE val tmp3: kotlin.Int CALL '(): Int' type=kotlin.Int origin=POSTFIX_INCR $this: GET_VAR 'tmp2_this: X1.X2' type=X1.X2 origin=null CALL '(Int): Unit' type=kotlin.Unit origin=POSTFIX_INCR $this: GET_VAR 'tmp2_this: X1.X2' type=X1.X2 origin=null : CALL 'inc(): Int' type=kotlin.Int origin=POSTFIX_INCR $this: GET_VAR 'tmp3: Int' type=kotlin.Int origin=null GET_VAR 'tmp3: Int' type=kotlin.Int origin=null TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit BLOCK type=kotlin.Int origin=POSTFIX_INCR VAR IR_TEMPORARY_VARIABLE val tmp4_this: X1.X2.X3 GET_OBJECT 'X3' type=X1.X2.X3 BLOCK type=kotlin.Int origin=POSTFIX_INCR VAR IR_TEMPORARY_VARIABLE val tmp5: kotlin.Int CALL '(): Int' type=kotlin.Int origin=POSTFIX_INCR $this: GET_VAR 'tmp4_this: X1.X2.X3' type=X1.X2.X3 origin=null CALL '(Int): Unit' type=kotlin.Unit origin=POSTFIX_INCR $this: GET_VAR 'tmp4_this: X1.X2.X3' type=X1.X2.X3 origin=null : CALL 'inc(): Int' type=kotlin.Int origin=POSTFIX_INCR $this: GET_VAR 'tmp5: Int' type=kotlin.Int origin=null GET_VAR 'tmp5: Int' type=kotlin.Int origin=null CLASS CLASS B $this: VALUE_PARAMETER this@B: B CONSTRUCTOR public constructor B(s: kotlin.Int = ...) VALUE_PARAMETER value-parameter s: kotlin.Int = ... EXPRESSION_BODY CONST Int type=kotlin.Int value='0' BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'constructor Any()' INSTANCE_INITIALIZER_CALL classDescriptor='B' PROPERTY public final var s: kotlin.Int FIELD PROPERTY_BACKING_FIELD public final var s: kotlin.Int EXPRESSION_BODY GET_VAR 'value-parameter s: Int = ...' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER FUN DEFAULT_PROPERTY_ACCESSOR public final fun (): kotlin.Int $this: VALUE_PARAMETER this@B: B BLOCK_BODY RETURN type=kotlin.Nothing from='(): Int' GET_FIELD 's: Int' type=kotlin.Int origin=null receiver: GET_VAR 'this@B: B' type=B origin=null FUN DEFAULT_PROPERTY_ACCESSOR public final fun (: kotlin.Int): kotlin.Unit $this: VALUE_PARAMETER this@B: B VALUE_PARAMETER value-parameter : kotlin.Int BLOCK_BODY SET_FIELD 's: Int' type=kotlin.Unit origin=null receiver: GET_VAR 'this@B: B' type=B origin=null value: GET_VAR 'value-parameter : Int' type=kotlin.Int origin=null FUN FAKE_OVERRIDE public open override fun equals(other: kotlin.Any?): kotlin.Boolean $this: VALUE_PARAMETER this@Any: Any VALUE_PARAMETER value-parameter other: kotlin.Any? FUN FAKE_OVERRIDE public open override fun hashCode(): kotlin.Int $this: VALUE_PARAMETER this@Any: Any FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String $this: VALUE_PARAMETER this@Any: Any CLASS OBJECT Host $this: VALUE_PARAMETER this@Host: Host CONSTRUCTOR private constructor Host() BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'constructor Any()' INSTANCE_INITIALIZER_CALL classDescriptor='Host' FUN public final operator fun B.plusAssign(b: B): kotlin.Unit $this: VALUE_PARAMETER this@Host: Host $receiver: VALUE_PARAMETER this@plusAssign: B VALUE_PARAMETER value-parameter b: B BLOCK_BODY BLOCK type=kotlin.Unit origin=PLUSEQ VAR IR_TEMPORARY_VARIABLE val tmp0_this: B GET_VAR 'this@plusAssign: B' type=B origin=null CALL '(Int): Unit' type=kotlin.Unit origin=PLUSEQ $this: GET_VAR 'tmp0_this: B' type=B origin=null : CALL 'plus(Int): Int' type=kotlin.Int origin=PLUSEQ $this: CALL '(): Int' type=kotlin.Int origin=PLUSEQ $this: GET_VAR 'tmp0_this: B' type=B origin=null other: CALL '(): Int' type=kotlin.Int origin=GET_PROPERTY $this: GET_VAR 'value-parameter b: B' type=B origin=null FUN FAKE_OVERRIDE public open override fun equals(other: kotlin.Any?): kotlin.Boolean $this: VALUE_PARAMETER this@Any: Any VALUE_PARAMETER value-parameter other: kotlin.Any? FUN FAKE_OVERRIDE public open override fun hashCode(): kotlin.Int $this: VALUE_PARAMETER this@Any: Any FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String $this: VALUE_PARAMETER this@Any: Any FUN public fun Host.test3(v: B): kotlin.Unit $receiver: VALUE_PARAMETER this@test3: Host VALUE_PARAMETER value-parameter v: B BLOCK_BODY CALL 'plusAssign(B) on B: Unit' type=kotlin.Unit origin=PLUSEQ $this: GET_VAR 'this@test3: Host' type=Host origin=null $receiver: GET_VAR 'value-parameter v: B' type=B origin=PLUSEQ b: CALL 'constructor B(Int = ...)' type=B origin=null s: CONST Int type=kotlin.Int value='1000'