summaryrefslogtreecommitdiff
path: root/test/files/neg/bug608.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-05-23 12:44:49 +0000
committerMartin Odersky <odersky@gmail.com>2006-05-23 12:44:49 +0000
commit90bed7c3b6dfe56f7475267e4b590df089030af5 (patch)
tree3112f65a64122f09af82dbc1ed9c815b2e6bc947 /test/files/neg/bug608.scala
parent911ce1e4a590ac40282857d7889aa297a211b588 (diff)
downloadscala-90bed7c3b6dfe56f7475267e4b590df089030af5.tar.gz
scala-90bed7c3b6dfe56f7475267e4b590df089030af5.tar.bz2
scala-90bed7c3b6dfe56f7475267e4b590df089030af5.zip
Clean ups fro bugs 605, 508
Diffstat (limited to 'test/files/neg/bug608.scala')
-rw-r--r--test/files/neg/bug608.scala17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/files/neg/bug608.scala b/test/files/neg/bug608.scala
new file mode 100644
index 0000000000..24f515651a
--- /dev/null
+++ b/test/files/neg/bug608.scala
@@ -0,0 +1,17 @@
+trait CrashDueToTypeError {
+ def id[a](x :a) :a = x
+
+ trait Bifunctor {
+ type a; // content
+ type s <: Bifunctor
+
+ // uncomment this-vvvvvvvvvvvvvvvvvvvvvvvvvvvv, and it compiles
+ def bimap[c](f :a=>c) :s{/*type s=Bifunctor.this.s;*/type a=c; }
+ }
+
+ def hylo[hs <: Bifunctor,ha,hb,hc]
+ (f :hb=>hs{type s=hs; type a=ha},
+ g :hs{type s=hs; type a=ha}=>hc)(x :hb)
+ :hc
+ = g(f(x).bimap(id))
+}