From db5396c1c201554c158d31b9ad655955bbc7cf97 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Mon, 13 May 2019 12:08:58 +0300 Subject: [PATCH] [JS IR BE] Fix main function detector - Do not consider extension functions as main candidate --- .../kotlin/ir/backend/js/utils/JsMainFunctionDetector.kt | 1 + js/js.translator/testData/box/main/differentMains.kt | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/JsMainFunctionDetector.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/JsMainFunctionDetector.kt index 261656dc1d0..9e3fec31d63 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/JsMainFunctionDetector.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/JsMainFunctionDetector.kt @@ -26,6 +26,7 @@ object JsMainFunctionDetector { if (!isSuitableForMainParametersSize(allowEmptyParameters)) return false if (!returnType.isUnit()) return false if (name.asString() != "main") return false + if (extensionReceiverParameter != null) return false if (valueParameters.size == 1) { val parameter = valueParameters.single() diff --git a/js/js.translator/testData/box/main/differentMains.kt b/js/js.translator/testData/box/main/differentMains.kt index b51d3005945..e4e99f77431 100644 --- a/js/js.translator/testData/box/main/differentMains.kt +++ b/js/js.translator/testData/box/main/differentMains.kt @@ -20,4 +20,8 @@ fun main(args: Array): Unit? { return Unit } +fun Any.main(args: Array) { + ok += "Fail Any.main(...)" +} + fun box() = ok \ No newline at end of file