FIR IDE: rename some of constant values for consistency
This commit is contained in:
committed by
Ilya Kirillov
parent
ce445700b8
commit
0f16a2cb92
+7
-4
@@ -39,11 +39,11 @@ internal object KtFirConstantValueConverter {
|
||||
|
||||
fun <T> toConstantValue(
|
||||
firConstExpression: FirConstExpression<T>,
|
||||
): KtSimpleConstantValue<T> =
|
||||
): KtLiteralConstantValue<T> =
|
||||
firConstExpression.convertConstantExpression()
|
||||
|
||||
private fun <T> FirConstExpression<T>.convertConstantExpression(): KtSimpleConstantValue<T> =
|
||||
KtSimpleConstantValue(kind, value, realPsi as? KtElement)
|
||||
private fun <T> FirConstExpression<T>.convertConstantExpression(): KtLiteralConstantValue<T> =
|
||||
KtLiteralConstantValue(kind, value, realPsi as? KtElement)
|
||||
|
||||
private fun Collection<FirExpression>.convertConstantExpression(
|
||||
session: FirSession,
|
||||
@@ -112,7 +112,10 @@ internal object KtFirConstantValueConverter {
|
||||
val reference = calleeReference as? FirResolvedNamedReference ?: return null
|
||||
when (val resolvedSymbol = reference.resolvedSymbol) {
|
||||
is FirEnumEntrySymbol -> {
|
||||
KtEnumEntryValue(resolvedSymbol.fir.buildSymbol(firSymbolBuilder) as KtEnumEntrySymbol, realPsi as? KtElement)
|
||||
KtEnumEntryConstantValue(
|
||||
resolvedSymbol.fir.buildSymbol(firSymbolBuilder) as KtEnumEntrySymbol,
|
||||
realPsi as? KtElement
|
||||
)
|
||||
}
|
||||
else -> null
|
||||
}
|
||||
|
||||
+9
-4
@@ -31,7 +31,7 @@ abstract class AbstractCompileTimeConstantEvaluatorTest : AbstractHLApiSingleFil
|
||||
val actual = buildString {
|
||||
appendLine("expression: ${expression.text}")
|
||||
appendLine("constant_value: ${analyse(ktFile) { constantValue?.stringRepresentation() }}")
|
||||
appendLine("constant: ${(constantValue as? KtSimpleConstantValue<*>)?.toConst()}")
|
||||
appendLine("constant: ${(constantValue as? KtLiteralConstantValue<*>)?.toConst()}")
|
||||
}
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
}
|
||||
@@ -52,12 +52,17 @@ abstract class AbstractCompileTimeConstantEvaluatorTest : AbstractHLApiSingleFil
|
||||
}
|
||||
append(")")
|
||||
}
|
||||
is KtEnumEntryValue -> buildString {
|
||||
append("KtEnumEntryValue(")
|
||||
is KtEnumEntryConstantValue -> buildString {
|
||||
append("KtEnumEntryConstantValue(")
|
||||
append(enumEntrySymbol.callableIdIfNonLocal ?: enumEntrySymbol.name)
|
||||
append(")")
|
||||
}
|
||||
is KtSimpleConstantValue<*> -> toString()
|
||||
is KtLiteralConstantValue<*> -> buildString {
|
||||
append("KtLiteralConstantValue(")
|
||||
append("constantValueKind=${constantValueKind}")
|
||||
append(", ")
|
||||
append("value=${value})")
|
||||
}
|
||||
is KtUnsupportedConstantValue -> "KtUnsupportedConstantValue"
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -95,8 +95,8 @@ public object DebugSymbolRenderer {
|
||||
}
|
||||
"${value::class.simpleName!!}($symbolTag)"
|
||||
}
|
||||
is KtSimpleConstantValue<*> -> renderValue(value.value)
|
||||
is KtEnumEntryValue -> "KtEnumEntryValue(${renderValue(value.enumEntrySymbol)})"
|
||||
is KtLiteralConstantValue<*> -> renderValue(value.value)
|
||||
is KtEnumEntryConstantValue -> "KtEnumEntryConstantValue(${renderValue(value.enumEntrySymbol)})"
|
||||
is KtNamedConstantValue -> "${renderValue(value.name)} = ${renderValue(value.expression)}"
|
||||
is KtAnnotationCall -> buildString {
|
||||
append(renderValue(value.classId))
|
||||
|
||||
+4
-8
@@ -20,8 +20,8 @@ import org.jetbrains.kotlin.types.ConstantValueKind
|
||||
* * other annotation types, and
|
||||
* * array of aforementioned types
|
||||
*
|
||||
* [KtSimpleConstantValue] covers first two kinds;
|
||||
* [KtEnumEntryValue] corresponds to enum types;
|
||||
* [KtLiteralConstantValue] covers first two kinds;
|
||||
* [KtEnumEntryConstantValue] corresponds to enum types;
|
||||
* [KtAnnotationConstantValue] represents annotation types (with annotation fq name and arguments); and
|
||||
* [KtArrayConstantValue] abstracts an array of [KtConstantValue]s.
|
||||
*/
|
||||
@@ -41,12 +41,12 @@ public class KtAnnotationConstantValue(
|
||||
override val kotlinOrigin: KtCallElement?,
|
||||
) : KtConstantValue()
|
||||
|
||||
public class KtEnumEntryValue(
|
||||
public class KtEnumEntryConstantValue(
|
||||
public val enumEntrySymbol: KtEnumEntrySymbol,
|
||||
override val kotlinOrigin: KtElement?,
|
||||
) : KtConstantValue()
|
||||
|
||||
public class KtSimpleConstantValue<T>(
|
||||
public class KtLiteralConstantValue<T>(
|
||||
public val constantValueKind: ConstantValueKind<T>,
|
||||
public val value: T,
|
||||
override val kotlinOrigin: KtElement?,
|
||||
@@ -68,8 +68,4 @@ public class KtSimpleConstantValue<T>(
|
||||
}
|
||||
} ?: value
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return "KtSimpleConstantValue(constantValueKind=${constantValueKind}, value=${value})"
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
expression: Annotation(strings = arrayOf("v1", "v2"))
|
||||
constant_value: KtAnnotationConstantValue(Annotation, (strings = KtArrayConstantValue [
|
||||
KtSimpleConstantValue(constantValueKind=String, value=v1)
|
||||
KtSimpleConstantValue(constantValueKind=String, value=v2)
|
||||
KtLiteralConstantValue(constantValueKind=String, value=v1)
|
||||
KtLiteralConstantValue(constantValueKind=String, value=v2)
|
||||
]))
|
||||
constant: null
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
expression: Annotation(["v1", "v2"])
|
||||
constant_value: KtAnnotationConstantValue(Annotation, (strings = KtArrayConstantValue [
|
||||
KtSimpleConstantValue(constantValueKind=String, value=v1)
|
||||
KtSimpleConstantValue(constantValueKind=String, value=v2)
|
||||
KtLiteralConstantValue(constantValueKind=String, value=v1)
|
||||
KtLiteralConstantValue(constantValueKind=String, value=v2)
|
||||
]))
|
||||
constant: null
|
||||
|
||||
+4
-4
@@ -1,12 +1,12 @@
|
||||
expression: arrayOf(Annotation("v1", "v2"), Annotation(strings = arrayOf("v3", "v4")))
|
||||
constant_value: KtArrayConstantValue [
|
||||
KtAnnotationConstantValue(Annotation, (strings = KtArrayConstantValue [
|
||||
KtSimpleConstantValue(constantValueKind=String, value=v1)
|
||||
KtSimpleConstantValue(constantValueKind=String, value=v2)
|
||||
KtLiteralConstantValue(constantValueKind=String, value=v1)
|
||||
KtLiteralConstantValue(constantValueKind=String, value=v2)
|
||||
]))
|
||||
KtAnnotationConstantValue(Annotation, (strings = KtArrayConstantValue [
|
||||
KtSimpleConstantValue(constantValueKind=String, value=v3)
|
||||
KtSimpleConstantValue(constantValueKind=String, value=v4)
|
||||
KtLiteralConstantValue(constantValueKind=String, value=v3)
|
||||
KtLiteralConstantValue(constantValueKind=String, value=v4)
|
||||
]))
|
||||
]
|
||||
constant: null
|
||||
|
||||
+4
-4
@@ -1,12 +1,12 @@
|
||||
expression: [Annotation("v1", "v2"), Annotation(["v3", "v4"])]
|
||||
constant_value: KtArrayConstantValue [
|
||||
KtAnnotationConstantValue(Annotation, (strings = KtArrayConstantValue [
|
||||
KtSimpleConstantValue(constantValueKind=String, value=v1)
|
||||
KtSimpleConstantValue(constantValueKind=String, value=v2)
|
||||
KtLiteralConstantValue(constantValueKind=String, value=v1)
|
||||
KtLiteralConstantValue(constantValueKind=String, value=v2)
|
||||
]))
|
||||
KtAnnotationConstantValue(Annotation, (strings = KtArrayConstantValue [
|
||||
KtSimpleConstantValue(constantValueKind=String, value=v3)
|
||||
KtSimpleConstantValue(constantValueKind=String, value=v4)
|
||||
KtLiteralConstantValue(constantValueKind=String, value=v3)
|
||||
KtLiteralConstantValue(constantValueKind=String, value=v4)
|
||||
]))
|
||||
]
|
||||
constant: null
|
||||
|
||||
Vendored
+1
-1
@@ -1,3 +1,3 @@
|
||||
expression: Color.R
|
||||
constant_value: KtEnumEntryValue(/Color.R)
|
||||
constant_value: KtEnumEntryConstantValue(/Color.R)
|
||||
constant: null
|
||||
|
||||
Vendored
+1
-1
@@ -1,3 +1,3 @@
|
||||
expression: 42
|
||||
constant_value: KtSimpleConstantValue(constantValueKind=Byte, value=42)
|
||||
constant_value: KtLiteralConstantValue(constantValueKind=Byte, value=42)
|
||||
constant: 42
|
||||
|
||||
Vendored
+1
-1
@@ -1,3 +1,3 @@
|
||||
expression: 3.14
|
||||
constant_value: KtSimpleConstantValue(constantValueKind=Double, value=3.14)
|
||||
constant_value: KtLiteralConstantValue(constantValueKind=Double, value=3.14)
|
||||
constant: 3.14
|
||||
|
||||
Vendored
+1
-1
@@ -1,3 +1,3 @@
|
||||
expression: 3.14f
|
||||
constant_value: KtSimpleConstantValue(constantValueKind=Float, value=3.14)
|
||||
constant_value: KtLiteralConstantValue(constantValueKind=Float, value=3.14)
|
||||
constant: 3.14
|
||||
|
||||
Vendored
+1
-1
@@ -1,3 +1,3 @@
|
||||
expression: 42
|
||||
constant_value: KtSimpleConstantValue(constantValueKind=Int, value=42)
|
||||
constant_value: KtLiteralConstantValue(constantValueKind=Int, value=42)
|
||||
constant: 42
|
||||
|
||||
Vendored
+1
-1
@@ -1,3 +1,3 @@
|
||||
expression: 42
|
||||
constant_value: KtSimpleConstantValue(constantValueKind=Long, value=42)
|
||||
constant_value: KtLiteralConstantValue(constantValueKind=Long, value=42)
|
||||
constant: 42
|
||||
|
||||
Vendored
+1
-1
@@ -1,3 +1,3 @@
|
||||
expression: 42u
|
||||
constant_value: KtSimpleConstantValue(constantValueKind=UInt, value=42)
|
||||
constant_value: KtLiteralConstantValue(constantValueKind=UInt, value=42)
|
||||
constant: 42
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
expression: "42"
|
||||
constant_value: KtSimpleConstantValue(constantValueKind=String, value=42)
|
||||
constant_value: KtLiteralConstantValue(constantValueKind=String, value=42)
|
||||
constant: 42
|
||||
|
||||
@@ -296,7 +296,7 @@ KtFirKotlinPropertySymbol:
|
||||
kotlin/Deprecated
|
||||
]
|
||||
annotations: [
|
||||
kotlin/Deprecated(level = KtEnumEntryValue(KtFirEnumEntrySymbol(kotlin/DeprecationLevel.ERROR)), message = don't use j)
|
||||
kotlin/Deprecated(level = KtEnumEntryConstantValue(KtFirEnumEntrySymbol(kotlin/DeprecationLevel.ERROR)), message = don't use j)
|
||||
psi: KtAnnotationEntry
|
||||
]
|
||||
callableIdIfNonLocal: /j
|
||||
@@ -332,7 +332,7 @@ KtFirKotlinPropertySymbol:
|
||||
kotlin/Deprecated
|
||||
]
|
||||
annotations: [
|
||||
kotlin/Deprecated(level = KtEnumEntryValue(KtFirEnumEntrySymbol(kotlin/DeprecationLevel.HIDDEN)), message = don't use j2)
|
||||
kotlin/Deprecated(level = KtEnumEntryConstantValue(KtFirEnumEntrySymbol(kotlin/DeprecationLevel.HIDDEN)), message = don't use j2)
|
||||
psi: KtAnnotationEntry
|
||||
]
|
||||
callableIdIfNonLocal: /j2
|
||||
|
||||
@@ -3,7 +3,7 @@ KtFirNamedClassOrObjectSymbol:
|
||||
kotlin/annotation/Target
|
||||
]
|
||||
annotations: [
|
||||
kotlin/annotation/Target(allowedTargets = KtEnumEntryValue(KtFirEnumEntrySymbol(kotlin/annotation/AnnotationTarget.TYPE)))
|
||||
kotlin/annotation/Target(allowedTargets = KtEnumEntryConstantValue(KtFirEnumEntrySymbol(kotlin/annotation/AnnotationTarget.TYPE)))
|
||||
psi: KtAnnotationEntry
|
||||
]
|
||||
classIdIfNonLocal: Anno1
|
||||
@@ -30,7 +30,7 @@ KtFirNamedClassOrObjectSymbol:
|
||||
kotlin/annotation/Target
|
||||
]
|
||||
annotations: [
|
||||
kotlin/annotation/Target(allowedTargets = KtEnumEntryValue(KtFirEnumEntrySymbol(kotlin/annotation/AnnotationTarget.TYPE)))
|
||||
kotlin/annotation/Target(allowedTargets = KtEnumEntryConstantValue(KtFirEnumEntrySymbol(kotlin/annotation/AnnotationTarget.TYPE)))
|
||||
psi: KtAnnotationEntry
|
||||
]
|
||||
classIdIfNonLocal: Anno2
|
||||
@@ -57,7 +57,7 @@ KtFirNamedClassOrObjectSymbol:
|
||||
kotlin/annotation/Target
|
||||
]
|
||||
annotations: [
|
||||
kotlin/annotation/Target(allowedTargets = KtEnumEntryValue(KtFirEnumEntrySymbol(kotlin/annotation/AnnotationTarget.TYPE)))
|
||||
kotlin/annotation/Target(allowedTargets = KtEnumEntryConstantValue(KtFirEnumEntrySymbol(kotlin/annotation/AnnotationTarget.TYPE)))
|
||||
psi: KtAnnotationEntry
|
||||
]
|
||||
classIdIfNonLocal: Anno3
|
||||
@@ -84,7 +84,7 @@ KtFirNamedClassOrObjectSymbol:
|
||||
kotlin/annotation/Target
|
||||
]
|
||||
annotations: [
|
||||
kotlin/annotation/Target(allowedTargets = KtEnumEntryValue(KtFirEnumEntrySymbol(kotlin/annotation/AnnotationTarget.TYPE)))
|
||||
kotlin/annotation/Target(allowedTargets = KtEnumEntryConstantValue(KtFirEnumEntrySymbol(kotlin/annotation/AnnotationTarget.TYPE)))
|
||||
psi: KtAnnotationEntry
|
||||
]
|
||||
classIdIfNonLocal: Anno4
|
||||
|
||||
-2
@@ -10,9 +10,7 @@ import com.intellij.psi.impl.light.LightIdentifier
|
||||
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtAnnotationCall
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtNamedConstantValue
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSimpleConstantValue
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
|
||||
internal class FirAnnotationParameterList(
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.resolve.deprecation.DeprecationLevelValue
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtFileSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtAnnotatedSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSimpleConstantValue
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtLiteralConstantValue
|
||||
|
||||
internal fun KtAnnotatedSymbol.hasJvmSyntheticAnnotation(annotationUseSiteTarget: AnnotationUseSiteTarget? = null): Boolean =
|
||||
hasAnnotation("kotlin/jvm/JvmSynthetic", annotationUseSiteTarget)
|
||||
@@ -30,7 +30,7 @@ internal fun KtAnnotatedSymbol.getJvmNameFromAnnotation(annotationUseSiteTarget:
|
||||
}
|
||||
|
||||
return annotation?.let {
|
||||
(it.arguments.firstOrNull()?.expression as? KtSimpleConstantValue<*>)?.value as? String
|
||||
(it.arguments.firstOrNull()?.expression as? KtLiteralConstantValue<*>)?.value as? String
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.analysis.api.isValid
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtKotlinPropertySymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtPropertySymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSimpleConstantValue
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtLiteralConstantValue
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
|
||||
internal class FirLightFieldForPropertySymbol(
|
||||
@@ -101,7 +101,7 @@ internal class FirLightFieldForPropertySymbol(
|
||||
if (propertySymbol !is KtKotlinPropertySymbol) return@lazyPub null
|
||||
if (!propertySymbol.isConst) return@lazyPub null
|
||||
if (!propertySymbol.isVal) return@lazyPub null
|
||||
(propertySymbol.initializer as? KtSimpleConstantValue<*>)?.createPsiLiteral(this)
|
||||
(propertySymbol.initializer as? KtLiteralConstantValue<*>)?.createPsiLiteral(this)
|
||||
}
|
||||
|
||||
override fun getInitializer(): PsiExpression? = _initializer
|
||||
|
||||
+2
-2
@@ -199,9 +199,9 @@ internal fun KtConstantValue.toAnnotationMemberValue(parent: PsiElement): PsiAnn
|
||||
|
||||
private fun KtConstantValue.asStringForPsiLiteral(): String? =
|
||||
when (this) {
|
||||
is KtEnumEntryValue ->
|
||||
is KtEnumEntryConstantValue ->
|
||||
"${enumEntrySymbol.containingEnumClassIdIfNonLocal?.asSingleFqName()?.asString() ?: ""}.${enumEntrySymbol.name}"
|
||||
is KtSimpleConstantValue<*> -> {
|
||||
is KtLiteralConstantValue<*> -> {
|
||||
when (val value = this.value) {
|
||||
is String -> "\"${escapeString(value)}\""
|
||||
is Long -> "${value}L"
|
||||
|
||||
Reference in New Issue
Block a user