summaryrefslogtreecommitdiff
path: root/test/files/pos
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-01-13 17:42:48 +0100
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-01-27 22:42:02 -0800
commita87d40960bfdb4a683c05d3430a8874cb4dcff36 (patch)
treea65ddd00ebdee081055d982f6408cbfc34e9e62c /test/files/pos
parent02963d724c512251ce66502226408091686989ee (diff)
downloadscala-a87d40960bfdb4a683c05d3430a8874cb4dcff36.tar.gz
scala-a87d40960bfdb4a683c05d3430a8874cb4dcff36.tar.bz2
scala-a87d40960bfdb4a683c05d3430a8874cb4dcff36.zip
SI-6968 Simple Tuple patterns aren't irrefutable
Reverts part of c82ecab. The parser can't assume that a pattern `(a, b)` will match, as results of `.isInstanceOf[Tuple2]` can't be statically known until after the typer. The reopens SI-1336, SI-5589 and SI-4574, in exchange for fixing this regression SI-6968. Keeping all of those fixed will require a better definition of irrefutability, and some acrobatics to ensure safe passage to the ambiguous trees through typechecking.
Diffstat (limited to 'test/files/pos')
-rw-r--r--test/files/pos/t1336.scala10
-rw-r--r--test/files/pos/t5589.scala22
2 files changed, 0 insertions, 32 deletions
diff --git a/test/files/pos/t1336.scala b/test/files/pos/t1336.scala
deleted file mode 100644
index 63967985c7..0000000000
--- a/test/files/pos/t1336.scala
+++ /dev/null
@@ -1,10 +0,0 @@
-object Foo {
- def foreach( f : ((Int,Int)) => Unit ) {
- println("foreach")
- f(1,2)
- }
-
- for( (a,b) <- this ) {
- println((a,b))
- }
-}
diff --git a/test/files/pos/t5589.scala b/test/files/pos/t5589.scala
deleted file mode 100644
index 69cbb20391..0000000000
--- a/test/files/pos/t5589.scala
+++ /dev/null
@@ -1,22 +0,0 @@
-class A {
- // First three compile.
- def f1(x: Either[Int, String]) = x.right map (y => y)
- def f2(x: Either[Int, String]) = for (y <- x.right) yield y
- def f3(x: Either[Int, (String, Int)]) = x.right map { case (y1, y2) => (y1, y2) }
- // Last one fails.
- def f4(x: Either[Int, (String, Int)]) = for ((y1, y2) <- x.right) yield ((y1, y2))
-/**
-./a.scala:5: error: constructor cannot be instantiated to expected type;
- found : (T1, T2)
- required: Either[Nothing,(String, Int)]
- def f4(x: Either[Int, (String, Int)]) = for ((y1, y2) <- x.right) yield ((y1, y2))
- ^
-./a.scala:5: error: not found: value y1
- def f4(x: Either[Int, (String, Int)]) = for ((y1, y2) <- x.right) yield ((y1, y2))
- ^
-./a.scala:5: error: not found: value y2
- def f4(x: Either[Int, (String, Int)]) = for ((y1, y2) <- x.right) yield ((y1, y2))
- ^
-three errors found
-**/
-}