From 49b7b776757113139fb7aed9c8959276d844b09b Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Mon, 24 Sep 2018 21:52:22 +0300 Subject: Get rid of duplicated items with set of platform < than common --- core/src/main/kotlin/Generation/DocumentationMerger.kt | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'core') 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 { + 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) -- cgit