diff options
-rw-r--r-- | core/src/main/kotlin/Generation/DocumentationMerger.kt | 9 |
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) |