[FIR] Desugar increment/decrement in body resolve phase

The expression needs to be resolved first to determine if there is a
receiver that needs to be extracted to a temporary variable. Also, the
special case for prefix increment/decrement on local variable without
delegates requires resolution to check if the variable is local.

^KT-56771 Fixed
^KT-56659 Fixed
This commit is contained in:
Kirill Rakhman
2023-02-21 16:24:34 +01:00
committed by Space Team
parent 5ecf9cce25
commit 3b9724d20e
77 changed files with 1171 additions and 553 deletions
@@ -1,6 +1,9 @@
while(CMP(<, R|<local>/x|.R|kotlin/Int.compareTo|(Int(2)))) {
[BODY_RESOLVE] lval <unary>: R|kotlin/Int| = R|<local>/x|
R|<local>/x| = R|<local>/<unary>|.R|kotlin/Int.dec|()
R|<local>/<unary>|
{
[BODY_RESOLVE] lval <unary>: R|kotlin/Int| = R|<local>/x|
R|<local>/x| = R|<local>/<unary>|.R|kotlin/Int.dec|()
R|<local>/<unary>|
}
[BODY_RESOLVE] lval z: R|kotlin/Int| = R|<local>/y|
}