From 718cc9060ce80af502040d426e67bf2f333ff482 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Thu, 9 Mar 2006 15:32:43 +0000 Subject: --- test/files/neg/bug85.check | 7 +------ test/files/neg/constrs.check | 18 ++++++++++++++++++ test/files/neg/constrs.scala | 19 +++++++++++++++++++ 3 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 test/files/neg/constrs.check create mode 100644 test/files/neg/constrs.scala (limited to 'test/files/neg') diff --git a/test/files/neg/bug85.check b/test/files/neg/bug85.check index 2e48792d5a..d4d56d3295 100644 --- a/test/files/neg/bug85.check +++ b/test/files/neg/bug85.check @@ -1,11 +1,6 @@ -bug85.scala:6 error: type mismatch; - found : A.this.C - required: A.this.B#C - val b: B = new B(new C()); - ^ bug85.scala:7 error: type mismatch; found : A.this.b.C required: A.this.C val c: C = b.c; ^ -two errors found +one error found diff --git a/test/files/neg/constrs.check b/test/files/neg/constrs.check new file mode 100644 index 0000000000..7b7365ea00 --- /dev/null +++ b/test/files/neg/constrs.check @@ -0,0 +1,18 @@ +constrs.scala:6 error: type T is not a member of test + def this(y: int)(z: int)(t: this.T) = { this(this.u + y + z); System.out.println(x) } + ^ +constrs.scala:6 error: value u is not a member of test + def this(y: int)(z: int)(t: this.T) = { this(this.u + y + z); System.out.println(x) } + ^ +constrs.scala:10 error: called constructor must precede calling constructor + def this() = this("abc") + ^ +constrs.scala:12 error: called constructor must precede calling constructor + def this(x: boolean) = this(x) + ^ +constrs.scala:16 error: type mismatch; + found : scala.Int(1) + required: a + def this() = this(1) + ^ +5 errors found diff --git a/test/files/neg/constrs.scala b/test/files/neg/constrs.scala new file mode 100644 index 0000000000..5c4ac071e8 --- /dev/null +++ b/test/files/neg/constrs.scala @@ -0,0 +1,19 @@ +object test { + + abstract class Test(x: int) { + type T; + val u = x; + def this(y: int)(z: int)(t: this.T) = { this(this.u + y + z); System.out.println(x) } + } + + class Foo(x: int) { + def this() = this("abc") + def this(x: String) = this(1) + def this(x: boolean) = this(x) + } + + class Bar[a](x: a) { + def this() = this(1) + } + +} -- cgit v1.2.3