aboutsummaryrefslogtreecommitdiff
path: root/dokka-subprojects/analysis-java-psi/src/main/kotlin/org
diff options
context:
space:
mode:
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()