diff options
author | Paul Phillips <paulp@improving.org> | 2012-03-19 18:26:55 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-03-19 20:13:36 -0700 |
commit | c82ecabad6fc050411495f3fd50c3bf79ac7e96e (patch) | |
tree | e6498f4f2843bd14e16de365079601093af1abb5 /test/files/neg/t5589neg.check | |
parent | 4f565de67fcaf3818c1bcbe204e254014077e1de (diff) | |
download | scala-c82ecabad6fc050411495f3fd50c3bf79ac7e96e.tar.gz scala-c82ecabad6fc050411495f3fd50c3bf79ac7e96e.tar.bz2 scala-c82ecabad6fc050411495f3fd50c3bf79ac7e96e.zip |
Finally did something about broken irrefutability.
The parser has always been confused about tuple patterns in
for comprehensions. It thinks it can fail to recognize an
irrefutable pattern and have it removed in refchecks, but it
is sadly mistaken, because the unnecessary filter has a tendency
to fail the compile in typer.
Look more intently for irrefutable patterns and don't insert
the unnecessary filter. Closes SI-5589, SI-1336.
Diffstat (limited to 'test/files/neg/t5589neg.check')
-rw-r--r-- | test/files/neg/t5589neg.check | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/files/neg/t5589neg.check b/test/files/neg/t5589neg.check new file mode 100644 index 0000000000..e75fd2f4f7 --- /dev/null +++ b/test/files/neg/t5589neg.check @@ -0,0 +1,30 @@ +t5589neg.scala:24: error: constructor cannot be instantiated to expected type; + found : (T1, T2) + required: String + def f5(x: Either[Int, String]) = for ((y1, y2: String) <- x.right) yield ((y1, y2)) + ^ +t5589neg.scala:25: error: constructor cannot be instantiated to expected type; + found : (T1, T2) + required: String + def f6(x: Either[Int, String]) = for ((y1, y2: Any) <- x.right) yield ((y1, y2)) + ^ +t5589neg.scala:26: error: constructor cannot be instantiated to expected type; + found : (T1,) + required: (String, Int) + def f7(x: Either[Int, (String, Int)]) = for (y1 @ Tuple1(y2) <- x.right) yield ((y1, y2)) + ^ +t5589neg.scala:26: error: not found: value y2 + def f7(x: Either[Int, (String, Int)]) = for (y1 @ Tuple1(y2) <- x.right) yield ((y1, y2)) + ^ +t5589neg.scala:27: error: constructor cannot be instantiated to expected type; + found : (T1, T2, T3) + required: (String, Int) + def f8(x: Either[Int, (String, Int)]) = for ((y1, y2, y3) <- x.right) yield ((y1, y2)) + ^ +t5589neg.scala:27: error: not found: value y1 + def f8(x: Either[Int, (String, Int)]) = for ((y1, y2, y3) <- x.right) yield ((y1, y2)) + ^ +t5589neg.scala:27: error: not found: value y2 + def f8(x: Either[Int, (String, Int)]) = for ((y1, y2, y3) <- x.right) yield ((y1, y2)) + ^ +7 errors found |