From 9b47a321d5650ec3215ee907418deac16896ed09 Mon Sep 17 00:00:00 2001 From: Anton Bannykh Date: Mon, 6 Dec 2021 11:13:27 +0300 Subject: [PATCH] [JS IR] assert there are no clashing declarations --- .../ir/backend/js/transformers/irToJs/Merger.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/Merger.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/Merger.kt index 56f2ff53e69..e805660c6bd 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/Merger.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/Merger.kt @@ -115,7 +115,20 @@ class Merger( return rootNode } + private fun assertSingleDefinition() { + val definitions = mutableSetOf() + fragments.forEach { + it.definitions.forEach { + if (!definitions.add(it)) { + error("Clashing definitions with tag '$it'") + } + } + } + } + fun merge(): JsProgram { + assertSingleDefinition() + linkJsNames() val moduleBody = mutableListOf().also {