From b1c44203b60b621571f92a988948d593e046a39c Mon Sep 17 00:00:00 2001 From: vmishenev Date: Fri, 11 Aug 2023 21:38:48 +0300 Subject: [PATCH] Fix some review comments --- ...leAndPackageDocumentationParsingContext.kt | 17 +--------------- .../translators/AnnotationTranslator.kt | 2 +- .../DefaultSymbolToDocumentableTranslator.kt | 20 +++++++++++++++---- .../symbols/translators/TypeTranslator.kt | 4 ++-- 4 files changed, 20 insertions(+), 23 deletions(-) diff --git a/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/kdoc/moduledocs/ModuleAndPackageDocumentationParsingContext.kt b/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/kdoc/moduledocs/ModuleAndPackageDocumentationParsingContext.kt index 169357d06e8..88049745888 100644 --- a/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/kdoc/moduledocs/ModuleAndPackageDocumentationParsingContext.kt +++ b/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/kdoc/moduledocs/ModuleAndPackageDocumentationParsingContext.kt @@ -2,8 +2,6 @@ package org.jetbrains.dokka.analysis.kotlin.symbols.kdoc.moduledocs import org.jetbrains.dokka.DokkaConfiguration import org.jetbrains.dokka.analysis.kotlin.symbols.plugin.KotlinAnalysis -import org.jetbrains.dokka.analysis.kotlin.symbols.plugin.getPsiFilesFromPaths -import org.jetbrains.dokka.analysis.kotlin.symbols.plugin.getSourceFilePaths import org.jetbrains.dokka.analysis.kotlin.symbols.kdoc.moduledocs.ModuleAndPackageDocumentation.Classifier.Module import org.jetbrains.dokka.analysis.kotlin.symbols.kdoc.moduledocs.ModuleAndPackageDocumentation.Classifier.Package import org.jetbrains.dokka.analysis.kotlin.symbols.kdoc.resolveKDocLink @@ -12,10 +10,7 @@ import org.jetbrains.dokka.analysis.markdown.jb.MarkdownParser import org.jetbrains.dokka.model.doc.DocumentationNode import org.jetbrains.dokka.utilities.DokkaLogger import org.jetbrains.kotlin.analysis.api.analyze - import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.psi.KtFile internal fun interface ModuleAndPackageDocumentationParsingContext { fun markdownParserFor(fragment: ModuleAndPackageDocumentationFragment, location: String): MarkdownParser @@ -39,7 +34,7 @@ internal fun ModuleAndPackageDocumentationParsingContext( val analysisContext = kotlinAnalysis[sourceSet] analyze(analysisContext.mainModule) { val contextSymbol = when (fragment.classifier) { - Module -> getPackageSymbolIfPackageExists(FqName.topLevel(Name.identifier(""))) + Module -> ROOT_PACKAGE_SYMBOL Package -> getPackageSymbolIfPackageExists(FqName(fragment.name)) } @@ -58,13 +53,3 @@ internal fun ModuleAndPackageDocumentationParsingContext( } } } -/* -private fun Collection.sorted() = sortedWith( - compareBy( - { it is ClassDescriptor }, - { (it as? FunctionDescriptor)?.name }, - { (it as? FunctionDescriptor)?.valueParameters?.size }, - { (it as? FunctionDescriptor)?.valueParameters?.joinToString { it.type.toString() } } - ) -) - */ diff --git a/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/AnnotationTranslator.kt b/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/AnnotationTranslator.kt index 9fc25b9e949..9e961ef8f50 100644 --- a/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/AnnotationTranslator.kt +++ b/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/AnnotationTranslator.kt @@ -56,7 +56,7 @@ internal class AnnotationTranslator { private fun KtAnalysisSession.toDokkaAnnotation(annotationApplication: KtAnnotationApplication) = Annotations.Annotation( dri = annotationApplication.classId?.createDRI() - ?: throw IllegalStateException("The annotation application does not have class id"), + ?: DRI(packageName = "", classNames = ERROR_CLASS_NAME), // classId might be null on a non-existing annotation call, params = if (annotationApplication is KtAnnotationApplicationWithArgumentsInfo) annotationApplication.arguments.associate { it.name.asString() to toDokkaAnnotationValue( it.expression diff --git a/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt b/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt index a423970ab5b..22b5c722ad5 100644 --- a/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt +++ b/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt @@ -513,7 +513,6 @@ internal class DokkaSymbolVisitor( return visibility.toDokkaVisibility() } - private fun KtAnalysisSession.visitJavaFieldSymbol( javaFieldSymbol: KtJavaFieldSymbol, parent: DRI, @@ -570,9 +569,21 @@ internal class DokkaSymbolVisitor( propertySymbol: KtPropertySymbol, propertyDRI: DRI ): DFunction = withExceptionCatcher(propertyAccessorSymbol) { - val dri = propertyDRI.copy( - callable = Callable("", null, emptyList()) - ) + val isGetter = propertyAccessorSymbol is KtPropertyGetterSymbol + // it also covers @JvmName annotation + val name = (if (isGetter) propertySymbol.javaGetterName else propertySymbol.javaSetterName)?.asString() ?: "" + + // SyntheticJavaProperty has callableIdIfNonLocal, propertyAccessorSymbol.origin = JAVA_SYNTHETIC_PROPERTY + // For Kotlin properties callableIdIfNonLocal=null + val dri = if (propertyAccessorSymbol.callableIdIfNonLocal != null) + getDRIFromFunctionLike(propertyAccessorSymbol) + else + propertyDRI.copy( + callable = Callable(name, null, emptyList()) + ) + // for SyntheticJavaProperty + val inheritedFrom = if(propertyAccessorSymbol.origin == KtSymbolOrigin.JAVA_SYNTHETIC_PROPERTY) dri.copy(callable = null) else null + val isExpect = propertyAccessorSymbol.isExpect val isActual = propertyAccessorSymbol.isActual @@ -633,6 +644,7 @@ internal class DokkaSymbolVisitor( isExpectActual = (isExpect || isActual), extra = PropertyContainer.withAll( propertyAccessorSymbol.additionalExtras()?.toSourceSetDependent()?.toAdditionalModifiers(), + inheritedFrom?.let { InheritedMember(it.toSourceSetDependent()) }, getDokkaAnnotationsFrom(propertyAccessorSymbol)?.toSourceSetDependent()?.toAnnotations() ) ) diff --git a/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/TypeTranslator.kt b/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/TypeTranslator.kt index 278f60eeef7..2b79498d5f4 100644 --- a/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/TypeTranslator.kt +++ b/subprojects/analysis-kotlin-symbols/plugin/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/TypeTranslator.kt @@ -140,7 +140,7 @@ internal class TypeTranslator( is KtClassErrorType -> TypeConstructorWithKind( GenericTypeConstructor( - dri = DRI("$ERROR_CLASS_NAME $type", "", null), + dri = DRI(packageName = "", classNames = "$ERROR_CLASS_NAME $type"), projections = emptyList(), ), @@ -149,7 +149,7 @@ internal class TypeTranslator( is KtTypeErrorType -> TypeConstructorWithKind( GenericTypeConstructor( - dri = DRI("$ERROR_CLASS_NAME $type", "", null), + dri = DRI(packageName = "", classNames = "$ERROR_CLASS_NAME $type"), projections = emptyList(), ),