From 658146291e2bbf3461a2c86f8e8e23cff6b211f6 Mon Sep 17 00:00:00 2001 From: ebraminio Date: Mon, 16 May 2022 18:45:40 +0430 Subject: Don't expose enum constructor arguments to documentations (#2497) * Don't expose enum constructor arguments to documentation Enum constructor arguments is mostly internal detail of enums that isn't supposed to be exposed to clients of some library so let's don't put it in the generated documentations result. --- .../kotlin/signatures/KotlinSignatureProvider.kt | 11 ----- .../DefaultDescriptorToDocumentableTranslator.kt | 3 +- plugins/base/src/test/kotlin/enums/EnumsTest.kt | 51 ---------------------- .../src/test/kotlin/signatures/SignatureTest.kt | 4 +- 4 files changed, 3 insertions(+), 66 deletions(-) (limited to 'plugins/base') diff --git a/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt b/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt index 642c01c3..294c1d24 100644 --- a/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt +++ b/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt @@ -78,17 +78,6 @@ class KotlinSignatureProvider(ctcc: CommentsToContentConverter, logger: DokkaLog group(styles = setOf(TextStyle.Block)) { annotationsBlock(e) link(e.name, e.dri, styles = emptySet()) - e.extra[ConstructorValues]?.let { constructorValues -> - constructorValues.values[it]?.let { values -> - list( - elements = values, - prefix = "(", - suffix = ")", - separator = ", ", - separatorStyles = mainStyles + TokenStyle.Punctuation, - ) { highlightValue(it) } - } - } } } } diff --git a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt index 85ec1d07..fa0a5b48 100644 --- a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt +++ b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt @@ -321,8 +321,7 @@ private class DokkaDescriptorVisitor( expectPresentInSet = sourceSet.takeIf { isExpect }, extra = PropertyContainer.withAll( descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(), - descriptor.getAnnotations().toSourceSetDependent().toAnnotations(), - ConstructorValues(descriptor.getAppliedConstructorParameters().toSourceSetDependent()) + descriptor.getAnnotations().toSourceSetDependent().toAnnotations() ) ) } diff --git a/plugins/base/src/test/kotlin/enums/EnumsTest.kt b/plugins/base/src/test/kotlin/enums/EnumsTest.kt index ee4de696..8cb9f654 100644 --- a/plugins/base/src/test/kotlin/enums/EnumsTest.kt +++ b/plugins/base/src/test/kotlin/enums/EnumsTest.kt @@ -276,52 +276,6 @@ class EnumsTest : BaseAbstractTest() { } } - @Test - fun enumWithConstructor() { - val configuration = dokkaConfiguration { - sourceSets { - sourceSet { - sourceRoots = listOf("src/") - } - } - } - - testInline( - """ - |/src/main/kotlin/basic/TestEnum.kt - |package testpackage - | - | - |enum class TestEnum(name: String, index: Int, excluded: Boolean) { - | E1("e1", 1, true), - | E2("e2", 2, false); - |} - """.trimMargin(), - configuration - ) { - documentablesTransformationStage = { m -> - m.packages.let { p -> - p.first().classlikes.let { c -> - val enum = c.first() as DEnum - val (first, second) = enum.entries.sortedBy { it.name } - - assertEquals(1, first.extra.allOfType().size) - assertEquals(1, second.extra.allOfType().size) - assertEquals(listOf(StringConstant("e1"), IntegerConstant(1), BooleanConstant(true)), first.extra.allOfType().first().values.values.first()) - assertEquals(listOf(StringConstant("e2"), IntegerConstant(2), BooleanConstant(false)), second.extra.allOfType().first().values.values.first()) - } - } - } - pagesGenerationStage = { module -> - val entryPage = module.dfs { it.name == "E1" } as ClasslikePageNode - val signaturePart = (entryPage.content.dfs { - it is ContentGroup && it.dci.toString() == "[testpackage/TestEnum.E1///PointingToDeclaration/{\"org.jetbrains.dokka.links.EnumEntryDRIExtra\":{\"key\":\"org.jetbrains.dokka.links.EnumEntryDRIExtra\"}}][Symbol]" - } as ContentGroup) - assertEquals("(\"e1\", 1, true)", signaturePart.constructorSignature()) - } - } - } - @Test fun enumWithMethods() { val configuration = dokkaConfiguration { @@ -356,8 +310,6 @@ class EnumsTest : BaseAbstractTest() { val enum = c.first { it is DEnum } as DEnum val first = enum.entries.first() - assertEquals(1, first.extra.allOfType().size) - assertEquals(emptyList(), first.extra.allOfType().first().values.values.first()) assertNotNull(first.functions.find { it.name == "toBeImplemented" }) } } @@ -414,7 +366,4 @@ class EnumsTest : BaseAbstractTest() { } } } - - private fun ContentGroup.constructorSignature(): String = - (children.single() as ContentGroup).children.drop(1).joinToString(separator = "") { (it as ContentText).text } } diff --git a/plugins/base/src/test/kotlin/signatures/SignatureTest.kt b/plugins/base/src/test/kotlin/signatures/SignatureTest.kt index 3895eede..2d17b7f8 100644 --- a/plugins/base/src/test/kotlin/signatures/SignatureTest.kt +++ b/plugins/base/src/test/kotlin/signatures/SignatureTest.kt @@ -876,7 +876,7 @@ class SignatureTest : BaseAbstractTest() { } @Test - fun `should have no empty parentheses for no-arg enum entry`() { + fun `should not expose enum constructor entry arguments`() { val writerPlugin = TestOutputWriterPlugin() testInline( @@ -905,7 +905,7 @@ class SignatureTest : BaseAbstractTest() { ) enumEntrySignatures[1].match( - A("WITH_ARG"), "(\"arg\")", + A("WITH_ARG"), ignoreSpanWithTokenStyle = true ) } -- cgit