IR: rename DeclarationFactory to InnerClassesSupport, move out of context
Methods of the common interface DeclarationFactory were only used in lowerings in InnerClassesLowering, which were used in JVM and JS, not Native. Therefore, it makes sense to have this as a separate interface and pass its implementation to these lowerings directly, instead of declaring it in the common context (which is not going to be implemented in Native).
This commit is contained in:
+2
-5
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.backend.wasm
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.ir.Ir
|
||||
import org.jetbrains.kotlin.backend.common.ir.Symbols
|
||||
import org.jetbrains.kotlin.backend.js.JsDeclarationFactory
|
||||
import org.jetbrains.kotlin.ir.backend.js.lower.JsInnerClassesSupport
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
|
||||
@@ -52,7 +52,7 @@ class WasmBackendContext(
|
||||
|
||||
override val mapping = JsMapping()
|
||||
|
||||
override val declarationFactory = JsDeclarationFactory(mapping)
|
||||
val innerClassesSupport = JsInnerClassesSupport(mapping)
|
||||
|
||||
val objectToGetInstanceFunction = mutableMapOf<IrClassSymbol, IrSimpleFunction>()
|
||||
override val internalPackageFqn = FqName("kotlin.wasm")
|
||||
@@ -100,6 +100,3 @@ class DescriptorlessExternalPackageFragmentSymbol : IrExternalPackageFragmentSym
|
||||
override val signature: IdSignature
|
||||
get() = error("Operation is unsupported")
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
+3
-3
@@ -149,20 +149,20 @@ private val localClassExtractionPhase = makeWasmModulePhase(
|
||||
)
|
||||
|
||||
private val innerClassesLoweringPhase = makeWasmModulePhase(
|
||||
::InnerClassesLowering,
|
||||
{ context -> InnerClassesLowering(context, context.innerClassesSupport) },
|
||||
name = "InnerClassesLowering",
|
||||
description = "Capture outer this reference to inner class"
|
||||
)
|
||||
|
||||
private val innerClassesMemberBodyLoweringPhase = makeWasmModulePhase(
|
||||
::InnerClassesMemberBodyLowering,
|
||||
{ context -> InnerClassesMemberBodyLowering(context, context.innerClassesSupport) },
|
||||
name = "InnerClassesMemberBody",
|
||||
description = "Replace `this` with 'outer this' field references",
|
||||
prerequisite = setOf(innerClassesLoweringPhase)
|
||||
)
|
||||
|
||||
private val innerClassConstructorCallsLoweringPhase = makeWasmModulePhase(
|
||||
::InnerClassConstructorCallsLowering,
|
||||
{ context -> InnerClassConstructorCallsLowering(context, context.innerClassesSupport) },
|
||||
name = "InnerClassConstructorCallsLowering",
|
||||
description = "Replace inner class constructor invocation"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user