summaryrefslogtreecommitdiff
path: root/test/files/neg/t5969.scala
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@gmail.com>2012-06-27 15:43:44 +0200
committerHubert Plociniczak <hubert.plociniczak@gmail.com>2012-07-02 14:44:43 +0200
commit12b72485d873534bcce0b0564c99d89d6b1aa964 (patch)
tree35fded7d09ae48e053f580d6dff11323cd92f26e /test/files/neg/t5969.scala
parent5a7bbfe035ecb64acd57fc66ea0d874ad02c31ff (diff)
downloadscala-12b72485d873534bcce0b0564c99d89d6b1aa964.tar.gz
scala-12b72485d873534bcce0b0564c99d89d6b1aa964.tar.bz2
scala-12b72485d873534bcce0b0564c99d89d6b1aa964.zip
Closes SI-5969.
Assumption that we enter tryTwice when inferring the right alternative with an empty buffer is wrong. In this particular bug it manifested itself on if/then/else which share the same context and 'else' branch was simply flushing the buffer with an error from the 'then' branch.
Diffstat (limited to 'test/files/neg/t5969.scala')
-rw-r--r--test/files/neg/t5969.scala11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/files/neg/t5969.scala b/test/files/neg/t5969.scala
new file mode 100644
index 0000000000..62f87fd7ab
--- /dev/null
+++ b/test/files/neg/t5969.scala
@@ -0,0 +1,11 @@
+class C1
+class C2
+class A {
+ def f(x: Any) = x
+ def g(x: C1): String = "A"
+ def g(x: C2): String = "B"
+
+ def crash() = f(List[String]() flatMap { x =>
+ if (false) List(g(x)) else List[C1]() map g
+ })
+}