summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-04-30 20:01:25 +0000
committerPaul Phillips <paulp@improving.org>2011-04-30 20:01:25 +0000
commitb4749d3b1afb1df236ec48fd3a773aab24a6f74d (patch)
tree81792bd4de8dfb8c2beb6ad1418880947fb6e371 /test/files
parent793796eee0769926a3162d69dd23c282ca2d8ba4 (diff)
downloadscala-b4749d3b1afb1df236ec48fd3a773aab24a6f74d.tar.gz
scala-b4749d3b1afb1df236ec48fd3a773aab24a6f74d.tar.bz2
scala-b4749d3b1afb1df236ec48fd3a773aab24a6f74d.zip
Completely to my surprise, found that fixing al...
Completely to my surprise, found that fixing all those sequence issues revealed that the pattern matcher can catch a lot more inexhaustive cases than it has been catching. Fixed most of the inexhaustive matches in the compiler, which had become a bit warnier. No review.
Diffstat (limited to 'test/files')
-rw-r--r--test/files/neg/exhausting.check6
-rw-r--r--test/files/neg/patmatexhaust.check25
-rw-r--r--test/files/neg/patmatexhaust.flags1
-rw-r--r--test/files/neg/patmatexhaust.scala6
4 files changed, 17 insertions, 21 deletions
diff --git a/test/files/neg/exhausting.check b/test/files/neg/exhausting.check
index d3f2251f79..0bef21e077 100644
--- a/test/files/neg/exhausting.check
+++ b/test/files/neg/exhausting.check
@@ -2,7 +2,7 @@ exhausting.scala:20: error: match is not exhaustive!
missing combination * Nil
def fail1[T](xs: List[T]) = xs match {
- ^
+ ^
exhausting.scala:24: error: match is not exhaustive!
missing combination Nil
@@ -17,7 +17,7 @@ exhausting.scala:31: error: match is not exhaustive!
missing combination Bar2 Bar2
def fail4[T <: AnyRef](xx: (Foo[T], Foo[T])) = xx match {
- ^
+ ^
exhausting.scala:36: error: match is not exhaustive!
missing combination Bar1 Bar2
missing combination Bar1 Bar3
@@ -25,5 +25,5 @@ missing combination Bar2 Bar1
missing combination Bar2 Bar2
def fail5[T](xx: (Foo[T], Foo[T])) = xx match {
- ^
+ ^
5 errors found
diff --git a/test/files/neg/patmatexhaust.check b/test/files/neg/patmatexhaust.check
index 83c4279b0a..8aa9238d2e 100644
--- a/test/files/neg/patmatexhaust.check
+++ b/test/files/neg/patmatexhaust.check
@@ -1,37 +1,38 @@
-patmatexhaust.scala:7: warning: match is not exhaustive!
+patmatexhaust.scala:7: error: match is not exhaustive!
missing combination Baz
def ma1(x:Foo) = x match {
^
-patmatexhaust.scala:11: warning: match is not exhaustive!
+patmatexhaust.scala:11: error: match is not exhaustive!
missing combination Bar
def ma2(x:Foo) = x match {
^
-patmatexhaust.scala:23: warning: match is not exhaustive!
+patmatexhaust.scala:23: error: match is not exhaustive!
missing combination Kult Kult
missing combination Qult Qult
def ma3(x:Mult) = (x,x) match { // not exhaustive
- ^
-patmatexhaust.scala:49: warning: match is not exhaustive!
+ ^
+patmatexhaust.scala:49: error: match is not exhaustive!
missing combination Gp
missing combination Gu
def ma4(x:Deep) = x match { // missing cases: Gu, Gp
^
-patmatexhaust.scala:53: warning: match is not exhaustive!
+patmatexhaust.scala:53: error: match is not exhaustive!
missing combination Gp
def ma5(x:Deep) = x match { // Gp
^
-patmatexhaust.scala:75: warning: match is not exhaustive!
+patmatexhaust.scala:59: error: match is not exhaustive!
+missing combination Nil
+
+ def ma6() = List(1,2) match { // give up
+ ^
+patmatexhaust.scala:75: error: match is not exhaustive!
missing combination B
def ma9(x: B) = x match {
^
-patmatexhaust.scala:92: error: unreachable code
- case 1 =>
- ^
-6 warnings found
-one error found
+7 errors found
diff --git a/test/files/neg/patmatexhaust.flags b/test/files/neg/patmatexhaust.flags
new file mode 100644
index 0000000000..e8fb65d50c
--- /dev/null
+++ b/test/files/neg/patmatexhaust.flags
@@ -0,0 +1 @@
+-Xfatal-warnings \ No newline at end of file
diff --git a/test/files/neg/patmatexhaust.scala b/test/files/neg/patmatexhaust.scala
index 4a66649a18..d49c4b207b 100644
--- a/test/files/neg/patmatexhaust.scala
+++ b/test/files/neg/patmatexhaust.scala
@@ -86,10 +86,4 @@ class TestSealedExhaustive { // compile only
case C4() => true
case C2 | C6 => true
}
-
- def redundant() = 1 match { // include this otherwise script won't test this in files/neg
- case 1 =>
- case 1 =>
- }
-
}