From bc543b4cdf60967443ce22ba32882810f46931b3 Mon Sep 17 00:00:00 2001 From: Nicolay Mitropolsky Date: Fri, 16 Feb 2018 21:41:34 +0300 Subject: [PATCH] LightAnnotations: wrapping all PsiLiterals (not only Strings) --- .../org/jetbrains/kotlin/asJava/elements/lightAnnotations.kt | 4 ++-- .../org/jetbrains/kotlin/asJava/KtLightAnnotationTest.kt | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/lightAnnotations.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/lightAnnotations.kt index 35879ee7cac..bf3ed3f7141 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/lightAnnotations.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/lightAnnotations.kt @@ -176,7 +176,7 @@ class KtLightAnnotationForSourceEntry( override fun getType(): PsiType? = delegate.type } - inner class LightStringLiteral( + inner class LightPsiLiteral( delegate: PsiLiteralExpression, parent: PsiElement, valueOrigin: AnnotationValueOrigin @@ -230,7 +230,7 @@ class KtLightAnnotationForSourceEntry( private fun wrapAnnotationValue(value: PsiAnnotationMemberValue, parent: PsiElement, ktOrigin: AnnotationValueOrigin): PsiAnnotationMemberValue = when { - value is PsiLiteralExpression && value.value is String -> LightStringLiteral(value, parent, ktOrigin) + value is PsiLiteralExpression -> LightPsiLiteral(value, parent, ktOrigin) value is PsiClassObjectAccessExpression -> LightClassLiteral(value, parent, ktOrigin) value is PsiExpression -> LightExpressionValue(value, parent, ktOrigin) value is PsiArrayInitializerMemberValue -> LightArrayInitializerValue(value, parent, ktOrigin) diff --git a/idea/tests/org/jetbrains/kotlin/asJava/KtLightAnnotationTest.kt b/idea/tests/org/jetbrains/kotlin/asJava/KtLightAnnotationTest.kt index 3b73e3b77e9..0df3fdf84e6 100644 --- a/idea/tests/org/jetbrains/kotlin/asJava/KtLightAnnotationTest.kt +++ b/idea/tests/org/jetbrains/kotlin/asJava/KtLightAnnotationTest.kt @@ -23,6 +23,7 @@ import com.intellij.testFramework.LightProjectDescriptor import junit.framework.TestCase import org.jetbrains.kotlin.asJava.elements.KtLightAnnotationForSourceEntry import org.jetbrains.kotlin.config.LanguageFeature +import org.jetbrains.kotlin.idea.completion.test.assertInstanceOf import org.jetbrains.kotlin.idea.facet.configureFacet import org.jetbrains.kotlin.idea.facet.getOrCreateFacet import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase @@ -223,7 +224,7 @@ class KtLightAnnotationTest : KotlinLightCodeInsightFixtureTestCase() { assertTextAndRange("[\"abc\", \"def\"]", annotationAttributeVal) annotationAttributeVal as PsiArrayInitializerMemberValue - assertTextAndRange("\"abc\"", annotationAttributeVal.initializers[0]) + assertTextAndRange("\"abc\"", annotationAttributeVal.initializers[0].assertInstanceOf()) assertTextAndRange("\"def\"", annotationAttributeVal.initializers[1]) } @@ -246,7 +247,7 @@ class KtLightAnnotationTest : KotlinLightCodeInsightFixtureTestCase() { assertTextAndRange("Anno2(1)", innerAnnotationAttributeVal) assertIsKtLightAnnotation("Anno2(1)", innerAnnotationAttributeVal) innerAnnotationAttributeVal as PsiAnnotation - val value = innerAnnotationAttributeVal.findAttributeValue("v")!! + val value = innerAnnotationAttributeVal.findAttributeValue("v").assertInstanceOf() assertTextAndRange("1", value) }