diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/JvmFir2IrExtensions.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/JvmFir2IrExtensions.kt index bf8de5fc4aa..965c50efef6 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/JvmFir2IrExtensions.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/JvmFir2IrExtensions.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.ir.util.SymbolTable import org.jetbrains.kotlin.ir.util.constructors import org.jetbrains.kotlin.ir.util.createParameterDeclarations import org.jetbrains.kotlin.ir.util.createSpecialAnnotationClass +import org.jetbrains.kotlin.load.java.JvmAnnotationNames import org.jetbrains.kotlin.load.kotlin.FacadeClassSource import org.jetbrains.kotlin.load.kotlin.JvmPackagePartSource import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinarySourceElement @@ -38,6 +39,9 @@ class JvmFir2IrExtensions(configuration: CompilerConfiguration) : Fir2IrExtensio private val kotlinIrInternalPackage = IrExternalPackageFragmentImpl(DescriptorlessExternalPackageFragmentSymbol(), IrBuiltIns.KOTLIN_INTERNAL_IR_FQN) + private val kotlinJvmInternalPackage = + IrExternalPackageFragmentImpl(DescriptorlessExternalPackageFragmentSymbol(), JvmAnnotationNames.KOTLIN_JVM_INTERNAL) + private val specialAnnotationConstructors = mutableListOf() private val rawTypeAnnotationClass = @@ -46,6 +50,12 @@ class JvmFir2IrExtensions(configuration: CompilerConfiguration) : Fir2IrExtensio override val rawTypeAnnotationConstructor: IrConstructor = rawTypeAnnotationClass.constructors.single() + init { + createSpecialAnnotationClass(JvmAnnotationNames.ENHANCED_NULLABILITY_ANNOTATION, kotlinJvmInternalPackage) + createSpecialAnnotationClass(JvmSymbols.FLEXIBLE_NULLABILITY_ANNOTATION_FQ_NAME, kotlinIrInternalPackage) + createSpecialAnnotationClass(JvmSymbols.FLEXIBLE_MUTABILITY_ANNOTATION_FQ_NAME, kotlinIrInternalPackage) + } + private fun createSpecialAnnotationClass(fqn: FqName, parent: IrPackageFragment) = IrFactoryImpl.createSpecialAnnotationClass(fqn, parent).apply { specialAnnotationConstructors.add(constructors.single())