From 90bed7c3b6dfe56f7475267e4b590df089030af5 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Tue, 23 May 2006 12:44:49 +0000 Subject: Clean ups fro bugs 605, 508 --- test/files/neg/bug608.check | 6 ++++++ test/files/neg/bug608.scala | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 test/files/neg/bug608.check create mode 100644 test/files/neg/bug608.scala (limited to 'test/files/neg') diff --git a/test/files/neg/bug608.check b/test/files/neg/bug608.check new file mode 100644 index 0000000000..a4b2664b58 --- /dev/null +++ b/test/files/neg/bug608.check @@ -0,0 +1,6 @@ +bug608.scala:16 error: no type parameters for method bimap: ((ha) => c)hs{override type a = c} exist so that it can be applied to arguments ((ha) => ha) + --- because --- +result type hs{override type a = c} is incompatible with expected type hs{override type s = hs; override type a = ha} + = g(f(x).bimap(id)) + ^ +one error found 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)) +} -- cgit v1.2.3