summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2012-07-13 14:13:50 +0200
committerAdriaan Moors <adriaan.moors@epfl.ch>2012-07-14 14:53:25 +0200
commit4276f61551b89162001dadbb3b77f29a85c19c4a (patch)
treec8bd6f02310fd656a5aaaa7514614180c8deeb79 /test
parent6f3c6e6ebdde463d2e319f75cd10bd6a796f59c0 (diff)
downloadscala-4276f61551b89162001dadbb3b77f29a85c19c4a.tar.gz
scala-4276f61551b89162001dadbb3b77f29a85c19c4a.tar.bz2
scala-4276f61551b89162001dadbb3b77f29a85c19c4a.zip
SI-6077 more conservative TreeMakersToConds for CSE
we were dropping irrefutable extractor calls (implemented for SI-4691) in common subcondition elimination, which caused bad code to be generated clean up TreeMakersToConds significantly in the process
Diffstat (limited to 'test')
-rw-r--r--test/files/run/t6077_patmat_cse_irrefutable.check1
-rw-r--r--test/files/run/t6077_patmat_cse_irrefutable.scala13
2 files changed, 14 insertions, 0 deletions
diff --git a/test/files/run/t6077_patmat_cse_irrefutable.check b/test/files/run/t6077_patmat_cse_irrefutable.check
new file mode 100644
index 0000000000..9766475a41
--- /dev/null
+++ b/test/files/run/t6077_patmat_cse_irrefutable.check
@@ -0,0 +1 @@
+ok
diff --git a/test/files/run/t6077_patmat_cse_irrefutable.scala b/test/files/run/t6077_patmat_cse_irrefutable.scala
new file mode 100644
index 0000000000..b130ae7813
--- /dev/null
+++ b/test/files/run/t6077_patmat_cse_irrefutable.scala
@@ -0,0 +1,13 @@
+class LiteralNode(val value: Any)
+
+object LiteralNode {
+ // irrefutable
+ def unapply(n: LiteralNode) = Some(n.value)
+}
+
+object Test extends App {
+ ((new LiteralNode(false)): Any) match {
+ case LiteralNode(true) => println("uh-oh")
+ case LiteralNode(false) => println("ok")
+ }
+} \ No newline at end of file