Fir2Ir, JVM IR: minor, deduplicate constants for ClassId of special annotations
This commit is contained in:
committed by
Space Team
parent
3fcf5c47c2
commit
e98902ce74
+10
-19
@@ -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")))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user