It seems like references to inner classes are just replaced by references to the outermost class instead, which of course breaks the code.
@KustomExport
data class A(val b: B) {
data class B(val x: Int)
}
generates
@JsExport
public class A(
b: CommonA,
) {
internal lateinit var common: CommonA
init {
if (b != dynamicNull) {
common = CommonA(
b = b,
)
}
}
public val b: CommonA
get() = common.b
@Suppress("UNNECESSARY_SAFE_CALL")
internal constructor(common: CommonA) : this(b = dynamicNull.unsafeCast<CommonA>()) {
this.common = common
}
}
public fun CommonA.exportA(): A = A(this)
public fun A.importA(): CommonA = this.common
Workaround: Extract the inner classes to top level classes
It seems like references to inner classes are just replaced by references to the outermost class instead, which of course breaks the code.
generates
Workaround: Extract the inner classes to top level classes