summaryrefslogtreecommitdiff
path: root/test/files/neg
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-10-30 17:29:19 +0000
committerMartin Odersky <odersky@gmail.com>2006-10-30 17:29:19 +0000
commit7ebc41cda22ee26d4242e305782a14f7e6bf63aa (patch)
tree2ead03fe1fae2466677cdcddcbb5ac2e7c4778ed /test/files/neg
parent640ecf38b7125ff0d2c926a9a634593640cd95b1 (diff)
downloadscala-7ebc41cda22ee26d4242e305782a14f7e6bf63aa.tar.gz
scala-7ebc41cda22ee26d4242e305782a14f7e6bf63aa.tar.bz2
scala-7ebc41cda22ee26d4242e305782a14f7e6bf63aa.zip
fixed bugs 54, 415
Improved avoidance of MalformedType's
Diffstat (limited to 'test/files/neg')
-rw-r--r--test/files/neg/abstract.check10
-rw-r--r--test/files/neg/bug415.check12
-rw-r--r--test/files/neg/bug415.scala21
3 files changed, 30 insertions, 13 deletions
diff --git a/test/files/neg/abstract.check b/test/files/neg/abstract.check
index a64a5da85f..86fded0fce 100644
--- a/test/files/neg/abstract.check
+++ b/test/files/neg/abstract.check
@@ -1,19 +1,11 @@
-abstract.scala:5 error: method bar cannot be accessed in A.this.T
- because its instance type ()A.this.T#T contains a malformed type: A.this.T#T
- def foo1: A = bar().bar();
- ^
abstract.scala:6 error: type mismatch;
found : A
required: A.this.T
def foo2: T = bar().baz();
^
-abstract.scala:8 error: method bar cannot be accessed in A
- because its instance type ()A#T contains a malformed type: A#T
- def foo4: A = baz().bar();
- ^
abstract.scala:9 error: type mismatch;
found : A
required: A.this.T
def foo5: T = baz().baz();
^
-four errors found
+two errors found
diff --git a/test/files/neg/bug415.check b/test/files/neg/bug415.check
index c6c9805aa6..76dbc64bc2 100644
--- a/test/files/neg/bug415.check
+++ b/test/files/neg/bug415.check
@@ -1,5 +1,9 @@
-bug415.scala:8 error: method x cannot be accessed in A
+bug415.scala:10 error: method x cannot be accessed in A
because its instance type => A#T contains a malformed type: A#T
- val y: String = a.x;
- ^
-one error found
+ val y = a.x;
+ ^
+bug415.scala:20 error: method x cannot be accessed in A2
+ because its instance type => scala.Array[A2#T] contains a malformed type: A2#T
+ val y: Array[String] = a.x;
+ ^
+two errors found
diff --git a/test/files/neg/bug415.scala b/test/files/neg/bug415.scala
new file mode 100644
index 0000000000..ea7f89f39a
--- /dev/null
+++ b/test/files/neg/bug415.scala
@@ -0,0 +1,21 @@
+class Foo[T]
+
+abstract class A {
+ type T <: Foo[T]
+ def x: T;
+}
+
+abstract class B {
+ def a: A;
+ val y = a.x;
+}
+
+abstract class A2 {
+ type T <: String
+ def x: Array[T]
+}
+
+abstract class B2 {
+ def a: A2;
+ val y: Array[String] = a.x;
+}