Always generate temporary variables for receivers in a property compound assignment
(emulate 'resolve' behavior).
This commit is contained in:
committed by
Dmitry Petrov
parent
28b3ea27f3
commit
4cc5fb7454
@@ -0,0 +1,88 @@
|
||||
FILE /complexAugmentedAssignment.kt
|
||||
CLASS OBJECT X1
|
||||
CONSTRUCTOR private constructor X1()
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL Any
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor=X1
|
||||
PROPERTY public final var x1: kotlin.Int
|
||||
EXPRESSION_BODY
|
||||
CONST Int type=kotlin.Int value='0'
|
||||
CLASS OBJECT X2
|
||||
CONSTRUCTOR private constructor X2()
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL Any
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor=X2
|
||||
PROPERTY public final var x2: kotlin.Int
|
||||
EXPRESSION_BODY
|
||||
CONST Int type=kotlin.Int value='0'
|
||||
CLASS OBJECT X3
|
||||
CONSTRUCTOR private constructor X3()
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL Any
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor=X3
|
||||
PROPERTY public final var x3: kotlin.Int
|
||||
EXPRESSION_BODY
|
||||
CONST Int type=kotlin.Int value='0'
|
||||
FUN public fun test1(/*0*/ a: kotlin.IntArray): kotlin.Unit
|
||||
BLOCK_BODY
|
||||
VAR var i: kotlin.Int
|
||||
CONST Int type=kotlin.Int value='0'
|
||||
BLOCK type=kotlin.Int operator=POSTFIX_INCR
|
||||
VAR val tmp1_array: kotlin.IntArray
|
||||
GET_VAR a type=kotlin.IntArray operator=null
|
||||
VAR val tmp2_index0: kotlin.Int
|
||||
BLOCK type=kotlin.Int operator=POSTFIX_INCR
|
||||
VAR val tmp0: kotlin.Int
|
||||
GET_VAR i type=kotlin.Int operator=POSTFIX_INCR
|
||||
SET_VAR i type=kotlin.Unit operator=POSTFIX_INCR
|
||||
CALL .inc type=kotlin.Int operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp0 type=kotlin.Int operator=null
|
||||
GET_VAR tmp0 type=kotlin.Int operator=null
|
||||
VAR val tmp3: kotlin.Int
|
||||
CALL .get type=kotlin.Int operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp1_array type=kotlin.IntArray operator=null
|
||||
index: GET_VAR tmp2_index0 type=kotlin.Int operator=null
|
||||
CALL .set type=kotlin.Unit operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp1_array type=kotlin.IntArray operator=null
|
||||
index: GET_VAR tmp2_index0 type=kotlin.Int operator=null
|
||||
value: CALL .inc type=kotlin.Int operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp3 type=kotlin.Int operator=null
|
||||
GET_VAR tmp3 type=kotlin.Int operator=null
|
||||
FUN public fun test2(): kotlin.Unit
|
||||
BLOCK_BODY
|
||||
BLOCK type=kotlin.Int operator=POSTFIX_INCR
|
||||
VAR val tmp0_this: X1
|
||||
GET_OBJECT X1 type=X1
|
||||
BLOCK type=kotlin.Int operator=POSTFIX_INCR
|
||||
VAR val tmp1: kotlin.Int
|
||||
CALL .<get-x1> type=kotlin.Int operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp0_this type=X1 operator=null
|
||||
CALL .<set-x1> type=kotlin.Unit operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp0_this type=X1 operator=null
|
||||
<set-?>: CALL .inc type=kotlin.Int operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp1 type=kotlin.Int operator=null
|
||||
GET_VAR tmp1 type=kotlin.Int operator=null
|
||||
BLOCK type=kotlin.Int operator=POSTFIX_INCR
|
||||
VAR val tmp2_this: X1.X2
|
||||
GET_OBJECT X2 type=X1.X2
|
||||
BLOCK type=kotlin.Int operator=POSTFIX_INCR
|
||||
VAR val tmp3: kotlin.Int
|
||||
CALL .<get-x2> type=kotlin.Int operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp2_this type=X1.X2 operator=null
|
||||
CALL .<set-x2> type=kotlin.Unit operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp2_this type=X1.X2 operator=null
|
||||
<set-?>: CALL .inc type=kotlin.Int operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp3 type=kotlin.Int operator=null
|
||||
GET_VAR tmp3 type=kotlin.Int operator=null
|
||||
BLOCK type=kotlin.Int operator=POSTFIX_INCR
|
||||
VAR val tmp4_this: X1.X2.X3
|
||||
GET_OBJECT X3 type=X1.X2.X3
|
||||
BLOCK type=kotlin.Int operator=POSTFIX_INCR
|
||||
VAR val tmp5: kotlin.Int
|
||||
CALL .<get-x3> type=kotlin.Int operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp4_this type=X1.X2.X3 operator=null
|
||||
CALL .<set-x3> type=kotlin.Unit operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp4_this type=X1.X2.X3 operator=null
|
||||
<set-?>: CALL .inc type=kotlin.Int operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp5 type=kotlin.Int operator=null
|
||||
GET_VAR tmp5 type=kotlin.Int operator=null
|
||||
Reference in New Issue
Block a user