summaryrefslogtreecommitdiff
path: root/test/files/neg/t2416.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2010-07-08 15:58:47 +0000
committerAdriaan Moors <adriaan.moors@epfl.ch>2010-07-08 15:58:47 +0000
commitd7814a235963f40f4de1bf49efd4b22a8b0da5db (patch)
tree7e9b127853d072b049f05e2d2376234fefc5c4ca /test/files/neg/t2416.scala
parent356abe3a5b76eb382eca6655624743aa16a001ae (diff)
downloadscala-d7814a235963f40f4de1bf49efd4b22a8b0da5db.tar.gz
scala-d7814a235963f40f4de1bf49efd4b22a8b0da5db.tar.bz2
scala-d7814a235963f40f4de1bf49efd4b22a8b0da5db.zip
closes #2416.
this patch introduces a new subclass of TypeTree: TypeTreeWithDeferredRefCheck, which tracks the type args and type params of a type application when it was beta-reduced during typing without checking that the application was well-kinded -- that check must wait until refchecks, but was never performed since the application had been beta-reduced away caveat discovered while working on the fix: adapt turned all trees for which _.isType holds into TypeTree's review by odersky
Diffstat (limited to 'test/files/neg/t2416.scala')
-rw-r--r--test/files/neg/t2416.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/files/neg/t2416.scala b/test/files/neg/t2416.scala
new file mode 100644
index 0000000000..6bb57a984b
--- /dev/null
+++ b/test/files/neg/t2416.scala
@@ -0,0 +1,14 @@
+object t2416a {
+ trait A[X <: Double] { type B = X }
+ def x : A[Int]#B = 10 // no you won't
+}
+
+object t2416b {
+ trait A{type B[Y <: Double] = Int}
+ def x : A#B[Boolean] = 10 // seriously?
+}
+
+object t2416c {
+ trait A{type B[Z <: Double] = Int}
+ type C[Z <: A] = Z#B[String] // nuh-uh!
+} \ No newline at end of file