summaryrefslogtreecommitdiff
path: root/test/files/neg/abstract-class-2.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-04-28 16:23:45 +0000
committerPaul Phillips <paulp@improving.org>2011-04-28 16:23:45 +0000
commit199ec3c10fe7d2b2029ea8ae6a19240b46181435 (patch)
treef0e7b14111510f19bf89874d3073adf767d16054 /test/files/neg/abstract-class-2.scala
parent9a9f73b80261415e08eb782333470bbb84863894 (diff)
downloadscala-199ec3c10fe7d2b2029ea8ae6a19240b46181435.tar.gz
scala-199ec3c10fe7d2b2029ea8ae6a19240b46181435.tar.bz2
scala-199ec3c10fe7d2b2029ea8ae6a19240b46181435.zip
Improved the error message for another of the m...
Improved the error message for another of the most common situations I hear about in newbieland. It could be taken further. If compilation fails due to an unimplemented abstract method, and there is a concrete method of the same name and arity, it will do a pairwise analysis of the parameters and attempt to further explain where you went off the beam if it feels it can do so sensibly. Such as in the test case: % scalac S.scala S.scala:1: error: class S needs to be abstract, since method g in class J of type (y: Int,z: java.util.List)Int is not defined (Note that java.util.List does not match java.util.List[String]. To implement a raw type, use java.util.List[_]) class S extends J { ^ one error found No review.
Diffstat (limited to 'test/files/neg/abstract-class-2.scala')
-rw-r--r--test/files/neg/abstract-class-2.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/files/neg/abstract-class-2.scala b/test/files/neg/abstract-class-2.scala
new file mode 100644
index 0000000000..19f74f3da6
--- /dev/null
+++ b/test/files/neg/abstract-class-2.scala
@@ -0,0 +1,14 @@
+class P {
+ trait S1
+ val p = new P
+
+ trait S2 {
+ def f(x: p.S1): Int
+ }
+}
+
+class P2 extends P {
+ object O2 extends S2 {
+ def f(x: S1) = 5
+ }
+}