summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2013-04-04 16:51:41 -0700
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-04-08 23:01:09 -0700
commite7aadd00392a512ddcf53396d489f0f17bfac231 (patch)
treeff62223bed6f9beafd97bd8bbb383adff5c54e8e /test
parent53e031f55386d131b1aaa5fb93ee1a3ac6bce646 (diff)
downloadscala-e7aadd00392a512ddcf53396d489f0f17bfac231.tar.gz
scala-e7aadd00392a512ddcf53396d489f0f17bfac231.tar.bz2
scala-e7aadd00392a512ddcf53396d489f0f17bfac231.zip
SI-7330 better error when pattern isn't a value
Somehow an applied type managed to sneak past the type checker in pattern mode. Patterns must be values, though. `case C[_] =>` was probably meant to be `case _: C[_] =>` Advice is dispensed accordingly. (Generalizing the existing advice machinery.)
Diffstat (limited to 'test')
-rw-r--r--test/files/neg/t414.check2
-rw-r--r--test/files/neg/t4879.check4
-rw-r--r--test/files/neg/t7330.check5
-rw-r--r--test/files/neg/t7330.scala5
4 files changed, 13 insertions, 3 deletions
diff --git a/test/files/neg/t414.check b/test/files/neg/t414.check
index e15dbaea71..30211eef8e 100644
--- a/test/files/neg/t414.check
+++ b/test/files/neg/t414.check
@@ -1,7 +1,7 @@
t414.scala:5: error: pattern type is incompatible with expected type;
found : Empty.type
required: IntMap[a]
-Note: if you intended to match against the class, try `case _: Empty[_]` or `case Empty()`
+Note: if you intended to match against the class, try `case Empty()`
case Empty =>
^
t414.scala:7: error: type mismatch;
diff --git a/test/files/neg/t4879.check b/test/files/neg/t4879.check
index 21cd329640..c7edd583c8 100644
--- a/test/files/neg/t4879.check
+++ b/test/files/neg/t4879.check
@@ -1,13 +1,13 @@
t4879.scala:6: error: pattern type is incompatible with expected type;
found : C.type
required: C
-Note: if you intended to match against the class, try `case _: C` or `case C(_)`
+Note: if you intended to match against the class, try `case C(_)`
case C => true
^
t4879.scala:10: error: pattern type is incompatible with expected type;
found : D.type
required: D[T,U,V]
-Note: if you intended to match against the class, try `case _: D[_,_,_]` or `case D(_,_,_)`
+Note: if you intended to match against the class, try `case D(_,_,_)`
case D => true
^
two errors found
diff --git a/test/files/neg/t7330.check b/test/files/neg/t7330.check
new file mode 100644
index 0000000000..b96d656d2b
--- /dev/null
+++ b/test/files/neg/t7330.check
@@ -0,0 +1,5 @@
+t7330.scala:4: error: pattern must be a value: Y[_]
+Note: if you intended to match against the class, try `case _: Y[_]`
+ 0 match { case Y[_] => }
+ ^
+one error found
diff --git a/test/files/neg/t7330.scala b/test/files/neg/t7330.scala
new file mode 100644
index 0000000000..13a943a02b
--- /dev/null
+++ b/test/files/neg/t7330.scala
@@ -0,0 +1,5 @@
+class Y[T]
+class Test {
+ // TypeTree is not a valid tree for a pattern
+ 0 match { case Y[_] => }
+} \ No newline at end of file