diff options
author | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-02-19 15:31:15 +0100 |
---|---|---|
committer | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-02-19 15:31:15 +0100 |
commit | e26fd721b9d4f902be68a93836e21e05ddbda931 (patch) | |
tree | c6f3f998b6705161464eec8a44a50fe508d1583e /test/files | |
parent | 3973f29cec9f06724941b68577908f546341c45e (diff) | |
download | scala-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.flags | 1 | ||||
-rw-r--r-- | test/files/pos/t8306.scala | 8 |
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 + } +} |