summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2010-08-14 08:19:56 +0000
committerAdriaan Moors <adriaan.moors@epfl.ch>2010-08-14 08:19:56 +0000
commit72c11c60b14685648b2bf3d6b5a6a6230323f099 (patch)
tree12315a82428d4fcf8f9414af06b05a05d55c5697 /test/files
parentd0f20624930e529f327ebc83cf2c042056cabb7f (diff)
downloadscala-72c11c60b14685648b2bf3d6b5a6a6230323f099.tar.gz
scala-72c11c60b14685648b2bf3d6b5a6a6230323f099.tar.bz2
scala-72c11c60b14685648b2bf3d6b5a6a6230323f099.zip
closes #3691.
TODO: clean this up, introduce datatypes to denote kinds, split checkKindBounds into kind inference and subkind checking review by odersky
Diffstat (limited to 'test/files')
-rw-r--r--test/files/neg/t3691.check16
-rw-r--r--test/files/neg/t3691.scala11
2 files changed, 27 insertions, 0 deletions
diff --git a/test/files/neg/t3691.check b/test/files/neg/t3691.check
new file mode 100644
index 0000000000..1b548cc84d
--- /dev/null
+++ b/test/files/neg/t3691.check
@@ -0,0 +1,16 @@
+t3691.scala:4: error: type mismatch;
+ found : java.lang.Object with Test.A[String]
+ required: AnyRef{type A[x]}
+ val b = (new A[String]{}): { type A[x] } // not ok
+ ^
+t3691.scala:5: error: type mismatch;
+ found : java.lang.Object with Test.A[String]
+ required: AnyRef{type A}
+ val c = (new A[String]{}): { type A } // not ok
+ ^
+t3691.scala:7: error: type mismatch;
+ found : java.lang.Object{type A = String}
+ required: AnyRef{type A[X]}
+ val x = (new { type A = String }): { type A[X] } // not ok
+ ^
+three errors found
diff --git a/test/files/neg/t3691.scala b/test/files/neg/t3691.scala
new file mode 100644
index 0000000000..69e8bef630
--- /dev/null
+++ b/test/files/neg/t3691.scala
@@ -0,0 +1,11 @@
+object Test {
+ trait A[X] { type A[x <: X] = x }
+ val a = (new A[String]{}): { type A[x <: String] } // ok
+ val b = (new A[String]{}): { type A[x] } // not ok
+ val c = (new A[String]{}): { type A } // not ok
+
+ val x = (new { type A = String }): { type A[X] } // not ok
+//a: AnyRef{type A[X]}
+
+ identity[x.A[Any]] _
+} \ No newline at end of file