aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/main/kotlin/Generation/DocumentationMerger.kt9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/src/main/kotlin/Generation/DocumentationMerger.kt b/core/src/main/kotlin/Generation/DocumentationMerger.kt
index 3be6be83..f6280fb9 100644
--- a/core/src/main/kotlin/Generation/DocumentationMerger.kt
+++ b/core/src/main/kotlin/Generation/DocumentationMerger.kt
@@ -120,11 +120,20 @@ class DocumentationMerger(
signature: String,
nodes: List<DocumentationNode>
): DocumentationNode {
+ require(nodes.isNotEmpty())
+
val singleNode = nodes.singleOrNull()
if (singleNode != null) {
singleNode.dropReferences { it.kind == RefKind.Owner }
return singleNode
}
+ val nodeWithMaxPlatforms = nodes.maxBy { it.platforms.size }!!
+ val maxPlatforms = nodeWithMaxPlatforms.platforms.toSet()
+ val notContained = nodes.filterNot { maxPlatforms.containsAll(it.platforms) }
+ val reducedDuplicates = notContained + nodeWithMaxPlatforms
+ if (!reducedDuplicates.containsAll(nodes)) {
+ return mergeMembersWithEqualSignature(signature, reducedDuplicates)
+ }
val groupNode = DocumentationNode(nodes.first().name, Content.Empty, NodeKind.GroupNode)
groupNode.appendTextNode(signature, NodeKind.Signature, RefKind.Detail)