diff options
-rw-r--r-- | src/Java/JavaDocumentationBuilder.kt | 11 | ||||
-rw-r--r-- | test/data/java/staticMethod.java | 6 | ||||
-rw-r--r-- | test/src/model/JavaTest.kt | 7 |
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 }) + } + } } |