aboutsummaryrefslogtreecommitdiff
path: root/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt
diff options
context:
space:
mode:
authorMarcin Aman <marcin.aman@gmail.com>2021-01-20 10:30:50 +0100
committerGitHub <noreply@github.com>2021-01-20 10:30:50 +0100
commit93520158b4be59f98015d07e8fecaa7e5a49fd99 (patch)
tree24c57c752bb7f3125f6248ebae232a69bec8efb6 /plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt
parent9f7dc9cc0183c74fc77c63297eb73f936715d77d (diff)
downloaddokka-93520158b4be59f98015d07e8fecaa7e5a49fd99.tar.gz
dokka-93520158b4be59f98015d07e8fecaa7e5a49fd99.tar.bz2
dokka-93520158b4be59f98015d07e8fecaa7e5a49fd99.zip
Bring back displaying jvm name when KaJ is not present (#1702)
Diffstat (limited to 'plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt')
-rw-r--r--plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt21
1 files changed, 18 insertions, 3 deletions
diff --git a/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt b/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt
index 3fb26034..c49e08f0 100644
--- a/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt
+++ b/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt
@@ -1,6 +1,7 @@
package org.jetbrains.dokka.kotlinAsJava.transformers
import org.jetbrains.dokka.model.*
+import org.jetbrains.dokka.model.properties.PropertyContainer
import org.jetbrains.dokka.plugability.DokkaContext
import org.jetbrains.dokka.transformers.documentation.DocumentableTransformer
@@ -25,7 +26,8 @@ class JvmNameDocumentableTransformer : DocumentableTransformer {
val name = jvmNameProvider.nameFor(this)
copy(
dri = documentable.dri.withCallableName(name),
- name = name
+ name = name,
+ extra = extra.withoutJvmName()
)
}
is DProperty -> transformGetterAndSetter(this)
@@ -42,6 +44,17 @@ class JvmNameDocumentableTransformer : DocumentableTransformer {
}
} as T
+ private fun PropertyContainer<DFunction>.withoutJvmName(): PropertyContainer<DFunction> {
+ val annotationsWithoutJvmName = get(Annotations)?.let { annotations ->
+ annotations.copy((annotations.directAnnotations).map { (sourceset, annotations) ->
+ sourceset to annotations.filterNot { it.isJvmName() }
+ }.toMap() + annotations.fileLevelAnnotations)
+ }
+ val extraWithoutAnnotations: PropertyContainer<DFunction> = minus(Annotations)
+
+ return extraWithoutAnnotations.addAll(listOfNotNull(annotationsWithoutJvmName))
+ }
+
private fun transformClassLike(documentable: DClasslike): DClasslike =
with(documentable) {
when (this) {
@@ -80,7 +93,8 @@ class JvmNameDocumentableTransformer : DocumentableTransformer {
setter?.let { setter ->
setter.copy(
dri = setter.dri.withCallableName(setterName),
- name = setterName
+ name = setterName,
+ extra = setter.extra.withoutJvmName()
)
}
},
@@ -88,7 +102,8 @@ class JvmNameDocumentableTransformer : DocumentableTransformer {
getter?.let { getter ->
getter.copy(
dri = getter.dri.withCallableName(getterName),
- name = getterName
+ name = getterName,
+ extra = getter.extra.withoutJvmName()
)
}
})