aboutsummaryrefslogtreecommitdiff
path: root/dokka-subprojects/analysis-java-psi/src/main/kotlin/org
diff options
context:
space:
mode:
authorOleg Yukhnevich <whyoleg@gmail.com>2023-11-22 09:53:40 +0200
committerGitHub <noreply@github.com>2023-11-22 09:53:40 +0200
commit04623bff02cf5486ca054f986b4b05818800f554 (patch)
treef35cc829b8f33afe82e73b0476f2030adc623188 /dokka-subprojects/analysis-java-psi/src/main/kotlin/org
parent6fbc2221ff309995c605161b51d4d64cbabddd51 (diff)
downloaddokka-04623bff02cf5486ca054f986b4b05818800f554.tar.gz
dokka-04623bff02cf5486ca054f986b4b05818800f554.tar.bz2
dokka-04623bff02cf5486ca054f986b4b05818800f554.zip
Support `inner` modifier for java non-`static` classes (#3347)
Diffstat (limited to 'dokka-subprojects/analysis-java-psi/src/main/kotlin/org')
-rw-r--r--dokka-subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/DokkaPsiParser.kt14
1 files changed, 14 insertions, 0 deletions
diff --git a/dokka-subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/DokkaPsiParser.kt b/dokka-subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/DokkaPsiParser.kt
index b8dabe42..9cfa2bfe 100644
--- a/dokka-subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/DokkaPsiParser.kt
+++ b/dokka-subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/DokkaPsiParser.kt
@@ -236,6 +236,18 @@ internal class DokkaPsiParser(
val implementedInterfacesExtra =
ImplementedInterfaces(ancestry.allImplementedInterfaces().toSourceSetDependent())
+ // used only for class and enum
+ val innerModifierExtra = when {
+ // top level java classes - no `inner`
+ psi.containingClass == null -> null
+ // java `static class` = kotlin `class`
+ psi.hasModifier(JvmModifier.STATIC) -> null
+ // java `class` = kotlin `inner class`
+ else -> setOf(
+ ExtraModifiers.KotlinOnlyModifiers.Inner
+ ).toSourceSetDependent().toAdditionalModifiers()
+ }
+
when {
isAnnotationType ->
DAnnotation(
@@ -295,6 +307,7 @@ internal class DokkaPsiParser(
isExpectActual = false,
extra = PropertyContainer.withAll(
implementedInterfacesExtra,
+ innerModifierExtra,
annotations.toList().toListOfAnnotations().toSourceSetDependent()
.toAnnotations()
)
@@ -341,6 +354,7 @@ internal class DokkaPsiParser(
isExpectActual = false,
extra = PropertyContainer.withAll(
implementedInterfacesExtra,
+ innerModifierExtra,
annotations.toList().toListOfAnnotations().toSourceSetDependent()
.toAnnotations(),
ancestry.exceptionInSupertypesOrNull()