From aa35d4ed361dbb1c24e9802d4f6b854879e395aa Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Thu, 14 Sep 2017 14:15:50 +0300 Subject: [PATCH] JS: prove that KT-8315 is no more reproducible --- .../js/test/semantics/BoxJsTestGenerated.java | 6 ++++++ .../testData/box/number/incDecOptimization.kt | 20 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 js/js.translator/testData/box/number/incDecOptimization.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 a04a3a63af5..3efbaf02386 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 @@ -6644,6 +6644,12 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { doTest(fileName); } + @TestMetadata("incDecOptimization.kt") + public void testIncDecOptimization() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/number/incDecOptimization.kt"); + doTest(fileName); + } + @TestMetadata("intConversions.kt") public void testIntConversions() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/number/intConversions.kt"); diff --git a/js/js.translator/testData/box/number/incDecOptimization.kt b/js/js.translator/testData/box/number/incDecOptimization.kt new file mode 100644 index 00000000000..8b31c9d37c4 --- /dev/null +++ b/js/js.translator/testData/box/number/incDecOptimization.kt @@ -0,0 +1,20 @@ +// EXPECTED_REACHABLE_NODES: 1029 +// CHECK_VARS_COUNT: function=test count=1 + +class A { + var i = 23 +} + +fun test(a: A): String { + var x = ++a.i + if (x != 24) return "fail1: $x" + + a.i++ + if (a.i != 25) return "fail2: $a.i" + + // a.i++, used as expression, requires temporary variable + + return "OK" +} + +fun box(): String = test(A()) \ No newline at end of file