[Wasm] Simple support for external classes and interfaces
* Map these types to Wasm externref * Don't generate any declaration code for now Casting and accessing members is not supported yet
This commit is contained in:
+2
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.backend.js.utils.isJsExport
|
||||
import org.jetbrains.kotlin.ir.backend.js.utils.findUnitGetInstanceFunction
|
||||
import org.jetbrains.kotlin.ir.backend.js.utils.realOverrideTarget
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
@@ -173,6 +174,7 @@ class DeclarationGenerator(val context: WasmModuleCodegenContext) : IrElementVis
|
||||
|
||||
override fun visitClass(declaration: IrClass) {
|
||||
if (declaration.isAnnotationClass) return
|
||||
if (declaration.isExternal) return
|
||||
val symbol = declaration.symbol
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@ class WasmTypeTransformer(
|
||||
val klass = this.getClass()
|
||||
val ic = context.backendContext.inlineClassesUtils.getInlinedClass(this)
|
||||
|
||||
if (klass != null && klass.hasWasmForeignAnnotation()) {
|
||||
if (klass != null && (klass.hasWasmForeignAnnotation() || klass.isExternal)) {
|
||||
WasmExternRef
|
||||
} else if (ic != null) {
|
||||
context.backendContext.inlineClassesUtils.getInlineClassUnderlyingType(ic).toWasmValueType()
|
||||
|
||||
Reference in New Issue
Block a user