FIR2IR: Make a component for Fir2IrConverter
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user