21fef70367
Previously, FIR used `_context_receiver_n` while FE10 used `<this>` for all context receiver parameters. This commit changes the code in FE10 to follow the convention from FIR.
95 lines
2.3 KiB
Plaintext
Vendored
95 lines
2.3 KiB
Plaintext
Vendored
data class MyContainer {
|
|
constructor(i: Int) /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
var i: Int
|
|
field = i
|
|
get
|
|
set
|
|
|
|
operator fun component1(): Int {
|
|
return <this>.#i
|
|
}
|
|
|
|
fun copy(i: Int = <this>.#i): MyContainer {
|
|
return MyContainer(i = i)
|
|
}
|
|
|
|
override fun toString(): String {
|
|
return "MyContainer(" + "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 MyContainer -> return false
|
|
}
|
|
val tmp0_other_with_cast: MyContainer = other as MyContainer
|
|
when {
|
|
EQEQ(arg0 = <this>.#i, arg1 = tmp0_other_with_cast.#i).not() -> return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
}
|
|
|
|
var operationScore: Int
|
|
field = 0
|
|
get
|
|
set
|
|
|
|
operator fun MyContainer.get(_context_receiver_0: Int, index: Int): Int {
|
|
{ // BLOCK
|
|
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
|
|
}
|
|
return when {
|
|
EQEQ(arg0 = index, arg1 = 0) -> <this>.<get-i>()
|
|
else -> -1
|
|
}
|
|
}
|
|
|
|
operator fun MyContainer.plusAssign(_context_receiver_0: Int, other: MyContainer) {
|
|
{ // BLOCK
|
|
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
|
|
}
|
|
{ // BLOCK
|
|
val tmp0_this: MyContainer = <this>
|
|
tmp0_this.<set-i>(<set-?> = tmp0_this.<get-i>().plus(other = other.<get-i>()))
|
|
}
|
|
}
|
|
|
|
operator fun MyContainer.inc(_context_receiver_0: Int): MyContainer {
|
|
{ // BLOCK
|
|
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
|
|
}
|
|
return MyContainer(i = <this>.<get-i>().plus(other = 1))
|
|
}
|
|
|
|
fun box(): String {
|
|
var myContainer: MyContainer = MyContainer(i = 0)
|
|
with<Int, Unit>(receiver = 1, block = local fun Int.<anonymous>() {
|
|
myContainer.plusAssign(_context_receiver_0 = $this$with, other = MyContainer(i = { // BLOCK
|
|
val tmp0: MyContainer = myContainer
|
|
myContainer = tmp0.inc(_context_receiver_0 = $this$with)
|
|
tmp0
|
|
}.get(_context_receiver_0 = $this$with, index = 0)))
|
|
}
|
|
)
|
|
return when {
|
|
when {
|
|
EQEQ(arg0 = myContainer.<get-i>(), arg1 = 1) -> EQEQ(arg0 = <get-operationScore>(), arg1 = 3)
|
|
else -> false
|
|
} -> "OK"
|
|
else -> "fail"
|
|
}
|
|
}
|