[FIR2IR] Move initialization of Fir2IrComponentsStorage into its constructor
This commit is contained in:
committed by
Space Team
parent
3e330241b4
commit
cb0d61309a
+28
-15
@@ -10,41 +10,54 @@ import org.jetbrains.kotlin.fir.backend.generators.AnnotationGenerator
|
||||
import org.jetbrains.kotlin.fir.backend.generators.CallAndReferenceGenerator
|
||||
import org.jetbrains.kotlin.fir.backend.generators.DelegatedMemberGenerator
|
||||
import org.jetbrains.kotlin.fir.backend.generators.FakeOverrideGenerator
|
||||
import org.jetbrains.kotlin.fir.descriptors.FirModuleDescriptor
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.signaturer.FirBasedSignatureComposer
|
||||
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.util.KotlinMangler
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
|
||||
class Fir2IrComponentsStorage(
|
||||
override val session: FirSession,
|
||||
override val scopeSession: ScopeSession,
|
||||
override val symbolTable: SymbolTable,
|
||||
override val irFactory: IrFactory,
|
||||
override val signatureComposer: FirBasedSignatureComposer,
|
||||
override val extensions: Fir2IrExtensions,
|
||||
override val configuration: Fir2IrConfiguration,
|
||||
override val visibilityConverter: Fir2IrVisibilityConverter,
|
||||
moduleDescriptor: FirModuleDescriptor,
|
||||
commonMemberStorage: Fir2IrCommonMemberStorage,
|
||||
irMangler: KotlinMangler.IrMangler,
|
||||
specialSymbolProvider: Fir2IrSpecialSymbolProvider,
|
||||
initializedIrBuiltIns: IrBuiltInsOverFir?
|
||||
) : Fir2IrComponents {
|
||||
override val signatureComposer: FirBasedSignatureComposer = commonMemberStorage.firSignatureComposer
|
||||
override val symbolTable: SymbolTable = commonMemberStorage.symbolTable
|
||||
|
||||
override lateinit var converter: Fir2IrConverter
|
||||
override val converter: Fir2IrConverter = Fir2IrConverter(moduleDescriptor, this)
|
||||
|
||||
override lateinit var classifierStorage: Fir2IrClassifierStorage
|
||||
override lateinit var declarationStorage: Fir2IrDeclarationStorage
|
||||
override val classifierStorage: Fir2IrClassifierStorage = Fir2IrClassifierStorage(this, commonMemberStorage)
|
||||
override val declarationStorage: Fir2IrDeclarationStorage = Fir2IrDeclarationStorage(this, moduleDescriptor, commonMemberStorage)
|
||||
|
||||
override lateinit var irBuiltIns: IrBuiltInsOverFir
|
||||
override lateinit var builtIns: Fir2IrBuiltIns
|
||||
override lateinit var irProviders: List<IrProvider>
|
||||
override val irBuiltIns: IrBuiltInsOverFir = initializedIrBuiltIns ?: IrBuiltInsOverFir(
|
||||
this, configuration.languageVersionSettings, moduleDescriptor, irMangler
|
||||
)
|
||||
|
||||
override lateinit var typeConverter: Fir2IrTypeConverter
|
||||
override lateinit var visibilityConverter: Fir2IrVisibilityConverter
|
||||
override val builtIns: Fir2IrBuiltIns = Fir2IrBuiltIns(this, specialSymbolProvider)
|
||||
override val irProviders: List<IrProvider> = listOf(FirIrProvider(this))
|
||||
|
||||
override lateinit var annotationGenerator: AnnotationGenerator
|
||||
override lateinit var callGenerator: CallAndReferenceGenerator
|
||||
override lateinit var fakeOverrideGenerator: FakeOverrideGenerator
|
||||
override lateinit var delegatedMemberGenerator: DelegatedMemberGenerator
|
||||
override val typeConverter: Fir2IrTypeConverter = Fir2IrTypeConverter(this)
|
||||
|
||||
override lateinit var annotationsFromPluginRegistrar: Fir2IrAnnotationsFromPluginRegistrar
|
||||
private val conversionScope = Fir2IrConversionScope(configuration)
|
||||
val fir2IrVisitor: Fir2IrVisitor = Fir2IrVisitor(this, conversionScope)
|
||||
|
||||
override val annotationGenerator: AnnotationGenerator = AnnotationGenerator(this)
|
||||
override val callGenerator: CallAndReferenceGenerator = CallAndReferenceGenerator(this, fir2IrVisitor, conversionScope)
|
||||
override val fakeOverrideGenerator: FakeOverrideGenerator = FakeOverrideGenerator(this, conversionScope)
|
||||
override val delegatedMemberGenerator: DelegatedMemberGenerator = DelegatedMemberGenerator(this)
|
||||
|
||||
override val annotationsFromPluginRegistrar: Fir2IrAnnotationsFromPluginRegistrar = Fir2IrAnnotationsFromPluginRegistrar(this)
|
||||
|
||||
override val lock: IrLock
|
||||
get() = symbolTable.lock
|
||||
|
||||
@@ -31,7 +31,6 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.symbols.Fir2IrConstructorSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.Fir2IrSimpleFunctionSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.fir.types.coneTypeOrNull
|
||||
import org.jetbrains.kotlin.ir.PsiIrFileEntry
|
||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
@@ -548,46 +547,21 @@ class Fir2IrConverter(
|
||||
session.lazyDeclarationResolver.disableLazyResolveContractChecks()
|
||||
val moduleDescriptor = FirModuleDescriptor(session, kotlinBuiltIns)
|
||||
val components = Fir2IrComponentsStorage(
|
||||
session,
|
||||
scopeSession,
|
||||
commonMemberStorage.symbolTable,
|
||||
irFactory,
|
||||
commonMemberStorage.firSignatureComposer,
|
||||
fir2IrExtensions,
|
||||
fir2IrConfiguration,
|
||||
session, scopeSession, irFactory, fir2IrExtensions, fir2IrConfiguration, visibilityConverter,
|
||||
moduleDescriptor, commonMemberStorage, irMangler, specialSymbolProvider, initializedIrBuiltIns
|
||||
)
|
||||
val converter = Fir2IrConverter(moduleDescriptor, components)
|
||||
|
||||
components.converter = converter
|
||||
components.classifierStorage = Fir2IrClassifierStorage(components, commonMemberStorage)
|
||||
components.delegatedMemberGenerator = DelegatedMemberGenerator(components)
|
||||
components.declarationStorage = Fir2IrDeclarationStorage(components, moduleDescriptor, commonMemberStorage)
|
||||
components.visibilityConverter = visibilityConverter
|
||||
components.typeConverter = Fir2IrTypeConverter(components)
|
||||
val irBuiltIns = initializedIrBuiltIns ?: IrBuiltInsOverFir(
|
||||
components, fir2IrConfiguration.languageVersionSettings, moduleDescriptor, irMangler
|
||||
)
|
||||
components.irBuiltIns = irBuiltIns
|
||||
val conversionScope = Fir2IrConversionScope(components.configuration)
|
||||
val fir2irVisitor = Fir2IrVisitor(components, conversionScope)
|
||||
components.builtIns = Fir2IrBuiltIns(components, specialSymbolProvider)
|
||||
components.annotationGenerator = AnnotationGenerator(components)
|
||||
components.fakeOverrideGenerator = FakeOverrideGenerator(components, conversionScope)
|
||||
components.callGenerator = CallAndReferenceGenerator(components, fir2irVisitor, conversionScope)
|
||||
components.irProviders = listOf(FirIrProvider(components))
|
||||
components.annotationsFromPluginRegistrar = Fir2IrAnnotationsFromPluginRegistrar(components)
|
||||
|
||||
fir2IrExtensions.registerDeclarations(commonMemberStorage.symbolTable)
|
||||
|
||||
val irModuleFragment = IrModuleFragmentImpl(moduleDescriptor, irBuiltIns)
|
||||
val irModuleFragment = IrModuleFragmentImpl(moduleDescriptor, components.irBuiltIns)
|
||||
|
||||
val allFirFiles = buildList {
|
||||
addAll(firFiles)
|
||||
addAll(session.createFilesWithGeneratedDeclarations())
|
||||
}
|
||||
|
||||
converter.runSourcesConversion(
|
||||
allFirFiles, irModuleFragment, fir2irVisitor, runPreCacheBuiltinClasses = initializedIrBuiltIns == null
|
||||
components.converter.runSourcesConversion(
|
||||
allFirFiles, irModuleFragment, components.fir2IrVisitor, runPreCacheBuiltinClasses = initializedIrBuiltIns == null
|
||||
)
|
||||
|
||||
return Fir2IrResult(irModuleFragment, components, moduleDescriptor)
|
||||
|
||||
Reference in New Issue
Block a user