FIR2IR: add AnnotationGenerator to Fir2IrComponents
This commit is contained in:
committed by
teamcityserver
parent
eff4cec3e0
commit
f9a032dbfa
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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<IrFile>()
|
||||
|
||||
for (firFile in firFiles) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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<IrElement, Any?>(), IrGeneratorContextInterface {
|
||||
|
||||
private val annotationGenerator = AnnotationGenerator(this)
|
||||
|
||||
internal val implicitCastInserter = Fir2IrImplicitCastInserter(components, this)
|
||||
|
||||
private val memberGenerator = ClassMemberGenerator(components, this, conversionScope)
|
||||
|
||||
+1
-1
@@ -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<FirAnnotationCall>.toIrAnnotations(): List<IrConstructorCall> =
|
||||
mapNotNull {
|
||||
|
||||
-2
@@ -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() }
|
||||
|
||||
-2
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user