From f9a032dbface4c8ac56dc1f0a0783034ff63023b Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Wed, 18 Nov 2020 12:54:31 -0800 Subject: [PATCH] FIR2IR: add AnnotationGenerator to Fir2IrComponents --- .../jetbrains/kotlin/fir/backend/Fir2IrComponents.kt | 8 +++++++- .../kotlin/fir/backend/Fir2IrComponentsStorage.kt | 12 ++++++++---- .../jetbrains/kotlin/fir/backend/Fir2IrConverter.kt | 2 ++ .../kotlin/fir/backend/Fir2IrDeclarationStorage.kt | 3 --- .../kotlin/fir/backend/Fir2IrTypeConverter.kt | 2 -- .../jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt | 3 --- .../fir/backend/generators/AnnotationGenerator.kt | 2 +- .../fir/backend/generators/ClassMemberGenerator.kt | 2 -- .../backend/generators/DelegatedMemberGenerator.kt | 2 -- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponents.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponents.kt index 62766f002b3..2a23ed2bad3 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponents.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponents.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.backend.generators.AnnotationGenerator import org.jetbrains.kotlin.fir.backend.generators.CallAndReferenceGenerator import org.jetbrains.kotlin.fir.backend.generators.FakeOverrideGenerator import org.jetbrains.kotlin.fir.resolve.ScopeSession @@ -16,15 +17,20 @@ import org.jetbrains.kotlin.ir.util.SymbolTable interface Fir2IrComponents { val session: FirSession val scopeSession: ScopeSession + val symbolTable: SymbolTable val irBuiltIns: IrBuiltIns val builtIns: Fir2IrBuiltIns val irFactory: IrFactory + val classifierStorage: Fir2IrClassifierStorage val declarationStorage: Fir2IrDeclarationStorage + val typeConverter: Fir2IrTypeConverter val signatureComposer: Fir2IrSignatureComposer + val visibilityConverter: Fir2IrVisibilityConverter + + val annotationGenerator: AnnotationGenerator val callGenerator: CallAndReferenceGenerator val fakeOverrideGenerator: FakeOverrideGenerator - val visibilityConverter: Fir2IrVisibilityConverter } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponentsStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponentsStorage.kt index 873ded8266b..3d59526ecef 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponentsStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponentsStorage.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.backend.generators.AnnotationGenerator import org.jetbrains.kotlin.fir.backend.generators.CallAndReferenceGenerator import org.jetbrains.kotlin.fir.backend.generators.FakeOverrideGenerator import org.jetbrains.kotlin.fir.resolve.ScopeSession @@ -25,11 +26,14 @@ class Fir2IrComponentsStorage( ) : Fir2IrComponents { override lateinit var classifierStorage: Fir2IrClassifierStorage override lateinit var declarationStorage: Fir2IrDeclarationStorage - override lateinit var typeConverter: Fir2IrTypeConverter - override lateinit var callGenerator: CallAndReferenceGenerator - override lateinit var fakeOverrideGenerator: FakeOverrideGenerator - override lateinit var visibilityConverter: Fir2IrVisibilityConverter + override lateinit var builtIns: Fir2IrBuiltIns + override lateinit var typeConverter: Fir2IrTypeConverter override val signatureComposer = FirBasedSignatureComposer(mangler) + override lateinit var visibilityConverter: Fir2IrVisibilityConverter + + override lateinit var annotationGenerator: AnnotationGenerator + override lateinit var callGenerator: CallAndReferenceGenerator + override lateinit var fakeOverrideGenerator: FakeOverrideGenerator } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt index 0af484968fe..00f385371b7 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt @@ -276,11 +276,13 @@ class Fir2IrConverter( val declarationStorage = Fir2IrDeclarationStorage(components, fir2irVisitor, moduleDescriptor) val typeConverter = Fir2IrTypeConverter(components) val builtIns = Fir2IrBuiltIns(components, specialSymbolProvider) + val annotationGenerator = AnnotationGenerator(components) components.declarationStorage = declarationStorage components.classifierStorage = classifierStorage components.typeConverter = typeConverter components.visibilityConverter = visibilityConverter components.builtIns = builtIns + components.annotationGenerator = annotationGenerator val irFiles = mutableListOf() for (firFile in firFiles) { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index d7597de16ac..e63d4641745 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.KtNodeTypes import org.jetbrains.kotlin.builtins.StandardNames.BUILT_INS_PACKAGE_FQ_NAMES import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.fir.* -import org.jetbrains.kotlin.fir.backend.generators.AnnotationGenerator import org.jetbrains.kotlin.fir.backend.generators.DelegatedMemberGenerator import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.buildProperty @@ -59,8 +58,6 @@ class Fir2IrDeclarationStorage( private val moduleDescriptor: FirModuleDescriptor ) : Fir2IrComponents by components { - private val annotationGenerator = AnnotationGenerator(this) - private val firSymbolProvider = session.firSymbolProvider private val firProvider = session.firProvider diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt index 9b1b4064bb8..aaadc1ca71e 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.fir.backend -import org.jetbrains.kotlin.fir.backend.generators.AnnotationGenerator import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.resolve.fullyExpandedType import org.jetbrains.kotlin.fir.resolve.toSymbol @@ -25,7 +24,6 @@ import org.jetbrains.kotlin.types.Variance class Fir2IrTypeConverter( private val components: Fir2IrComponents ) : Fir2IrComponents by components { - private val annotationGenerator = AnnotationGenerator(this) internal val classIdToSymbolMap = mapOf( StandardClassIds.Nothing to irBuiltIns.nothingClass, diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt index 7168c9f3653..27fb76fee5e 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.* -import org.jetbrains.kotlin.fir.backend.generators.AnnotationGenerator import org.jetbrains.kotlin.fir.backend.generators.ClassMemberGenerator import org.jetbrains.kotlin.fir.backend.generators.OperatorExpressionGenerator import org.jetbrains.kotlin.fir.declarations.* @@ -51,8 +50,6 @@ class Fir2IrVisitor( private val conversionScope: Fir2IrConversionScope ) : Fir2IrComponents by components, FirDefaultVisitor(), IrGeneratorContextInterface { - private val annotationGenerator = AnnotationGenerator(this) - internal val implicitCastInserter = Fir2IrImplicitCastInserter(components, this) private val memberGenerator = ClassMemberGenerator(components, this, conversionScope) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AnnotationGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AnnotationGenerator.kt index 372c9fd4b39..206b0c3680a 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AnnotationGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AnnotationGenerator.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.ir.util.isSetter * whose targets may vary. After all the necessary pieces of IR elements, e.g., backing field, are ready, this generator splits those * annotations to the specified targets. */ -internal class AnnotationGenerator(private val components: Fir2IrComponents) : Fir2IrComponents by components { +class AnnotationGenerator(private val components: Fir2IrComponents) : Fir2IrComponents by components { fun List.toIrAnnotations(): List = mapNotNull { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt index d589327bcbc..2284aa8c562 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt @@ -35,8 +35,6 @@ internal class ClassMemberGenerator( private val conversionScope: Fir2IrConversionScope ) : Fir2IrComponents by components { - private val annotationGenerator = AnnotationGenerator(visitor) - private fun FirTypeRef.toIrType(): IrType = with(typeConverter) { toIrType() } private fun ConeKotlinType.toIrType(): IrType = with(typeConverter) { toIrType() } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt index 9fa86e6c578..32f8027bb27 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt @@ -36,8 +36,6 @@ internal class DelegatedMemberGenerator( private val components: Fir2IrComponents ) : Fir2IrComponents by components { - private val annotationGenerator = AnnotationGenerator(this) - // Generate delegated members for [subClass]. The synthetic field [irField] has the super interface type. fun generate(irField: IrField, firField: FirField, firSubClass: FirClass<*>, subClass: IrClass) { val subClassLookupTag = firSubClass.symbol.toLookupTag()