From 34a8ae166e7220ddf8c3c42fab466234623501e7 Mon Sep 17 00:00:00 2001 From: Ignat Beresnev Date: Fri, 26 Aug 2022 16:38:37 +0200 Subject: Do not render constructor pages and blocks and for annotation classes (#2642) --- .../kotlin/translators/documentables/DefaultPageCreator.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'plugins/base/src/main') diff --git a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt index 44e2728a..7f16c568 100644 --- a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt +++ b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt @@ -96,7 +96,12 @@ open class DefaultPageCreator( } } - val constructors = documentables.flatMap { if (it is WithConstructors) it.constructors else emptyList() } + val constructors = + if (documentables.shouldRenderConstructors()) { + documentables.flatMap { (it as? WithConstructors)?.constructors ?: emptyList() } + } else { + emptyList() + } val classlikes = documentables.flatMap { it.classlikes } val functions = documentables.flatMap { it.filteredFunctions } @@ -366,7 +371,7 @@ open class DefaultPageCreator( group(styles = setOf(ContentStyle.TabbedContent), sourceSets = mainSourcesetData + extensions.sourceSets) { +contentForComments(documentables) val csWithConstructor = classlikes.filterIsInstance() - if (csWithConstructor.isNotEmpty()) { + if (csWithConstructor.isNotEmpty() && documentables.shouldRenderConstructors()) { val constructorsToDocumented = csWithConstructor.flatMap { it.constructors } multiBlock( "Constructors", @@ -432,6 +437,11 @@ open class DefaultPageCreator( } } + // Annotations might have constructors to substitute reflection invocations + // and for internal/compiler purposes, but they are not expected to be documented + // and instantiated directly under normal circumstances, so constructors should not be rendered. + private fun List.shouldRenderConstructors() = !this.any { it is DAnnotation } + @Suppress("UNCHECKED_CAST") private inline fun GroupedTags.withTypeUnnamed(): SourceSetDependent = (this[T::class] as List>?)?.toMap().orEmpty() -- cgit