Raw FIR: provide receiver to ++, -- operators

This commit is contained in:
Simon Ogorodnik
2019-04-23 04:17:15 +03:00
committed by Mikhail Glukhikh
parent dc4ccf8d23
commit 0ae2f992fa
4 changed files with 15 additions and 15 deletions
@@ -360,7 +360,7 @@ internal fun generateIncrementOrDecrementBlock(
val resultName = Name.special("<unary-result>")
val resultInitializer = FirFunctionCallImpl(session, baseExpression).apply {
this.calleeReference = FirSimpleNamedReference(session, baseExpression.operationReference, callName)
this.arguments += generateAccessExpression(session, baseExpression, tempName)
this.explicitReceiver = generateAccessExpression(session, baseExpression, tempName)
}
val resultVar = generateTemporaryVariable(session, baseExpression, resultName, resultInitializer)
val assignment = argument.generateAssignment(
@@ -32,7 +32,7 @@ FILE: destructuring.kt
lvar y: <implicit> = <destruct>#.component2()
lvar z: String = <destruct>#.component3()
lval <unary>: <implicit> = x#
x# = inc#(<unary>#)
x# = <unary>#.inc#()
<unary>#
y# *= Double(2.0)
z# = String()
@@ -3,25 +3,25 @@ FILE: unary.kt
lvar x: <implicit> = Int(0)
lval x1: <implicit> = {
lval <unary>: <implicit> = x#
x# = inc#(<unary>#)
x# = <unary>#.inc#()
<unary>#
}
lval x2: <implicit> = {
lval <unary>: <implicit> = x#
x# = inc#(<unary>#)
x# = <unary>#.inc#()
x#
}
lval x3: <implicit> = {
lval <unary>: <implicit> = x#
x# = dec#(<unary>#)
x# = <unary>#.dec#()
x#
}
lval x4: <implicit> = {
lval <unary>: <implicit> = x#
x# = dec#(<unary>#)
x# = <unary>#.dec#()
<unary>#
}
@@ -46,13 +46,13 @@ FILE: unary.kt
public? final? fun test2(x: X): kotlin/Unit {
lval x1: <implicit> = {
lval <unary>: <implicit> = x#.i#
x#.i# = inc#(<unary>#)
x#.i# = <unary>#.inc#()
<unary>#
}
lval x2: <implicit> = {
lval <unary>: <implicit> = x#.i#
lval <unary-result>: <implicit> = inc#(<unary>#)
lval <unary-result>: <implicit> = <unary>#.inc#()
x#.i# = <unary-result>#
<unary-result>#
}
@@ -61,13 +61,13 @@ FILE: unary.kt
public? final? fun test3(arr: Array<Int>): kotlin/Unit {
lval x1: <implicit> = {
lval <unary>: <implicit> = arr#.get#(Int(0))
arr#.set#(Int(0), inc#(<unary>#))
arr#.set#(Int(0), <unary>#.inc#())
<unary>#
}
lval x2: <implicit> = {
lval <unary>: <implicit> = arr#.get#(Int(1))
lval <unary-result>: <implicit> = inc#(<unary>#)
lval <unary-result>: <implicit> = <unary>#.inc#()
arr#.set#(Int(1), <unary-result>#)
<unary-result>#
}
@@ -85,13 +85,13 @@ FILE: unary.kt
public? final? fun test4(y: Y): kotlin/Unit {
lval x1: <implicit> = {
lval <unary>: <implicit> = y#.arr#.get#(Int(0))
y#.arr#.set#(Int(0), inc#(<unary>#))
y#.arr#.set#(Int(0), <unary>#.inc#())
<unary>#
}
lval x2: <implicit> = {
lval <unary>: <implicit> = y#.arr#.get#(Int(1))
lval <unary-result>: <implicit> = inc#(<unary>#)
lval <unary-result>: <implicit> = <unary>#.inc#()
y#.arr#.set#(Int(1), <unary-result>#)
<unary-result>#
}
@@ -3,12 +3,12 @@ FILE: while.kt
lvar k: <implicit> = Int(0)
some@while(<(k#, limit#)) {
lval <unary>: <implicit> = k#
k# = inc#(<unary>#)
k# = <unary>#.inc#()
<unary>#
println#(k#)
while(==(k#, Int(13))) {
lval <unary>: <implicit> = k#
k# = inc#(<unary>#)
k# = <unary>#.inc#()
<unary>#
when () {
<(k#, limit#) -> {
@@ -35,7 +35,7 @@ FILE: while.kt
lvar k: <implicit> = limit#
do {
lval <unary>: <implicit> = k#
k# = dec#(<unary>#)
k# = <unary>#.dec#()
<unary>#
println#(k#)
}