From e98902ce74c2015f928bb753060844b97886a933 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 3 Jan 2024 18:05:01 +0100 Subject: [PATCH] Fir2Ir, JVM IR: minor, deduplicate constants for ClassId of special annotations --- ...ir2IrJvmSpecialAnnotationSymbolProvider.kt | 29 +++++++------------ .../kotlin/backend/jvm/JvmSymbols.kt | 14 ++++----- 2 files changed, 17 insertions(+), 26 deletions(-) diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/Fir2IrJvmSpecialAnnotationSymbolProvider.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/Fir2IrJvmSpecialAnnotationSymbolProvider.kt index d9b415d80b1..f0a3c021dd4 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/Fir2IrJvmSpecialAnnotationSymbolProvider.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/Fir2IrJvmSpecialAnnotationSymbolProvider.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.backend.jvm import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.backend.Fir2IrSpecialSymbolProvider -import org.jetbrains.kotlin.ir.IrBuiltIns import org.jetbrains.kotlin.ir.builders.declarations.addConstructor import org.jetbrains.kotlin.ir.builders.declarations.buildClass import org.jetbrains.kotlin.ir.declarations.IrClass @@ -16,32 +15,34 @@ import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.impl.DescriptorlessExternalPackageFragmentSymbol import org.jetbrains.kotlin.ir.util.createImplicitParameterDeclarationWithWrappedDescriptor -import org.jetbrains.kotlin.load.java.JvmAnnotationNames import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.name.StandardClassIds.Annotations.EnhancedNullability +import org.jetbrains.kotlin.name.StandardClassIds.Annotations.FlexibleMutability +import org.jetbrains.kotlin.name.StandardClassIds.Annotations.FlexibleNullability +import org.jetbrains.kotlin.name.StandardClassIds.Annotations.RawTypeAnnotation class Fir2IrJvmSpecialAnnotationSymbolProvider : Fir2IrSpecialSymbolProvider() { private val kotlinJvmInternalPackage by lazy { IrExternalPackageFragmentImpl( DescriptorlessExternalPackageFragmentSymbol(), - ENHANCED_NULLABILITY_ID.packageFqName + EnhancedNullability.packageFqName ) } private val kotlinInternalIrPackage by lazy { IrExternalPackageFragmentImpl( DescriptorlessExternalPackageFragmentSymbol(), - FLEXIBLE_NULLABILITY_ID.packageFqName + FlexibleNullability.packageFqName ) } override fun getClassSymbolById(id: ClassId): IrClassSymbol? = when (id) { - ENHANCED_NULLABILITY_ID -> id.toIrClass(kotlinJvmInternalPackage).symbol - FLEXIBLE_NULLABILITY_ID -> id.toIrClass(kotlinInternalIrPackage).symbol - FLEXIBLE_MUTABILITY_ID -> id.toIrClass(kotlinInternalIrPackage).symbol - RAW_TYPE_ANNOTATION_ID -> id.toIrClass(kotlinInternalIrPackage).symbol + EnhancedNullability -> id.toIrClass(kotlinJvmInternalPackage).symbol + FlexibleNullability -> id.toIrClass(kotlinInternalIrPackage).symbol + FlexibleMutability -> id.toIrClass(kotlinInternalIrPackage).symbol + RawTypeAnnotation -> id.toIrClass(kotlinInternalIrPackage).symbol else -> null } @@ -56,14 +57,4 @@ class Fir2IrJvmSpecialAnnotationSymbolProvider : Fir2IrSpecialSymbolProvider() { isPrimary = true } } - - companion object { - private val ENHANCED_NULLABILITY_ID = ClassId.topLevel(JvmAnnotationNames.ENHANCED_NULLABILITY_ANNOTATION) - private val FLEXIBLE_NULLABILITY_ID = - ClassId.topLevel(IrBuiltIns.KOTLIN_INTERNAL_IR_FQN.child(Name.identifier("FlexibleNullability"))) - private val FLEXIBLE_MUTABILITY_ID = - ClassId.topLevel(IrBuiltIns.KOTLIN_INTERNAL_IR_FQN.child(Name.identifier("FlexibleMutability"))) - private val RAW_TYPE_ANNOTATION_ID = - ClassId.topLevel(IrBuiltIns.KOTLIN_INTERNAL_IR_FQN.child(Name.identifier("RawType"))) - } } diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmSymbols.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmSymbols.kt index ce00e4f2967..b3a5d3feb99 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmSymbols.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmSymbols.kt @@ -20,7 +20,6 @@ import org.jetbrains.kotlin.descriptors.InlineClassRepresentation import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.annotations.KotlinRetention import org.jetbrains.kotlin.descriptors.annotations.KotlinTarget -import org.jetbrains.kotlin.ir.IrBuiltIns import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.builders.declarations.* import org.jetbrains.kotlin.ir.declarations.* @@ -35,6 +34,7 @@ import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.load.java.JvmAnnotationNames import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.resolve.JVM_INLINE_ANNOTATION_FQ_NAME import org.jetbrains.kotlin.resolve.jvm.JvmClassName import org.jetbrains.kotlin.storage.LockBasedStorageManager @@ -1148,14 +1148,14 @@ class JvmSymbols( companion object { const val INTRINSICS_CLASS_NAME = "kotlin/jvm/internal/Intrinsics" - val FLEXIBLE_NULLABILITY_ANNOTATION_FQ_NAME = - IrBuiltIns.KOTLIN_INTERNAL_IR_FQN.child(Name.identifier("FlexibleNullability")) + val FLEXIBLE_NULLABILITY_ANNOTATION_FQ_NAME: FqName = + StandardClassIds.Annotations.FlexibleNullability.asSingleFqName() - val FLEXIBLE_MUTABILITY_ANNOTATION_FQ_NAME = - IrBuiltIns.KOTLIN_INTERNAL_IR_FQN.child(Name.identifier("FlexibleMutability")) + val FLEXIBLE_MUTABILITY_ANNOTATION_FQ_NAME: FqName = + StandardClassIds.Annotations.FlexibleMutability.asSingleFqName() - val RAW_TYPE_ANNOTATION_FQ_NAME = - IrBuiltIns.KOTLIN_INTERNAL_IR_FQN.child(Name.identifier("RawType")) + val RAW_TYPE_ANNOTATION_FQ_NAME: FqName = + StandardClassIds.Annotations.RawTypeAnnotation.asSingleFqName() } }