diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/DebugSymbolRenderer.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/DebugSymbolRenderer.kt index 502eb12d474..f51dd39bb8f 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/DebugSymbolRenderer.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/DebugSymbolRenderer.kt @@ -58,7 +58,7 @@ object DebugSymbolRenderer { } "${value::class.simpleName!!}($symbolTag)" } - is KtSimpleConstantValue<*> -> renderValue(value.constant) + is KtSimpleConstantValue<*> -> renderValue(value.value) is KtNamedConstantValue -> "${renderValue(value.name)} = ${renderValue(value.expression)}" is KtAnnotationCall -> "${renderValue(value.classId)}${value.arguments.joinToString(prefix = "(", postfix = ")") { renderValue(it) }}" diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtConstantValue.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtConstantValue.kt index 6becde6440d..c034ad68ac5 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtConstantValue.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtConstantValue.kt @@ -5,7 +5,9 @@ package org.jetbrains.kotlin.idea.frontend.api.symbols.markers +import org.jetbrains.kotlin.types.ConstantValueKind + sealed class KtConstantValue object KtUnsupportedConstantValue : KtConstantValue() -data class KtSimpleConstantValue(val constant: T?) : KtConstantValue() \ No newline at end of file +data class KtSimpleConstantValue(val constantValueKind: ConstantValueKind, val value: T) : KtConstantValue() \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/annotations/annotationsUtils.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/annotations/annotationsUtils.kt index 6731923c6c5..611abbdaaaf 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/annotations/annotationsUtils.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/annotations/annotationsUtils.kt @@ -17,10 +17,8 @@ import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirSymbol import org.jetbrains.kotlin.idea.frontend.api.fir.utils.mapAnnotationParameters import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFileSymbol -import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotatedSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSimpleConstantValue -import org.jetbrains.kotlin.psi.KtFile internal fun KtAnnotatedSymbol.hasJvmSyntheticAnnotation(annotationUseSiteTarget: AnnotationUseSiteTarget? = null): Boolean = hasAnnotation("kotlin/jvm/JvmSynthetic", annotationUseSiteTarget) @@ -36,7 +34,7 @@ internal fun KtAnnotatedSymbol.getJvmNameFromAnnotation(annotationUseSiteTarget: } return annotation?.let { - (it.arguments.firstOrNull()?.expression as? KtSimpleConstantValue<*>)?.constant as? String + (it.arguments.firstOrNull()?.expression as? KtSimpleConstantValue<*>)?.value as? String } } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/firLightUtils.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/firLightUtils.kt index 16b49999fcc..620e4f61fc4 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/firLightUtils.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/firLightUtils.kt @@ -322,7 +322,7 @@ private fun escapeString(str: String): String = buildString { } private fun KtSimpleConstantValue<*>.asStringForPsiLiteral(): String = - when (val value = this.constant) { + when (val value = this.value) { is String -> "\"${escapeString(value)}\"" is Long -> "${value}L" is Float -> "${value}f" diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/firUtils.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/firUtils.kt index 5ea2b4b7ff5..65e35eceb0a 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/firUtils.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/firUtils.kt @@ -48,8 +48,10 @@ internal fun mapAnnotationParameters(annotationCall: FirAnnotationCall, session: return resultSet } +internal fun FirConstExpression.convertConstantExpression(): KtSimpleConstantValue = KtSimpleConstantValue(kind, value) + internal fun FirExpression.convertConstantExpression(): KtConstantValue = when (this) { - is FirConstExpression<*> -> KtSimpleConstantValue(value) + is FirConstExpression<*> -> convertConstantExpression() else -> KtUnsupportedConstantValue } \ No newline at end of file