From 9771a3c66e6a6e170d204ec7dbbb4ce97c323a95 Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Thu, 14 Sep 2017 14:31:23 +0300 Subject: [PATCH] JS: prove that KT-8282 is no more reproducible --- .../js/test/semantics/BoxJsTestGenerated.java | 6 +++++ .../inlineSizeReduction/varargTemporaryVar.kt | 22 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 js/js.translator/testData/box/inlineSizeReduction/varargTemporaryVar.kt diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java index 3efbaf02386..cc81d170942 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java @@ -5149,6 +5149,12 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/valDeclaration.kt"); doTest(fileName); } + + @TestMetadata("varargTemporaryVar.kt") + public void testVarargTemporaryVar() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/varargTemporaryVar.kt"); + doTest(fileName); + } } @TestMetadata("js/js.translator/testData/box/inlineStdlib") diff --git a/js/js.translator/testData/box/inlineSizeReduction/varargTemporaryVar.kt b/js/js.translator/testData/box/inlineSizeReduction/varargTemporaryVar.kt new file mode 100644 index 00000000000..38595a5832b --- /dev/null +++ b/js/js.translator/testData/box/inlineSizeReduction/varargTemporaryVar.kt @@ -0,0 +1,22 @@ +// EXPECTED_REACHABLE_NODES: 1026 +// CHECK_VARS_COUNT: function=test1 count=0 +// CHECK_VARS_COUNT: function=test2 count=0 +// CHECK_VARS_COUNT: function=test3 count=1 + +inline fun foo(vararg x: String) = x.size + +inline fun bar(vararg x: String) = x.size + x.size + +fun test1() = foo("Q", "W", "E") + +fun test2() = foo("*", "@") + +fun test3() = bar("*", "@") + +fun box(): String { + if (test1() != 3) return "fail1: ${test1()}" + if (test2() != 2) return "fail1: ${test2()}" + if (test3() != 4) return "fail1: ${test3()}" + + return "OK" +} \ No newline at end of file