Analysis API: rename KtConstantValue -> KtAnnotationValue as it is annotation specific
This commit is contained in:
+2
-2
@@ -15,7 +15,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.KtLiteralConstantValue
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtLiteralAnnotationValue
|
||||
|
||||
internal fun KtAnnotatedSymbol.hasJvmSyntheticAnnotation(annotationUseSiteTarget: AnnotationUseSiteTarget? = null): Boolean =
|
||||
hasAnnotation("kotlin/jvm/JvmSynthetic", annotationUseSiteTarget)
|
||||
@@ -31,7 +31,7 @@ internal fun KtAnnotatedSymbol.getJvmNameFromAnnotation(annotationUseSiteTarget:
|
||||
}
|
||||
|
||||
return annotation?.let {
|
||||
(it.arguments.firstOrNull()?.expression as? KtLiteralConstantValue<*>)?.value as? String
|
||||
(it.arguments.firstOrNull()?.expression as? KtLiteralAnnotationValue<*>)?.value as? String
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -13,7 +13,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.KtLiteralConstantValue
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtLiteralAnnotationValue
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtTypeMappingMode
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtProperty
|
||||
@@ -113,7 +113,7 @@ internal class FirLightFieldForPropertySymbol(
|
||||
if (!propertySymbol.isConst) return@lazyPub null
|
||||
if (!propertySymbol.isVal) return@lazyPub null
|
||||
val constInitializer = propertySymbol.initializer as? KtConstantInitializerValue ?: return@lazyPub null
|
||||
(constInitializer.constant as? KtLiteralConstantValue<*>)?.createPsiLiteral(this)
|
||||
(constInitializer.constant as? KtLiteralAnnotationValue<*>)?.createPsiLiteral(this)
|
||||
}
|
||||
|
||||
override fun getInitializer(): PsiExpression? = _initializer
|
||||
|
||||
+8
-7
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.*
|
||||
import org.jetbrains.kotlin.analysis.api.components.DefaultTypeClassIds
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtClassLikeSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol
|
||||
@@ -170,13 +171,13 @@ private fun escapeString(str: String): String = buildString {
|
||||
}
|
||||
}
|
||||
|
||||
internal fun KtConstantValue.toAnnotationMemberValue(parent: PsiElement): PsiAnnotationMemberValue? {
|
||||
internal fun KtAnnotationValue.toAnnotationMemberValue(parent: PsiElement): PsiAnnotationMemberValue? {
|
||||
return when (this) {
|
||||
is KtArrayConstantValue ->
|
||||
is KtArrayAnnotationValue ->
|
||||
FirPsiArrayInitializerMemberValue(sourcePsi, parent) { arrayLiteralParent ->
|
||||
values.mapNotNull { element -> element.toAnnotationMemberValue(arrayLiteralParent) }
|
||||
}
|
||||
is KtAnnotationConstantValue ->
|
||||
is KtAnnotationAnnotationValue ->
|
||||
FirLightSimpleAnnotation(classId?.relativeClassName?.asString(), parent, arguments, sourcePsi)
|
||||
else ->
|
||||
createPsiLiteral(parent)?.let {
|
||||
@@ -188,11 +189,11 @@ internal fun KtConstantValue.toAnnotationMemberValue(parent: PsiElement): PsiAnn
|
||||
}
|
||||
}
|
||||
|
||||
private fun KtConstantValue.asStringForPsiLiteral(): String? =
|
||||
private fun KtAnnotationValue.asStringForPsiLiteral(): String? =
|
||||
when (this) {
|
||||
is KtEnumEntryConstantValue ->
|
||||
is KtEnumEntryAnnotationValue ->
|
||||
"${callableId?.classId?.asSingleFqName()?.asString() ?: ""}.${callableId?.callableName}"
|
||||
is KtLiteralConstantValue<*> -> {
|
||||
is KtLiteralAnnotationValue<*> -> {
|
||||
when (val value = this.value) {
|
||||
is String -> "\"${escapeString(value)}\""
|
||||
is Long -> "${value}L"
|
||||
@@ -203,7 +204,7 @@ private fun KtConstantValue.asStringForPsiLiteral(): String? =
|
||||
else -> null
|
||||
}
|
||||
|
||||
internal fun KtConstantValue.createPsiLiteral(parent: PsiElement): PsiExpression? {
|
||||
internal fun KtAnnotationValue.createPsiLiteral(parent: PsiElement): PsiExpression? {
|
||||
val asString = asStringForPsiLiteral() ?: return null
|
||||
val instance = PsiElementFactory.getInstance(parent.project)
|
||||
return try {
|
||||
|
||||
Reference in New Issue
Block a user