aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/main/kotlin/translators/psi
diff options
context:
space:
mode:
authorIgnat Beresnev <ignat.beresnev@jetbrains.com>2022-06-19 17:30:05 +0200
committerGitHub <noreply@github.com>2022-06-19 17:30:05 +0200
commit89fc2494b40624c03a74e01f2f4ec4941bb5314d (patch)
treede6a8ae616f2f06e02d3c5b0a0fce20c1b08315a /plugins/base/src/main/kotlin/translators/psi
parenta11a8dd92fcccff770d6893f27c3546fef17655d (diff)
downloaddokka-89fc2494b40624c03a74e01f2f4ec4941bb5314d.tar.gz
dokka-89fc2494b40624c03a74e01f2f4ec4941bb5314d.tar.bz2
dokka-89fc2494b40624c03a74e01f2f4ec4941bb5314d.zip
Fix incorrectly labeling java properties as val/var (#2540)
Fixes #2539
Diffstat (limited to 'plugins/base/src/main/kotlin/translators/psi')
-rw-r--r--plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt9
1 files changed, 8 insertions, 1 deletions
diff --git a/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt b/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt
index bef86144..f64eb261 100644
--- a/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt
+++ b/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt
@@ -620,6 +620,12 @@ class DefaultPsiToDocumentableTranslator(
private fun parseField(psi: PsiField, getter: DFunction?, setter: DFunction?, inheritedFrom: DRI? = null): DProperty {
val dri = DRI.from(psi)
+
+ // non-final java field without accessors should be a var
+ // setter should be not null when inheriting kotlin vars
+ val isMutable = !psi.hasModifierProperty("final")
+ val isVar = (isMutable && getter == null && setter == null) || (getter != null && setter != null)
+
return DProperty(
dri = dri,
name = psi.name,
@@ -645,7 +651,8 @@ class DefaultPsiToDocumentableTranslator(
PropertyContainer.withAll(
inheritedFrom?.let { inheritedFrom -> InheritedMember(inheritedFrom.toSourceSetDependent()) },
it.toSourceSetDependent().toAdditionalModifiers(),
- annotations.toSourceSetDependent().toAnnotations()
+ annotations.toSourceSetDependent().toAnnotations(),
+ takeIf { isVar }?.let { IsVar }
)
}
)