From f39c72360d7683052af046e7d74109a41dfbc36e Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Mon, 18 Dec 2023 16:30:32 +0100 Subject: [PATCH] [SLC] inherit SymbolPsiLiteral from PsiLiteralExpression We should use PsiLiteralExpression instead of PsiLiteral as it is used in the Java world. Effectively, `psiLiteral` property already has this type (as `createPsiExpression` produce `PsiExpression`), but we missed this part before and used just PsiLiteral for our own class ^KT-63949 Fixed --- .../classes/symbol/annotations/SymbolAnnotationValues.kt | 5 +++-- .../kotlin/light/classes/symbol/symbolLightUtils.kt | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolAnnotationValues.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolAnnotationValues.kt index 2509f3bef93..eb992dda709 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolAnnotationValues.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolAnnotationValues.kt @@ -109,8 +109,9 @@ internal class SymbolPsiReference( internal class SymbolPsiLiteral( override val kotlinOrigin: KtElement?, lightParent: PsiElement, - private val psiLiteral: PsiLiteral, -) : SymbolPsiAnnotationMemberValue(kotlinOrigin, lightParent), PsiLiteral { + private val psiLiteral: PsiLiteralExpression, +) : SymbolPsiAnnotationMemberValue(kotlinOrigin, lightParent), PsiLiteralExpression { override fun getValue(): Any? = psiLiteral.value override fun getText(): String = psiLiteral.text + override fun getType(): PsiType? = psiLiteral.type } 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 6c38c431eca..07f208b01d4 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 @@ -210,7 +210,7 @@ internal fun KtAnnotationValue.toAnnotationMemberValue(parent: PsiElement): PsiA is KtConstantAnnotationValue -> { constantValue.createPsiExpression(parent)?.let { when (it) { - is PsiLiteral -> SymbolPsiLiteral(sourcePsi, parent, it) + is PsiLiteralExpression -> SymbolPsiLiteral(sourcePsi, parent, it) else -> SymbolPsiExpression(sourcePsi, parent, it) } }