diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/evaluate/KtFirConstantValueConverter.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/evaluate/KtFirConstantValueConverter.kt index a95c7a5b351..84f00c80dd3 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/evaluate/KtFirConstantValueConverter.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/evaluate/KtFirConstantValueConverter.kt @@ -61,12 +61,12 @@ internal object KtFirConstantValueConverter { } } - private fun Collection.toArrayConstantValueIfNecessary(kotlinOrigin: KtElement?): KtConstantValue? { - val valueArgument = if (kotlinOrigin is ValueArgument) kotlinOrigin else - (kotlinOrigin?.parents?.firstOrNull { it is ValueArgument } as? ValueArgument) + private fun Collection.toArrayConstantValueIfNecessary(sourcePsi: KtElement?): KtConstantValue? { + val valueArgument = if (sourcePsi is ValueArgument) sourcePsi else + (sourcePsi?.parents?.firstOrNull { it is ValueArgument } as? ValueArgument) val wrap = valueArgument?.arrayConversionExpected() ?: false return if (wrap) { - KtArrayConstantValue(this, kotlinOrigin) + KtArrayConstantValue(this, sourcePsi) } else { singleOrNull() } diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/markers/KtConstantValue.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/markers/KtConstantValue.kt index ba41acee343..262f6adfd59 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/markers/KtConstantValue.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/markers/KtConstantValue.kt @@ -27,30 +27,30 @@ import org.jetbrains.kotlin.types.ConstantValueKind * [KtArrayConstantValue] abstracts an array of [KtConstantValue]s. */ public sealed class KtConstantValue( - public open val kotlinOrigin: KtElement? = null + public open val sourcePsi: KtElement? = null ) public object KtUnsupportedConstantValue : KtConstantValue() public class KtArrayConstantValue( public val values: Collection, - override val kotlinOrigin: KtElement?, + override val sourcePsi: KtElement?, ) : KtConstantValue() public class KtAnnotationConstantValue( public val classId: ClassId?, public val arguments: List, - override val kotlinOrigin: KtCallElement?, + override val sourcePsi: KtCallElement?, ) : KtConstantValue() public class KtEnumEntryConstantValue( public val callableId: CallableId?, - override val kotlinOrigin: KtElement?, + override val sourcePsi: KtElement?, ) : KtConstantValue() public class KtLiteralConstantValue( public val constantValueKind: ConstantValueKind, public val value: T, - override val kotlinOrigin: KtElement?, + override val sourcePsi: KtElement?, ) : KtConstantValue() { public fun toConst(): Any? { return (value as? Long)?.let { diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/firLightUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/firLightUtils.kt index b0ccf2b354b..84c79fad35c 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/firLightUtils.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/firLightUtils.kt @@ -182,16 +182,16 @@ private fun escapeString(str: String): String = buildString { internal fun KtConstantValue.toAnnotationMemberValue(parent: PsiElement): PsiAnnotationMemberValue? { return when (this) { is KtArrayConstantValue -> - FirPsiArrayInitializerMemberValue(kotlinOrigin, parent) { arrayLiteralParent -> + FirPsiArrayInitializerMemberValue(sourcePsi, parent) { arrayLiteralParent -> values.mapNotNull { element -> element.toAnnotationMemberValue(arrayLiteralParent) } } is KtAnnotationConstantValue -> - FirLightSimpleAnnotation(classId?.relativeClassName?.asString(), parent, arguments, kotlinOrigin) + FirLightSimpleAnnotation(classId?.relativeClassName?.asString(), parent, arguments, sourcePsi) else -> createPsiLiteral(parent)?.let { when (it) { - is PsiLiteral -> FirPsiLiteral(kotlinOrigin, parent, it) - else -> FirPsiExpression(kotlinOrigin, parent, it) + is PsiLiteral -> FirPsiLiteral(sourcePsi, parent, it) + else -> FirPsiExpression(sourcePsi, parent, it) } } }