Skip to content

Commit 89c4d3c

Browse files
committed
fix: empty span for java default visibility in annotations
fixes #3095
1 parent 3d8be6c commit 89c4d3c

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public class KotlinSignatureProvider(
130130
sourceSets = setOf(sourceSet)
131131
) {
132132
annotationsBlock(c)
133-
c.visibility[sourceSet]?.takeIf { it !in ignoredVisibilities }?.name?.let { keyword("$it ") }
133+
c.visibility[sourceSet]?.takeIf { it.name.isNotBlank() && it !in ignoredVisibilities }?.name?.let { keyword("$it ") }
134134
if (c.isExpectActual) keyword(if (sourceSet == c.expectPresentInSet) "expect " else "actual ")
135135
if (c is DClass) {
136136
val modifier =

dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
package signatures
66

7+
import org.jetbrains.dokka.DokkaConfiguration
78
import org.jetbrains.dokka.DokkaSourceSetID
89
import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest
910
import org.jetbrains.dokka.model.DFunction
@@ -1094,4 +1095,41 @@ class SignatureTest : BaseAbstractTest() {
10941095
}
10951096
}
10961097
}
1098+
1099+
@Test
1100+
fun `should not add an empty span with java default visibility`() {
1101+
val configuration = dokkaConfiguration {
1102+
sourceSets {
1103+
sourceSet {
1104+
sourceRoots = listOf("src/")
1105+
documentedVisibilities = setOf(
1106+
DokkaConfiguration.Visibility.PUBLIC,
1107+
DokkaConfiguration.Visibility.PACKAGE
1108+
)
1109+
}
1110+
}
1111+
}
1112+
1113+
val writerPlugin = TestOutputWriterPlugin()
1114+
testInline(
1115+
"""
1116+
|/src/test/JavaAnnotationWithSpace.java
1117+
|package test;
1118+
|
1119+
|@interface JavaAnnotationWithSpace {}
1120+
""".trimIndent(),
1121+
configuration,
1122+
pluginOverrides = listOf(writerPlugin)
1123+
) {
1124+
renderingStage = { _, _ ->
1125+
val signatureHtml = writerPlugin.writer.renderedContent("root/test/-java-annotation-with-space/index.html")
1126+
.firstSignature()
1127+
.html()
1128+
1129+
val expectedSignature = "<span class=\"token keyword\">annotation class </span><a href=\"index.html\">JavaAnnotationWithSpace</a>"
1130+
1131+
assertEquals(expectedSignature, signatureHtml)
1132+
}
1133+
}
1134+
}
10971135
}

0 commit comments

Comments
 (0)