7ce5556de3
The condition on the relationship between the current class and the type of the receiver for protected members was the opposite of what the JVMS says, and yet somehow mostly worked? #KT-48331 Fixed #KT-20542 Fixed
23 lines
612 B
Kotlin
Vendored
23 lines
612 B
Kotlin
Vendored
// IGNORE_BACKEND: JVM, JVM_IR
|
|
// IGNORE_BACKEND_FIR: JVM_IR
|
|
// IGNORE_BACKEND_MULTI_MODULE: JVM, JVM_IR, JVM_MULTI_MODULE_OLD_AGAINST_IR, JVM_MULTI_MODULE_IR_AGAINST_OLD
|
|
// FILE: 1.kt
|
|
package test
|
|
|
|
interface I {
|
|
fun f(): String
|
|
}
|
|
|
|
inline fun test(crossinline h: () -> String) = object : I {
|
|
// TODO: this does not work because the inliner is not correctly remapping the capture.
|
|
override fun f(): String = g()
|
|
// TODO: and this does not work in JVM_IR because there is a redundant accessor.
|
|
inline fun g(): String = h()
|
|
}
|
|
|
|
// FILE: 2.kt
|
|
|
|
import test.*
|
|
|
|
fun box(): String = test { "OK" }.f()
|