summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2014-02-19 15:31:15 +0100
committerGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2014-02-19 15:31:15 +0100
commite26fd721b9d4f902be68a93836e21e05ddbda931 (patch)
treec6f3f998b6705161464eec8a44a50fe508d1583e /test/files
parent3973f29cec9f06724941b68577908f546341c45e (diff)
downloadscala-e26fd721b9d4f902be68a93836e21e05ddbda931.tar.gz
scala-e26fd721b9d4f902be68a93836e21e05ddbda931.tar.bz2
scala-e26fd721b9d4f902be68a93836e21e05ddbda931.zip
SI-8306: handle SWITCH nodes with just default case
Handle properly SWITCH nodes that contain just a default case in optimizer (ConstantOptimization). SWITCH with just default case is expressed as a node with empty tags and exactly one label. We can handle such nodes easily by introducing a shortcut in logic that computes reachableLabels. Add a test case which triggers patmat to generate SWITCH node with just a default case. Fixes SI-8306.
Diffstat (limited to 'test/files')
-rw-r--r--test/files/pos/t8306.flags1
-rw-r--r--test/files/pos/t8306.scala8
2 files changed, 9 insertions, 0 deletions
diff --git a/test/files/pos/t8306.flags b/test/files/pos/t8306.flags
new file mode 100644
index 0000000000..49d036a887
--- /dev/null
+++ b/test/files/pos/t8306.flags
@@ -0,0 +1 @@
+-optimize
diff --git a/test/files/pos/t8306.scala b/test/files/pos/t8306.scala
new file mode 100644
index 0000000000..e04b054eb9
--- /dev/null
+++ b/test/files/pos/t8306.scala
@@ -0,0 +1,8 @@
+class Si8306 {
+ def foo: Int = 123
+ lazy val extension: Int =
+ foo match {
+ case idx if idx != -1 => 15
+ case _ => 17
+ }
+}