Files
kotlin-fork/compiler/testData/ir/irText/expressions/complexAugmentedAssignment.kt.txt
T
Dmitriy Novozhilov b454fcc1e0 [FIR] Save IR dumps to .ir.txt files instead of .txt in tests
This is needed to avoid clashes between different dumps from different
  handlers
2021-10-12 17:26:36 +03:00

118 lines
1.8 KiB
Kotlin
Vendored

object X1 {
private constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
var x1: Int
field = 0
get
set
object X2 {
private constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
var x2: Int
field = 0
get
set
object X3 {
private constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
var x3: Int
field = 0
get
set
}
}
}
fun test1(a: IntArray) {
var i: Int = 0
{ // BLOCK
val tmp1_array: IntArray = a
val tmp2_index0: Int = { // BLOCK
val tmp0: Int = i
i = tmp0.inc()
tmp0
}
val tmp3: Int = tmp1_array.get(index = tmp2_index0)
tmp1_array.set(index = tmp2_index0, value = tmp3.inc())
tmp3
} /*~> Unit */
}
fun test2() {
{ // BLOCK
val tmp0_this: X1 = X1
{ // BLOCK
val tmp1: Int = tmp0_this.<get-x1>()
tmp0_this.<set-x1>(<set-?> = tmp1.inc())
tmp1
}
} /*~> Unit */
{ // BLOCK
val tmp2_this: X2 = X2
{ // BLOCK
val tmp3: Int = tmp2_this.<get-x2>()
tmp2_this.<set-x2>(<set-?> = tmp3.inc())
tmp3
}
} /*~> Unit */
{ // BLOCK
val tmp4_this: X3 = X3
{ // BLOCK
val tmp5: Int = tmp4_this.<get-x3>()
tmp4_this.<set-x3>(<set-?> = tmp5.inc())
tmp5
}
} /*~> Unit */
}
class B {
constructor(s: Int = 0) /* primary */ {
super/*Any*/()
/* <init>() */
}
var s: Int
field = s
get
set
}
object Host {
private constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
operator fun B.plusAssign(b: B) {
{ // BLOCK
val tmp0_this: B = <this>
tmp0_this.<set-s>(<set-?> = tmp0_this.<get-s>().plus(other = b.<get-s>()))
}
}
}
fun Host.test3(v: B) {
(<this>, v).plusAssign(b = B(s = 1000))
}