[Test] Unify all fir2ir facades for non-jvm platforms

Setup of fir2ir for JS, Native and Wasm is very similar, so it makes
  sense to extract all common parts of it into common base facade
This commit is contained in:
Dmitriy Novozhilov
2023-11-21 12:50:28 +02:00
committed by Space Team
parent e38b25c278
commit 06af6adf4f
8 changed files with 275 additions and 386 deletions
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.ir.IrLock
import org.jetbrains.kotlin.ir.declarations.IrFactory
import org.jetbrains.kotlin.ir.linkage.IrProvider
import org.jetbrains.kotlin.ir.overrides.IrFakeOverrideBuilder
import org.jetbrains.kotlin.ir.util.KotlinMangler
import org.jetbrains.kotlin.ir.util.SymbolTable
interface Fir2IrComponents {
@@ -31,6 +32,8 @@ interface Fir2IrComponents {
val symbolTable: SymbolTable
val irBuiltIns: IrBuiltInsOverFir
val builtIns: Fir2IrBuiltIns
val manglers: Manglers
val irFactory: IrFactory
val irProviders: List<IrProvider>
val lock: IrLock
@@ -56,4 +59,10 @@ interface Fir2IrComponents {
val configuration: Fir2IrConfiguration
val annotationsFromPluginRegistrar: Fir2IrAnnotationsFromPluginRegistrar
interface Manglers {
val descriptorMangler: KotlinMangler.DescriptorMangler
val irMangler: KotlinMangler.IrMangler
val firMangler: FirMangler
}
}
@@ -68,4 +68,15 @@ class Fir2IrComponentsStorage(
override val lock: IrLock
get() = symbolTable.lock
override val manglers: Fir2IrComponents.Manglers = object : Fir2IrComponents.Manglers {
override val descriptorMangler: KotlinMangler.DescriptorMangler
get() = symbolTable.signaturer.mangler
override val irMangler: KotlinMangler.IrMangler
get() = irMangler
override val firMangler: FirMangler
get() = commonMemberStorage.firSignatureComposer.mangler
}
}