77cbd10f9c
In constructs such as 'd[i] += x', where both indexed get and indexed
set are dynamic calls, it's safe to generate augmented assignment body
directly, without temporary variables for array ('d') and index ('i').
Note that corresponding IntermediateValue's are OnceExpressionValue's,
which would throw an exception if this assumption is violated.
25 lines
1.4 KiB
Plaintext
Vendored
25 lines
1.4 KiB
Plaintext
Vendored
FILE fqName:<root> fileName:/dynamicArrayIncrementDecrement.kt
|
|
FUN name:testArrayIncrementDecrement visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit flags:
|
|
VALUE_PARAMETER name:d index:0 type:dynamic flags:
|
|
BLOCK_BODY
|
|
VAR name:t1 type:dynamic flags:val
|
|
DYN_OP operator=PREFIX_INCREMENT type=dynamic
|
|
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
|
|
receiver: GET_VAR 'value-parameter d: dynamic' type=dynamic origin=null
|
|
0: CONST String type=kotlin.String value="prefixIncr"
|
|
VAR name:t2 type:dynamic flags:val
|
|
DYN_OP operator=PREFIX_DECREMENT type=dynamic
|
|
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
|
|
receiver: GET_VAR 'value-parameter d: dynamic' type=dynamic origin=null
|
|
0: CONST String type=kotlin.String value="prefixDecr"
|
|
VAR name:t3 type:dynamic flags:val
|
|
DYN_OP operator=POSTFIX_INCREMENT type=dynamic
|
|
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
|
|
receiver: GET_VAR 'value-parameter d: dynamic' type=dynamic origin=null
|
|
0: CONST String type=kotlin.String value="postfixIncr"
|
|
VAR name:t4 type:dynamic flags:val
|
|
DYN_OP operator=POSTFIX_DECREMENT type=dynamic
|
|
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
|
|
receiver: GET_VAR 'value-parameter d: dynamic' type=dynamic origin=null
|
|
0: CONST String type=kotlin.String value="postfixDecr"
|