LightAnnotations: wrapping all PsiLiterals (not only Strings)

This commit is contained in:
Nicolay Mitropolsky
2018-02-16 21:41:34 +03:00
committed by Nicolay Mitropolsky
parent 99fca79bdc
commit bc543b4cdf
2 changed files with 5 additions and 4 deletions
@@ -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)
@@ -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<PsiLiteral>())
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<PsiLiteral>()
assertTextAndRange("1", value)
}