diff --git a/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsNativeAnnotationCheckers.kt b/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsNativeAnnotationCheckers.kt index 61ecfe50f73..deeb4a402fb 100644 --- a/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsNativeAnnotationCheckers.kt +++ b/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsNativeAnnotationCheckers.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.hasAnnotation import org.jetbrains.kotlin.fir.declarations.utils.isExtension import org.jetbrains.kotlin.fir.declarations.utils.visibility -import org.jetbrains.kotlin.fir.expressions.classId +import org.jetbrains.kotlin.fir.expressions.unexpandedClassId import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.JsStandardClassIds @@ -27,7 +27,7 @@ internal abstract class FirJsAbstractNativeAnnotationChecker(private val require protected fun FirFunction.hasRequiredAnnotation(context: CheckerContext) = hasAnnotation(requiredAnnotation, context.session) override fun check(declaration: FirSimpleFunction, context: CheckerContext, reporter: DiagnosticReporter) { - val annotation = declaration.annotations.find { it.classId == requiredAnnotation } ?: return + val annotation = declaration.annotations.find { it.unexpandedClassId == requiredAnnotation } ?: return val isMember = !context.isTopLevel && declaration.visibility != Visibilities.Local val isExtension = declaration.isExtension diff --git a/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirRepeatableAnnotationChecker.kt b/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirRepeatableAnnotationChecker.kt index 954db433120..a7077976a55 100644 --- a/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirRepeatableAnnotationChecker.kt +++ b/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirRepeatableAnnotationChecker.kt @@ -47,7 +47,7 @@ object FirRepeatableAnnotationChecker : FirBasicDeclarationChecker() { val session = context.session for (annotation in annotations) { - val unexpandedClassId = annotation.classId ?: continue + val unexpandedClassId = annotation.unexpandedClassId ?: continue val annotationClassId = annotation.toAnnotationClassId(session) ?: continue if (annotationClassId.isLocal) continue val annotationClass = session.symbolProvider.getClassLikeSymbolByClassId(annotationClassId) ?: continue @@ -87,7 +87,7 @@ object FirRepeatableAnnotationChecker : FirBasicDeclarationChecker() { } if (declaration is FirRegularClass) { - val javaRepeatable = annotations.find { it.classId == StandardClassIds.Annotations.Java.Repeatable } + val javaRepeatable = annotations.find { it.unexpandedClassId == StandardClassIds.Annotations.Java.Repeatable } if (javaRepeatable != null) { checkJavaRepeatableAnnotationDeclaration(javaRepeatable, declaration, context, reporter) } else { diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt index 15485022a67..07d492d3389 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt @@ -27,7 +27,7 @@ import org.jetbrains.kotlin.fir.declarations.utils.modality import org.jetbrains.kotlin.fir.declarations.utils.visibility import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirConstExpression -import org.jetbrains.kotlin.fir.expressions.classId +import org.jetbrains.kotlin.fir.expressions.unexpandedClassId import org.jetbrains.kotlin.fir.java.FirJavaTypeConversionMode import org.jetbrains.kotlin.fir.java.JavaTypeParameterStack import org.jetbrains.kotlin.fir.java.declarations.* @@ -466,7 +466,7 @@ class FirSignatureEnhancement( private fun getPurelyImplementedSupertype(session: FirSession): ConeKotlinType? { val purelyImplementedClassIdFromAnnotation = owner.annotations - .firstOrNull { it.classId?.asSingleFqName() == JvmAnnotationNames.PURELY_IMPLEMENTS_ANNOTATION } + .firstOrNull { it.unexpandedClassId?.asSingleFqName() == JvmAnnotationNames.PURELY_IMPLEMENTS_ANNOTATION } ?.let { (it.argumentMapping.mapping.values.firstOrNull() as? FirConstExpression<*>) } ?.let { it.value as? String } ?.takeIf { it.isNotBlank() && isValidJavaFqName(it) } diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/declarations/deprecationUtils.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/declarations/deprecationUtils.kt index 543fa673c9e..c3933801062 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/declarations/deprecationUtils.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/declarations/deprecationUtils.kt @@ -190,12 +190,12 @@ private fun List.extractDeprecationAnnotationInfoPerUseSite( return buildDeprecationAnnotationInfoPerUseSiteStorage { for ((deprecated, fromJavaAnnotation) in annotations) { - if (deprecated.classId == StandardClassIds.Annotations.SinceKotlin) { + if (deprecated.unexpandedClassId == StandardClassIds.Annotations.SinceKotlin) { val sinceKotlinSingleArgument = deprecated.findArgumentByName(ParameterNames.sinceKotlinVersion) val apiVersion = ((sinceKotlinSingleArgument as? FirConstExpression<*>)?.value as? String) ?.let(ApiVersion.Companion::parse) ?: continue val wasExperimental = this@extractDeprecationAnnotationInfoPerUseSite.any { - it.classId == StandardClassIds.Annotations.WasExperimental + it.unexpandedClassId == StandardClassIds.Annotations.WasExperimental } if (!wasExperimental) { add(deprecated.useSiteTarget, SinceKotlinInfo(apiVersion)) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirExpressionUtil.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirExpressionUtil.kt index 2be0e5751dc..158951b8c1f 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirExpressionUtil.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirExpressionUtil.kt @@ -32,7 +32,7 @@ import org.jetbrains.kotlin.types.ConstantValueKind inline val FirAnnotation.coneClassLikeType: ConeClassLikeType? get() = ((annotationTypeRef as? FirResolvedTypeRef)?.type as? ConeClassLikeType) -inline val FirAnnotation.classId: ClassId? +inline val FirAnnotation.unexpandedClassId: ClassId? get() = coneClassLikeType?.lookupTag?.classId fun buildConstOrErrorExpression(source: KtSourceElement?, kind: ConstantValueKind, value: T?, diagnostic: ConeDiagnostic): FirExpression =