[FIR2IR] Add Fir2IrCommonMemberStorage, get rid of merge in Fir2Ir storages

Extract DescriptorSignatureComposerStub and WrappedDescriptorSignatureComposer to separate classes
This commit is contained in:
Ivan Kochurkin
2023-01-30 16:33:18 +01:00
committed by Space Team
parent c89770c450
commit 6bdd0edd6c
15 changed files with 160 additions and 181 deletions
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.config.languageVersionSettings
import org.jetbrains.kotlin.fir.FirAnalyzerFacade
import org.jetbrains.kotlin.fir.FirTestSessionFactoryHelper
import org.jetbrains.kotlin.fir.backend.Fir2IrConverter
import org.jetbrains.kotlin.fir.backend.Fir2IrCommonMemberStorage
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler
@@ -128,7 +128,7 @@ object GenerationUtils {
)
val fir2IrExtensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler)
val (signatureComposer, symbolTable) = Fir2IrConverter.createSignatureComposerAndSymbolTable(
val commonMemberStorage = Fir2IrCommonMemberStorage(
generateSignatures = firAnalyzerFacade.generateSignatures,
signatureComposerCreator = { JvmIdSignatureDescriptor(JvmDescriptorMangler(null)) },
manglerCreator = { FirJvmKotlinMangler() }
@@ -136,9 +136,7 @@ object GenerationUtils {
val (moduleFragment, components, pluginContext) = firAnalyzerFacade.convertToIr(
fir2IrExtensions,
signatureComposer = signatureComposer,
symbolTable = symbolTable,
dependentComponents = emptyList(),
commonMemberStorage,
irBuiltIns = null
)
val dummyBindingContext = NoScopeRecordCliBindingTrace().bindingContext
@@ -21,10 +21,8 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.resolve.providers.firProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirProviderImpl
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveProcessor
import org.jetbrains.kotlin.fir.signaturer.FirBasedSignatureComposer
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
import org.jetbrains.kotlin.ir.util.SymbolTable
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.sourceFiles.LightTreeFile
@@ -36,9 +34,7 @@ abstract class AbstractFirAnalyzerFacade {
abstract fun convertToIr(
fir2IrExtensions: Fir2IrExtensions,
signatureComposer: FirBasedSignatureComposer,
symbolTable: SymbolTable,
dependentComponents: List<Fir2IrComponents>,
commonMemberStorage: Fir2IrCommonMemberStorage,
irBuiltIns: IrBuiltInsOverFir?
): Fir2IrResult
}
@@ -107,9 +103,7 @@ class FirAnalyzerFacade(
override fun convertToIr(
fir2IrExtensions: Fir2IrExtensions,
signatureComposer: FirBasedSignatureComposer,
symbolTable: SymbolTable,
dependentComponents: List<Fir2IrComponents>,
commonMemberStorage: Fir2IrCommonMemberStorage,
irBuiltIns: IrBuiltInsOverFir?
): Fir2IrResult {
if (_scopeSession == null) runResolution()
@@ -124,9 +118,7 @@ class FirAnalyzerFacade(
irGeneratorExtensions,
generateSignatures,
kotlinBuiltIns = DefaultBuiltIns.Instance, // TODO: consider passing externally,
signatureComposer = signatureComposer,
symbolTable = symbolTable,
dependentComponents = dependentComponents,
commonMemberStorage = commonMemberStorage,
initializedIrBuiltIns = irBuiltIns
)
}