IR: use inlineClassRepresentation in getInlineClassUnderlyingType

Looking for the primary constructor manually doesn't work if it's
private in the other module on JVM, because private declarations are
skipped in IrLazyClass.
This commit is contained in:
Alexander Udalov
2021-08-12 13:13:26 +02:00
parent 66dbd91851
commit 8d4f26cf84
13 changed files with 88 additions and 14 deletions
@@ -0,0 +1,23 @@
// IGNORE_BACKEND: WASM
// MODULE: lib
// FILE: lib.kt
inline class Z private constructor(private val value: Any?) {
fun result(): String = value as String
companion object {
fun create(value: Any?): Z = Z(value)
}
}
fun interface IFoo<T> {
fun foo(x: T): String
}
fun foo1(fs: IFoo<Z>) = fs.foo(Z.create("OK"))
// MODULE: main(lib)
// FILE: main.kt
fun box(): String =
foo1 { it.result() }