21e9bd7ea2
#KT-9304 #KT-14961 #KT-16549 #KT-21080 #KT-28234 #KT-30102 #KT-31994 #KT-34291 #KT-38099 #KT-41174 #KT-44622 #KT-44701 #KT-44781 #KT-44849 #KT-44978 #KT-45081 #KT-45286 #KT-45383 #KT-45444 #KT-45907
29 lines
562 B
Kotlin
Vendored
29 lines
562 B
Kotlin
Vendored
// IGNORE_BACKEND: JVM
|
|
// IGNORE_BACKEND_MULTI_MODULE: JVM, JVM_MULTI_MODULE_OLD_AGAINST_IR
|
|
// NO_CHECK_LAMBDA_INLINING
|
|
// FILE: 1.kt
|
|
|
|
package test
|
|
|
|
class M(size: Int) {
|
|
val m = IntArray(size) { 0 }
|
|
}
|
|
|
|
inline operator fun M.get(a: Any, b: Any, ifn: () -> Int) =
|
|
m[ifn()]
|
|
|
|
inline operator fun <reified T> M.set(a: T, b: Any, ifn: () -> Int, v: Int) {
|
|
if (b !is T) throw AssertionError()
|
|
m[ifn()] = v
|
|
}
|
|
|
|
// FILE: 2.kt
|
|
|
|
import test.*
|
|
|
|
fun box(): String {
|
|
val m = M(4)
|
|
m["a", "b", { 1 }] += 10
|
|
return if (m.m[1] == 10) "OK" else "Fail"
|
|
}
|