diff --git a/analysis/low-level-api-fir/testData/classId/localClassInsideAnnotationArgument.kt b/analysis/low-level-api-fir/testData/classId/localClassInsideAnnotationArgument.kt index 562526c4519..587a12ed491 100644 --- a/analysis/low-level-api-fir/testData/classId/localClassInsideAnnotationArgument.kt +++ b/analysis/low-level-api-fir/testData/classId/localClassInsideAnnotationArgument.kt @@ -1,2 +1,2 @@ -/* ClassId: /Bar */@Retention(if (true) { /* ClassId: /Bar.Foo */class Foo }) +/* ClassId: /Bar */@Retention(if (true) { /* ClassId: null */class Foo }) class Bar diff --git a/analysis/low-level-api-fir/testData/classId/localClassInsideUnclosedAnnotation.kt b/analysis/low-level-api-fir/testData/classId/localClassInsideUnclosedAnnotation.kt index 0ca75843308..e2db12146cb 100644 --- a/analysis/low-level-api-fir/testData/classId/localClassInsideUnclosedAnnotation.kt +++ b/analysis/low-level-api-fir/testData/classId/localClassInsideUnclosedAnnotation.kt @@ -1,3 +1,3 @@ // KT-24323 @Retention(AnnotationRetention.RUNTIME -annotation /* ClassId: /Validation */class Validation() +annotation /* ClassId: null */class Validation() diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/psiUtil/ClassIdCalculator.kt b/compiler/psi/src/org/jetbrains/kotlin/psi/psiUtil/ClassIdCalculator.kt index 16f235e96ee..97e1c8e076d 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/psiUtil/ClassIdCalculator.kt +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/psiUtil/ClassIdCalculator.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.psi.psiUtil +import com.intellij.psi.PsiErrorElement import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.SpecialNames @@ -17,7 +18,12 @@ internal object ClassIdCalculator { for (element in declaration.parentsWithSelf) { when (element) { - is KtEnumEntry -> { + is KtEnumEntry, + is KtCallElement, + is KtObjectLiteralExpression, + is KtCodeFragment, + is PsiErrorElement, + -> { return null } is KtClassLikeDeclaration -> { @@ -30,7 +36,7 @@ internal object ClassIdCalculator { is KtScript -> { // Skip script parent } - is KtDeclaration, is KtObjectLiteralExpression -> { + is KtDeclaration -> { // Local declarations don't have a 'ClassId' return null }