diff options
author | sebastian.sellmair <sebastian.sellmair@jetbrains.com> | 2020-08-19 14:21:46 +0200 |
---|---|---|
committer | Sebastian Sellmair <34319766+sellmair@users.noreply.github.com> | 2020-08-19 16:17:41 +0200 |
commit | cc8c8d6d92c601e3c3b8ea7b62c39d5dae4839b8 (patch) | |
tree | 2fff53b4a32c86f2b7c3840e9c404ff635463e1f /plugins/base/src/main | |
parent | 6bd58a22b06c6e879b8e93ade631ca6f119976e3 (diff) | |
download | dokka-cc8c8d6d92c601e3c3b8ea7b62c39d5dae4839b8.tar.gz dokka-cc8c8d6d92c601e3c3b8ea7b62c39d5dae4839b8.tar.bz2 dokka-cc8c8d6d92c601e3c3b8ea7b62c39d5dae4839b8.zip |
Implement test to reproduce https://github.com/Kotlin/dokka/issues/1341
Diffstat (limited to 'plugins/base/src/main')
-rw-r--r-- | plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt b/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt index 791627cc..27a487b8 100644 --- a/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt +++ b/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt @@ -173,13 +173,19 @@ class DefaultPsiToDocumentableTranslator( val ancestors = ancestryTree.filter { it.level == 0 }.flatMap { listOfNotNull(it.superclass?.let { TypeConstructorWithKind( - typeConstructor = it , + typeConstructor = it, kind = JavaClassKindTypes.CLASS ) - }) + it.interfaces.map { TypeConstructorWithKind(typeConstructor = it, kind = JavaClassKindTypes.INTERFACE) } + }) + it.interfaces.map { + TypeConstructorWithKind( + typeConstructor = it, + kind = JavaClassKindTypes.INTERFACE + ) + } }.toSourceSetDependent() val modifiers = getModifier().toSourceSetDependent() - val implementedInterfacesExtra = ImplementedInterfaces(ancestryTree.flatMap { it.interfaces }.distinct().toSourceSetDependent()) + val implementedInterfacesExtra = + ImplementedInterfaces(ancestryTree.flatMap { it.interfaces }.distinct().toSourceSetDependent()) return when { isAnnotationType -> DAnnotation( @@ -476,12 +482,14 @@ class DefaultPsiToDocumentableTranslator( else -> StringValue(text ?: "") } - private fun PsiAnnotation.toAnnotation() = psiReference?.let { psiElement -> + private fun PsiAnnotation.toAnnotation(): Annotations.Annotation? = psiReference?.let { psiElement -> Annotations.Annotation( - DRI.from(psiElement), - attributes.filter { it !is KtLightAbstractAnnotation }.mapNotNull { it.attributeName to it.toValue() } + dri = DRI.from(psiElement), + params = attributes + .filter { it !is KtLightAbstractAnnotation } + .mapNotNull { it.attributeName to it.toValue() } .toMap(), - (psiElement as PsiClass).annotations.any { + mustBeDocumented = (psiElement as PsiClass).annotations.any { it.hasQualifiedName("java.lang.annotation.Documented") } ) @@ -491,5 +499,9 @@ class DefaultPsiToDocumentableTranslator( get() = getChildOfType<PsiJavaCodeReferenceElement>()?.resolve() } - private data class AncestryLevel(val level: Int, val superclass: TypeConstructor?, val interfaces: List<TypeConstructor>) + private data class AncestryLevel( + val level: Int, + val superclass: TypeConstructor?, + val interfaces: List<TypeConstructor> + ) } |