summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-11-26 23:53:26 +0000
committerPaul Phillips <paulp@improving.org>2010-11-26 23:53:26 +0000
commit72d12aabf35f699ef103d79f29f8f7b21286d94c (patch)
treed2010d12e1dcc9705a9c7ff3b1005e728c04cc16 /test
parent5be89bb3bf95f9a11773273fee5d692e4a9a7f03 (diff)
downloadscala-72d12aabf35f699ef103d79f29f8f7b21286d94c.tar.gz
scala-72d12aabf35f699ef103d79f29f8f7b21286d94c.tar.bz2
scala-72d12aabf35f699ef103d79f29f8f7b21286d94c.zip
Some work on error messages, somewhat based on ...
Some work on error messages, somewhat based on ideas in #3092. No review.
Diffstat (limited to 'test')
-rw-r--r--test/files/neg/predef-masking.check4
-rw-r--r--test/files/neg/predef-masking.scala21
-rw-r--r--test/files/neg/type-diagnostics.check6
-rw-r--r--test/files/neg/type-diagnostics.scala4
-rw-r--r--test/pending/neg/type-diagnostics.scala11
5 files changed, 45 insertions, 1 deletions
diff --git a/test/files/neg/predef-masking.check b/test/files/neg/predef-masking.check
new file mode 100644
index 0000000000..79e4dece8a
--- /dev/null
+++ b/test/files/neg/predef-masking.check
@@ -0,0 +1,4 @@
+predef-masking.scala:7: error: value + is not a member of type parameter T
+ def f[T](x: T) = x + 5
+ ^
+one error found
diff --git a/test/files/neg/predef-masking.scala b/test/files/neg/predef-masking.scala
new file mode 100644
index 0000000000..67b69aa169
--- /dev/null
+++ b/test/files/neg/predef-masking.scala
@@ -0,0 +1,21 @@
+// Testing predef masking
+import Predef.{ any2stringadd => _, _ }
+
+object StringPlusConfusion {
+ // Would love to do something about this error message, but by the
+ // time we get our hands on it the context is lost.
+ def f[T](x: T) = x + 5
+
+ // After we block out any2stringadd, the error is:
+ //
+ // work/a.scala:7: error: value + is not a member of type parameter T
+ // def f[T](x: T) = x + 5
+ // ^
+ // Normally, it is:
+ //
+ // work/a.scala:7: error: type mismatch;
+ // found : Int(5)
+ // required: String
+ // def f[T](x: T) = x + 5
+ // ^
+}
diff --git a/test/files/neg/type-diagnostics.check b/test/files/neg/type-diagnostics.check
index 33e07f3816..62d580a788 100644
--- a/test/files/neg/type-diagnostics.check
+++ b/test/files/neg/type-diagnostics.check
@@ -13,4 +13,8 @@ type-diagnostics.scala:17: error: type mismatch;
required: java.lang.String
def f2[String](s: String) = strings(List(s))
^
-three errors found
+type-diagnostics.scala:21: error: missing parameter type for expanded function
+(see SLS 8.5, "Pattern Matching Anonymous Functions")
+ val f = { case 5 => 10 }
+ ^
+four errors found
diff --git a/test/files/neg/type-diagnostics.scala b/test/files/neg/type-diagnostics.scala
index fdc0978138..fcc49812f4 100644
--- a/test/files/neg/type-diagnostics.scala
+++ b/test/files/neg/type-diagnostics.scala
@@ -16,3 +16,7 @@ object TParamConfusion {
def f2[String](s: String) = strings(List(s))
}
+
+object PartialInfer {
+ val f = { case 5 => 10 }
+} \ No newline at end of file
diff --git a/test/pending/neg/type-diagnostics.scala b/test/pending/neg/type-diagnostics.scala
new file mode 100644
index 0000000000..7f9a151dcd
--- /dev/null
+++ b/test/pending/neg/type-diagnostics.scala
@@ -0,0 +1,11 @@
+object TooManyParens {
+ def f = Map(1 -> 2).keySet()
+ //
+ // Confusion reigns!
+ //
+ // work/a.scala:27: error: not enough arguments for method apply: (elem: Int)Boolean in trait SetLike.
+ // Unspecified value parameter elem.
+ // def f = Map(1 -> 2).keySet()
+ // ^
+
+}