aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Java/JavaDocumentationBuilder.kt11
-rw-r--r--test/data/java/staticMethod.java6
-rw-r--r--test/src/model/JavaTest.kt7
3 files changed, 21 insertions, 3 deletions
diff --git a/src/Java/JavaDocumentationBuilder.kt b/src/Java/JavaDocumentationBuilder.kt
index d57ffb0c..8408d25a 100644
--- a/src/Java/JavaDocumentationBuilder.kt
+++ b/src/Java/JavaDocumentationBuilder.kt
@@ -110,8 +110,7 @@ public class JavaDocumentationBuilder(private val options: DocumentationOptions)
}
fun PsiMethod.build(): DocumentationNode {
- val node = DocumentationNode(this,
- if (isConstructor()) Kind.Constructor else Kind.Function,
+ val node = DocumentationNode(this, nodeKind(),
if (isConstructor()) "<init>" else getName())
if (!isConstructor()) {
@@ -122,6 +121,12 @@ public class JavaDocumentationBuilder(private val options: DocumentationOptions)
return node
}
+ private fun PsiMethod.nodeKind(): Kind = when {
+ isConstructor() -> Kind.Constructor
+ hasModifierProperty(PsiModifier.STATIC) -> Kind.ClassObjectFunction
+ else -> Kind.Function
+ }
+
fun PsiParameter.build(): DocumentationNode {
val node = DocumentationNode(this, Kind.Parameter)
node.appendType(getType())
@@ -144,7 +149,7 @@ public class JavaDocumentationBuilder(private val options: DocumentationOptions)
return
}
PsiModifier.MODIFIERS.forEach {
- if (modifierList.hasExplicitModifier(it)) {
+ if (it != "static" && modifierList.hasExplicitModifier(it)) {
val modifierNode = DocumentationNode(it, Content.Empty, Kind.Modifier)
append(modifierNode, DocumentationReference.Kind.Detail)
}
diff --git a/test/data/java/staticMethod.java b/test/data/java/staticMethod.java
new file mode 100644
index 00000000..2bbbbf1b
--- /dev/null
+++ b/test/data/java/staticMethod.java
@@ -0,0 +1,6 @@
+package test;
+
+class C {
+ public static void foo() {
+ }
+}
diff --git a/test/src/model/JavaTest.kt b/test/src/model/JavaTest.kt
index 15efa90b..2e055d65 100644
--- a/test/src/model/JavaTest.kt
+++ b/test/src/model/JavaTest.kt
@@ -133,4 +133,11 @@ public class JavaTest {
assertFalse("var" in s.details(DocumentationNode.Kind.Modifier).map { it.name })
}
}
+
+ Test fun staticMethod() {
+ verifyPackageMember("test/data/java/staticMethod.java") { cls ->
+ val m = cls.members(DocumentationNode.Kind.ClassObjectFunction).single { it.name == "foo" }
+ assertFalse("static" in m.details(DocumentationNode.Kind.Modifier).map { it.name })
+ }
+ }
}