Files
kotlin-fork/compiler/testData/ir/irText/declarations/contextReceivers/unaryOperators.fir.kt.txt
T
Vladimir Sukharev bae8b283c7 [IR] Normalize temp var names in Kotlin-like dump
^KT-61983 Fixed
2023-10-11 07:49:35 +00:00

103 lines
2.6 KiB
Kotlin
Vendored

data class Result {
constructor(i: Int) /* primary */ {
super/*Any*/()
/* <init>() */
}
val i: Int
field = i
get
operator fun component1(): Int {
return <this>.#i
}
fun copy(i: Int = <this>.#i): Result {
return Result(i = i)
}
override fun toString(): String {
return "Result(" + "i=" + <this>.#i + ")"
}
override fun hashCode(): Int {
return <this>.#i.hashCode()
}
override operator fun equals(other: Any?): Boolean {
when {
EQEQEQ(arg0 = <this>, arg1 = other) -> return true
}
when {
other !is Result -> return false
}
val tmp_0: Result = other as Result
when {
EQEQ(arg0 = <this>.#i, arg1 = tmp_0.#i).not() -> return false
}
return true
}
}
var operationScore: Int
field = 0
get
set
operator fun Result.unaryMinus($context_receiver_0: Int): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return Result(i = <this>.<get-i>().unaryMinus())
}
operator fun Result.unaryPlus($context_receiver_0: Int): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return Result(i = when {
less(arg0 = <this>.<get-i>(), arg1 = 0) -> <this>.<get-i>().unaryMinus()
else -> <this>.<get-i>()
})
}
operator fun Result.inc($context_receiver_0: Int): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return Result(i = <this>.<get-i>().plus(other = 1))
}
operator fun Result.dec($context_receiver_0: Int): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return Result(i = <this>.<get-i>().minus(other = 1))
}
fun box(): String {
var result: Result = Result(i = 0)
with<Int, Result>(receiver = 1, block = local fun Int.<anonymous>(): Result {
{ // BLOCK
val tmp_1: Result = result
result = tmp_1.inc($context_receiver_0 = $this$with)
tmp_1
} /*~> Unit */
{ // BLOCK
val tmp_2: Result = result
result = tmp_2.inc($context_receiver_0 = $this$with)
tmp_2
} /*~> Unit */
result.unaryMinus($context_receiver_0 = $this$with) /*~> Unit */
result.unaryPlus($context_receiver_0 = $this$with) /*~> Unit */
return { // BLOCK
val tmp_3: Result = result
result = tmp_3.dec($context_receiver_0 = $this$with)
tmp_3
}
}
) /*~> Unit */
return when {
when {
EQEQ(arg0 = result.<get-i>(), arg1 = 1) -> EQEQ(arg0 = <get-operationScore>(), arg1 = 5)
else -> false
} -> "OK"
else -> "fail"
}
}