diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt index cdf686598c1..6b5537f63f0 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt @@ -200,7 +200,7 @@ internal fun KtAnnotationValue.toAnnotationMemberValue(parent: PsiElement): PsiA private fun KtEnumEntryAnnotationValue.asPsiReferenceExpression(parent: PsiElement): SymbolPsiReference? { val fqName = this.callableId?.asSingleFqName()?.asString() ?: return null val psiReference = parent.project.withElementFactorySafe { - createExpressionFromText(fqName, parent) as PsiReferenceExpression + createExpressionFromText(fqName, parent) as? PsiReferenceExpression } ?: return null return SymbolPsiReference(sourcePsi, parent, psiReference) diff --git a/analysis/symbol-light-classes/testData/annotationsEquality/EnumConstantNameInQuotes.java b/analysis/symbol-light-classes/testData/annotationsEquality/EnumConstantNameInQuotes.java new file mode 100644 index 00000000000..1c478ee098a --- /dev/null +++ b/analysis/symbol-light-classes/testData/annotationsEquality/EnumConstantNameInQuotes.java @@ -0,0 +1,4 @@ +@p.Anno(value = ?) +public final class Foo /* p.Foo*/ { + public Foo();// .ctor() +} diff --git a/analysis/symbol-light-classes/testData/annotationsEquality/EnumConstantNameInQuotes.kt b/analysis/symbol-light-classes/testData/annotationsEquality/EnumConstantNameInQuotes.kt new file mode 100644 index 00000000000..4917d33f82e --- /dev/null +++ b/analysis/symbol-light-classes/testData/annotationsEquality/EnumConstantNameInQuotes.kt @@ -0,0 +1,9 @@ +// PSI: org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassForClassOrObject +// EXPECTED: p.Anno +package p + +@Anno(E.`TA-DA`) +class Foo {} + +enum class E {`TA-DA`, `TA-TA` } +annotation class Anno(val value: E) \ No newline at end of file diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesAnnotationEqualityForSourceTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesAnnotationEqualityForSourceTestGenerated.java index cc75aef35a0..b289a3b9395 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesAnnotationEqualityForSourceTestGenerated.java +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesAnnotationEqualityForSourceTestGenerated.java @@ -30,6 +30,12 @@ public class SymbolLightClassesAnnotationEqualityForSourceTestGenerated extends runTest("analysis/symbol-light-classes/testData/annotationsEquality/Deprecated.kt"); } + @Test + @TestMetadata("EnumConstantNameInQuotes.kt") + public void testEnumConstantNameInQuotes() throws Exception { + runTest("analysis/symbol-light-classes/testData/annotationsEquality/EnumConstantNameInQuotes.kt"); + } + @Test @TestMetadata("ExplicitRetension.kt") public void testExplicitRetension() throws Exception {