From d3f33a44f8644b757d378fc9e13f7035ced874b0 Mon Sep 17 00:00:00 2001 From: Gilles Dubochet Date: Fri, 27 Jul 2007 12:31:09 +0000 Subject: Added test for structural refinement error cases. --- test/files/neg/structural.check | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 test/files/neg/structural.check (limited to 'test/files/neg/structural.check') diff --git a/test/files/neg/structural.check b/test/files/neg/structural.check new file mode 100644 index 0000000000..a0342c4d9c --- /dev/null +++ b/test/files/neg/structural.check @@ -0,0 +1,19 @@ +structural.scala:3: error: illegal dependent method type + def f(x: { type D; def m: D }) = x.m + ^ +structural.scala:10: error: Parameter type in structural refinement may not refer to abstract type defined outside that same refinement + def f1[C <: AnyRef](x: AnyRef{ type D <: AnyRef; def m[E >: Null <: AnyRef](x: A): AnyRef; val x: A }) = x.m[Tata](x.x) //fail + ^ +structural.scala:11: error: Parameter type in structural refinement may not refer to abstract type defined outside that same refinement + def f2[C <: AnyRef](x: AnyRef{ type D <: AnyRef; def m[E >: Null <: AnyRef](x: B): AnyRef; val x: B }) = x.m[Tata](x.x) //fail + ^ +structural.scala:12: error: Parameter type in structural refinement may not refer to abstract type defined outside that same refinement + def f3[C <: AnyRef](x: AnyRef{ type D <: AnyRef; def m[E >: Null <: AnyRef](x: C): AnyRef; val x: C }) = x.m[Tata](x.x) //fail + ^ +structural.scala:19: error: illegal dependent method type + def f9[C <: AnyRef](x: AnyRef{ type D <: AnyRef; def m[E >: Null <: AnyRef](x: AnyRef): D }) = x.m[Tata](()) //suceed + ^ +structural.scala:42: error: Parameter type in structural refinement may not refer to abstract type defined outside that same refinement + type Summable[T] = { def +(v : T) : T } + ^ +6 errors found -- cgit v1.2.3