From 5b1906fb1337c6eb69b1c01fd1e9b68780b556e5 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Mon, 20 Apr 2015 14:32:18 +0300 Subject: [PATCH] Control-Flow: Add tests for pseudo-values of labeled expressions --- .../labeledExpression.instructions | 26 +++++++++++++++++++ .../cfg/expressions/labeledExpression.kt | 4 +++ .../cfg/expressions/labeledExpression.values | 15 +++++++++++ .../kotlin/cfg/ControlFlowTestGenerated.java | 6 +++++ .../kotlin/cfg/PseudoValueTestGenerated.java | 6 +++++ 5 files changed, 57 insertions(+) create mode 100644 compiler/testData/cfg/expressions/labeledExpression.instructions create mode 100644 compiler/testData/cfg/expressions/labeledExpression.kt create mode 100644 compiler/testData/cfg/expressions/labeledExpression.values diff --git a/compiler/testData/cfg/expressions/labeledExpression.instructions b/compiler/testData/cfg/expressions/labeledExpression.instructions new file mode 100644 index 00000000000..060efe6d18b --- /dev/null +++ b/compiler/testData/cfg/expressions/labeledExpression.instructions @@ -0,0 +1,26 @@ +== foo == +fun foo(): Int { + val t = @x (1 + 2) + return t +} +--------------------- +L0: + 1 + 2 mark({ val t = @x (1 + 2) return t }) + v(val t = @x (1 + 2)) + mark(@x (1 + 2)) + mark((1 + 2)) + r(1) -> + r(2) -> + mark(1 + 2) + call(1 + 2, plus|, ) -> + w(t|) + r(t) -> + ret(*|) L1 +L1: + 1 NEXT:[] +error: + PREV:[] +sink: + PREV:[, ] +===================== diff --git a/compiler/testData/cfg/expressions/labeledExpression.kt b/compiler/testData/cfg/expressions/labeledExpression.kt new file mode 100644 index 00000000000..5ad178fddf0 --- /dev/null +++ b/compiler/testData/cfg/expressions/labeledExpression.kt @@ -0,0 +1,4 @@ +fun foo(): Int { + val t = @x (1 + 2) + return t +} \ No newline at end of file diff --git a/compiler/testData/cfg/expressions/labeledExpression.values b/compiler/testData/cfg/expressions/labeledExpression.values new file mode 100644 index 00000000000..2276e1a1b96 --- /dev/null +++ b/compiler/testData/cfg/expressions/labeledExpression.values @@ -0,0 +1,15 @@ +== foo == +fun foo(): Int { + val t = @x (1 + 2) + return t +} +--------------------- +1 : Int NEW: r(1) -> +2 : Int NEW: r(2) -> +1 + 2 : Int NEW: call(1 + 2, plus|, ) -> +(1 + 2) : Int COPY +@x (1 + 2) : Int COPY +t : Int NEW: r(t) -> +return t !: * +{ val t = @x (1 + 2) return t } !: * COPY +===================== diff --git a/compiler/tests/org/jetbrains/kotlin/cfg/ControlFlowTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/cfg/ControlFlowTestGenerated.java index 0dbe933099c..6afaac0c804 100644 --- a/compiler/tests/org/jetbrains/kotlin/cfg/ControlFlowTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/cfg/ControlFlowTestGenerated.java @@ -508,6 +508,12 @@ public class ControlFlowTestGenerated extends AbstractControlFlowTest { doTest(fileName); } + @TestMetadata("labeledExpression.kt") + public void testLabeledExpression() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/cfg/expressions/labeledExpression.kt"); + doTest(fileName); + } + @TestMetadata("LazyBooleans.kt") public void testLazyBooleans() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/cfg/expressions/LazyBooleans.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/cfg/PseudoValueTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/cfg/PseudoValueTestGenerated.java index 3db0b299ea4..ab0622bdedd 100644 --- a/compiler/tests/org/jetbrains/kotlin/cfg/PseudoValueTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/cfg/PseudoValueTestGenerated.java @@ -510,6 +510,12 @@ public class PseudoValueTestGenerated extends AbstractPseudoValueTest { doTest(fileName); } + @TestMetadata("labeledExpression.kt") + public void testLabeledExpression() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/cfg/expressions/labeledExpression.kt"); + doTest(fileName); + } + @TestMetadata("LazyBooleans.kt") public void testLazyBooleans() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/cfg/expressions/LazyBooleans.kt");