JVM IR: transform fake override properties in SAM adapters

Replace every property with its getter and setter. This is needed
because later on, JVM backend assumes that all properties have been
lowered (by JvmPropertiesLowering) to this state.

 #KT-64116 Fixed
This commit is contained in:
Alexander Udalov
2024-01-02 15:32:07 +01:00
committed by Space Team
parent d5b59c48c2
commit d08c9ba222
24 changed files with 167 additions and 10 deletions
+28
View File
@@ -0,0 +1,28 @@
// MODULE: lib
// FILE: JsPrimitives.kt
package lib
interface JsObject {
val isString: Boolean
get() = false
}
fun interface JsRunnable : JsObject {
fun run()
}
// MODULE: main(lib)
// FILE: main.kt
import lib.JsRunnable
class ReactComponent {
fun forceUpdate(callback: JsRunnable) { callback.run() }
}
fun forceUpdate(myNativeComponent: ReactComponent, callback: () -> Unit) {
myNativeComponent.forceUpdate(callback)
}
fun box(): String {
return "OK"
}