FIR2IR: Make a component for Fir2IrConverter

This commit is contained in:
Denis.Zharkov
2021-11-25 19:41:25 +03:00
committed by Space
parent 60073239bb
commit 78ba49ddd8
5 changed files with 10 additions and 4 deletions
@@ -37,7 +37,6 @@ import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.StandardClassIds
class Fir2IrClassifierStorage(
private val converter: Fir2IrConverter,
private val components: Fir2IrComponents
) : Fir2IrComponents by components {
private val firProvider = session.firProvider
@@ -20,6 +20,8 @@ interface Fir2IrComponents {
val session: FirSession
val scopeSession: ScopeSession
val converter: Fir2IrConverter
val symbolTable: SymbolTable
val irBuiltIns: IrBuiltIns
val builtIns: Fir2IrBuiltIns
@@ -24,6 +24,9 @@ class Fir2IrComponentsStorage(
override val irFactory: IrFactory,
override val signatureComposer: FirBasedSignatureComposer
) : Fir2IrComponents {
override lateinit var converter: Fir2IrConverter
override lateinit var classifierStorage: Fir2IrClassifierStorage
override lateinit var declarationStorage: Fir2IrDeclarationStorage
@@ -418,7 +418,10 @@ class Fir2IrConverter(
val signatureComposer = FirBasedSignatureComposer(mangler)
val components = Fir2IrComponentsStorage(session, scopeSession, symbolTable, irFactory, signatureComposer)
val converter = Fir2IrConverter(moduleDescriptor, components)
val classifierStorage = Fir2IrClassifierStorage(converter, components)
components.converter = converter
val classifierStorage = Fir2IrClassifierStorage(components)
components.classifierStorage = classifierStorage
components.delegatedMemberGenerator = DelegatedMemberGenerator(components)
val declarationStorage = Fir2IrDeclarationStorage(components, moduleDescriptor)
@@ -433,7 +436,7 @@ class Fir2IrConverter(
)
components.irBuiltIns = irBuiltIns
val conversionScope = Fir2IrConversionScope()
val fir2irVisitor = Fir2IrVisitor(converter, components, conversionScope)
val fir2irVisitor = Fir2IrVisitor(components, conversionScope)
val builtIns = Fir2IrBuiltIns(components, specialSymbolProvider)
val annotationGenerator = AnnotationGenerator(components)
components.builtIns = builtIns
@@ -55,7 +55,6 @@ import org.jetbrains.kotlin.psi.KtForExpression
import org.jetbrains.kotlin.util.OperatorNameConventions
class Fir2IrVisitor(
private val converter: Fir2IrConverter,
private val components: Fir2IrComponents,
private val conversionScope: Fir2IrConversionScope
) : Fir2IrComponents by components, FirDefaultVisitor<IrElement, Any?>(), IrGeneratorContextInterface {