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.
79 lines
1.8 KiB
Plaintext
Vendored
79 lines
1.8 KiB
Plaintext
Vendored
data class MyContainer {
|
|
constructor(s: String) /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
var s: String
|
|
field = s
|
|
get
|
|
set
|
|
|
|
operator fun component1(): String {
|
|
return <this>.#s
|
|
}
|
|
|
|
fun copy(s: String = <this>.#s): MyContainer {
|
|
return MyContainer(s = s)
|
|
}
|
|
|
|
override fun toString(): String {
|
|
return "MyContainer(" + "s=" + <this>.#s + ")"
|
|
}
|
|
|
|
override fun hashCode(): Int {
|
|
return <this>.#s.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>.#s, arg1 = tmp0_other_with_cast.#s).not() -> return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
}
|
|
|
|
operator fun MyContainer.get(_context_receiver_0: Int, index: Int): String? {
|
|
return when {
|
|
when {
|
|
EQEQ(arg0 = index, arg1 = 0) -> EQEQ(arg0 = _context_receiver_0, arg1 = 42)
|
|
else -> false
|
|
} -> <this>.<get-s>()
|
|
else -> null
|
|
}
|
|
}
|
|
|
|
operator fun MyContainer.set(_context_receiver_0: Int, index: Int, value: String) {
|
|
when {
|
|
when {
|
|
EQEQ(arg0 = index, arg1 = 0).not() -> true
|
|
else -> EQEQ(arg0 = _context_receiver_0, arg1 = 42).not()
|
|
} -> return Unit
|
|
}
|
|
<this>.<set-s>(<set-?> = value)
|
|
}
|
|
|
|
fun box(): String {
|
|
return with<Int, String>(receiver = 42, block = local fun Int.<anonymous>(): String {
|
|
val myContainer: MyContainer = MyContainer(s = "fail")
|
|
myContainer.set(_context_receiver_0 = $this$with, index = 0, value = "OK")
|
|
return { // BLOCK
|
|
val tmp0_elvis_lhs: String? = myContainer.get(_context_receiver_0 = $this$with, index = 0)
|
|
when {
|
|
EQEQ(arg0 = tmp0_elvis_lhs, arg1 = null) -> "fail"
|
|
else -> tmp0_elvis_lhs
|
|
}
|
|
}
|
|
}
|
|
)
|
|
}
|