diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2010-07-08 15:58:47 +0000 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2010-07-08 15:58:47 +0000 |
commit | d7814a235963f40f4de1bf49efd4b22a8b0da5db (patch) | |
tree | 7e9b127853d072b049f05e2d2376234fefc5c4ca /test/files/neg/t2416.scala | |
parent | 356abe3a5b76eb382eca6655624743aa16a001ae (diff) | |
download | scala-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.scala | 14 |
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 |