From bfab90aa5d1bfd624513408b53c3161d2d0c1556 Mon Sep 17 00:00:00 2001 From: vmishenev Date: Mon, 13 May 2024 13:07:29 +0300 Subject: [PATCH] Replace `KtKClassAnnotationValue.classId` with `KtKClassAnnotationValue.type.classId` Since it is recommended to avoid using `KtKClassAnnotationValue.classId` for cases other than error handling. It will likely be removed in Analysis API. --- .../translators/AnnotationTranslator.kt | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/AnnotationTranslator.kt b/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/AnnotationTranslator.kt index 6768422cf1..40d2b4e20b 100644 --- a/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/AnnotationTranslator.kt +++ b/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/AnnotationTranslator.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.analysis.api.base.KtConstantValue import org.jetbrains.kotlin.analysis.api.symbols.KtPropertySymbol import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin +import org.jetbrains.kotlin.analysis.api.types.* import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName @@ -105,16 +106,16 @@ internal class AnnotationTranslator { is KtArrayAnnotationValue -> ArrayValue(annotationValue.values.map { toDokkaAnnotationValue(it) }) is KtAnnotationApplicationValue -> AnnotationValue(toDokkaAnnotation(annotationValue.annotationValue)) - is KtKClassAnnotationValue -> annotationValue.classId?.let { classId -> - ClassValue( - classId.relativeClassName.asString(), - classId.createDRI() + is KtKClassAnnotationValue -> when (val type: KtType = annotationValue.type) { + is KtNonErrorClassType -> ClassValue( + type.classId.relativeClassName.asString(), + type.classId.createDRI() ) - } ?: ClassValue( - annotationValue.type.asStringForDebugging(), - DRI(packageName = "", classNames = ERROR_CLASS_NAME) - ) - + else -> ClassValue( + type.asStringForDebugging(), + DRI(packageName = "", classNames = ERROR_CLASS_NAME) + ) + } is KtUnsupportedAnnotationValue -> ClassValue( "", DRI(packageName = "", classNames = ERROR_CLASS_NAME)