aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/main/kotlin/translators/descriptors
diff options
context:
space:
mode:
authorVadim Mishenev <vad-mishenev@yandex.ru>2022-10-21 13:59:28 +0300
committerGitHub <noreply@github.com>2022-10-21 13:59:28 +0300
commit4c122a4d46f9f100e1508b602942c571067a1d88 (patch)
treef0f7a24cc0b383fd7c79fa2fc9d71514c476d8fb /plugins/base/src/main/kotlin/translators/descriptors
parentcacdcd9739bb4fefb5a92cefd30ec58a172db148 (diff)
downloaddokka-4c122a4d46f9f100e1508b602942c571067a1d88.tar.gz
dokka-4c122a4d46f9f100e1508b602942c571067a1d88.tar.bz2
dokka-4c122a4d46f9f100e1508b602942c571067a1d88.zip
Fix inheriting docs in case of diamond inheritance (#2686)
Diffstat (limited to 'plugins/base/src/main/kotlin/translators/descriptors')
-rw-r--r--plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt10
1 files changed, 9 insertions, 1 deletions
diff --git a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt
index e3e1a33e..9de85eb0 100644
--- a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt
+++ b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt
@@ -1,5 +1,6 @@
package org.jetbrains.dokka.base.translators.descriptors
+import com.intellij.psi.PsiElement
import com.intellij.psi.PsiNamedElement
import com.intellij.psi.util.PsiLiteralUtil.*
import kotlinx.coroutines.Dispatchers
@@ -49,6 +50,7 @@ import org.jetbrains.kotlin.load.java.descriptors.JavaPropertyDescriptor
import org.jetbrains.kotlin.load.kotlin.toSourceElement
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.*
+import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.calls.components.isVararg
import org.jetbrains.kotlin.resolve.calls.util.getValueArgumentsInParentheses
@@ -1016,7 +1018,13 @@ private class DokkaDescriptorVisitor(
org.jetbrains.kotlin.types.Variance.OUT_VARIANCE -> Covariance(this)
}
- private fun DeclarationDescriptor.getDocumentation() = (findKDoc()?.let {
+ private fun descriptorToAnyDeclaration(descriptor: DeclarationDescriptor): PsiElement? {
+ val effectiveReferencedDescriptors = DescriptorToSourceUtils.getEffectiveReferencedDescriptors(descriptor)
+ //take any
+ return effectiveReferencedDescriptors.firstOrNull()?.let { DescriptorToSourceUtils.getSourceFromDescriptor(it) }
+ }
+
+ private fun DeclarationDescriptor.getDocumentation() = (findKDoc(::descriptorToAnyDeclaration)?.let {
MarkdownParser.parseFromKDocTag(
kDocTag = it,
externalDri = { link: String ->