diff --git a/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt b/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt index 3c9daa2942..f6d64677c8 100644 --- a/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt +++ b/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt @@ -79,14 +79,16 @@ class KotlinSignatureProvider(ctcc: CommentsToContentConverter, logger: DokkaLog annotationsBlock(e) link(e.name, e.dri, styles = emptySet()) e.extra[ConstructorValues]?.let { constructorValues -> - constructorValues.values[it]?.let { values -> - punctuation("(") - list( - elements = values, - separator = ", ", - separatorStyles = mainStyles + TokenStyle.Punctuation, - ) { highlightValue(it) } - punctuation(")") + constructorValues.values[it] + ?.takeIf { values -> values.isNotEmpty() } + ?.let { values -> + punctuation("(") + list( + elements = values, + separator = ", ", + separatorStyles = mainStyles + TokenStyle.Punctuation, + ) { highlightValue(it) } + punctuation(")") } } } diff --git a/plugins/base/src/test/kotlin/enums/EnumsTest.kt b/plugins/base/src/test/kotlin/enums/EnumsTest.kt index 778125e244..ee4de696ce 100644 --- a/plugins/base/src/test/kotlin/enums/EnumsTest.kt +++ b/plugins/base/src/test/kotlin/enums/EnumsTest.kt @@ -400,7 +400,6 @@ class EnumsTest : BaseAbstractTest() { group { group { link { +"E1" } - +"()" } } group { diff --git a/plugins/base/src/test/kotlin/signatures/SignatureTest.kt b/plugins/base/src/test/kotlin/signatures/SignatureTest.kt index 6f4de32baa..3e4b3e68b7 100644 --- a/plugins/base/src/test/kotlin/signatures/SignatureTest.kt +++ b/plugins/base/src/test/kotlin/signatures/SignatureTest.kt @@ -857,4 +857,43 @@ class SignatureTest : BaseAbstractTest() { } } } + + @Test + fun `should have no empty parentheses for no-arg enum entry`() { + val writerPlugin = TestOutputWriterPlugin() + + testInline( + """ + |/src/main/kotlin/common/EnumClass.kt + |package example + | + |enum class EnumClass(param: String = "Default") { + | EMPTY, + | WITH_ARG("arg") + |} + """.trimMargin(), + configuration, + pluginOverrides = listOf(writerPlugin) + ) { + renderingStage = { _, _ -> + val enumEntrySignatures = writerPlugin.writer.renderedContent("root/example/-enum-class/index.html") + .select("div.table[data-togglable=Entries]") + .single() + .signature() + .select("div.block") + + // TODO [beresnev] change ordering after https://github.com/Kotlin/dokka/pull/2469 + + enumEntrySignatures[1].match( + A("EMPTY"), + ignoreSpanWithTokenStyle = true + ) + + enumEntrySignatures[0].match( + A("WITH_ARG"), "(\"arg\")", + ignoreSpanWithTokenStyle = true + ) + } + } + } }