[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:
committed by
Space Team
parent
5ecf9cce25
commit
3b9724d20e
+15
-9
@@ -72,17 +72,23 @@ operator fun Result.dec(_context_receiver_0: Int): Result {
|
||||
fun box(): String {
|
||||
var result: Result = Result(i = 0)
|
||||
with<Int, Result>(receiver = 1, block = local fun Int.<anonymous>(): Result {
|
||||
val <unary>: Result = result
|
||||
result = <unary>.inc(_context_receiver_0 = $this$with)
|
||||
<unary> /*~> Unit */
|
||||
val <unary>: Result = result
|
||||
result = <unary>.inc(_context_receiver_0 = $this$with)
|
||||
<unary> /*~> Unit */
|
||||
{ // BLOCK
|
||||
val <unary>: Result = result
|
||||
result = <unary>.inc(_context_receiver_0 = $this$with)
|
||||
<unary>
|
||||
} /*~> Unit */
|
||||
{ // BLOCK
|
||||
val <unary>: Result = result
|
||||
result = <unary>.inc(_context_receiver_0 = $this$with)
|
||||
<unary>
|
||||
} /*~> Unit */
|
||||
result.unaryMinus(_context_receiver_0 = $this$with) /*~> Unit */
|
||||
result.unaryPlus(_context_receiver_0 = $this$with) /*~> Unit */
|
||||
val <unary>: Result = result
|
||||
result = <unary>.dec(_context_receiver_0 = $this$with)
|
||||
return <unary>
|
||||
return { // BLOCK
|
||||
val <unary>: Result = result
|
||||
result = <unary>.dec(_context_receiver_0 = $this$with)
|
||||
<unary>
|
||||
}
|
||||
}
|
||||
) /*~> Unit */
|
||||
return when {
|
||||
|
||||
Reference in New Issue
Block a user