From 1b77651f90d9b4132e419409295f0d3c6153cf41 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Mon, 15 Sep 2003 20:10:24 +0000 Subject: *** empty log message *** --- test/files/neg/bug105.check | 4 ++++ test/files/neg/bug105.scala | 1 + test/files/neg/bug106.check | 4 ++++ test/files/neg/bug106.scala | 2 ++ test/files/neg/bug107.check | 4 ++++ test/files/neg/bug107.scala | 8 ++++++++ test/files/neg/bug108.check | 4 ++++ test/files/neg/bug112.check | 4 ++++ test/files/neg/bug112.scala | 7 +++++++ test/files/neg/bug113.check | 7 +++++++ test/files/neg/bug113.scala | 4 ++++ test/files/neg/bug117.check | 10 ++++++++++ test/files/neg/bug117.scala | 5 +++++ test/files/neg/bug118.check | 4 ++++ test/files/neg/bug118.scala | 6 ++++++ test/files/neg/bug122.check | 7 +++++++ test/files/neg/bug122.scala | 4 ++++ test/files/neg/overload.check | 19 +++++++++++++++++++ test/files/neg/overload.scala | 17 +++++++++++++++++ test/files/pos/bug119.scala | 7 +++++++ test/files/pos/bug123.scala | 3 +++ test/files/pos/bug124.scala | 5 +++++ test/files/pos/bug32.scala | 17 +++++++++++++++++ test/files/pos/rebind.scala | 13 +++++++++++++ test/neg/bug105.check | 4 ++++ test/neg/bug105.scala | 1 + test/neg/bug106.check | 4 ++++ test/neg/bug106.scala | 2 ++ test/neg/bug107.check | 4 ++++ test/neg/bug107.scala | 8 ++++++++ test/neg/bug108.check | 4 ++++ test/neg/bug112.check | 4 ++++ test/neg/bug112.scala | 7 +++++++ test/neg/bug113.check | 7 +++++++ test/neg/bug113.scala | 4 ++++ test/neg/bug117.check | 10 ++++++++++ test/neg/bug117.scala | 5 +++++ test/neg/bug118.check | 4 ++++ test/neg/bug118.scala | 6 ++++++ test/neg/bug122.check | 7 +++++++ test/neg/bug122.scala | 4 ++++ test/neg/overload.check | 19 +++++++++++++++++++ test/neg/overload.scala | 17 +++++++++++++++++ test/pos/bug119.scala | 7 +++++++ test/pos/bug123.scala | 3 +++ test/pos/bug124.scala | 5 +++++ test/pos/bug32.scala | 17 +++++++++++++++++ test/pos/rebind.scala | 13 +++++++++++++ 48 files changed, 332 insertions(+) create mode 100644 test/files/neg/bug105.check create mode 100644 test/files/neg/bug105.scala create mode 100644 test/files/neg/bug106.check create mode 100644 test/files/neg/bug106.scala create mode 100644 test/files/neg/bug107.check create mode 100644 test/files/neg/bug107.scala create mode 100644 test/files/neg/bug108.check create mode 100644 test/files/neg/bug112.check create mode 100644 test/files/neg/bug112.scala create mode 100644 test/files/neg/bug113.check create mode 100644 test/files/neg/bug113.scala create mode 100644 test/files/neg/bug117.check create mode 100644 test/files/neg/bug117.scala create mode 100644 test/files/neg/bug118.check create mode 100644 test/files/neg/bug118.scala create mode 100644 test/files/neg/bug122.check create mode 100644 test/files/neg/bug122.scala create mode 100644 test/files/neg/overload.check create mode 100644 test/files/neg/overload.scala create mode 100644 test/files/pos/bug119.scala create mode 100644 test/files/pos/bug123.scala create mode 100644 test/files/pos/bug124.scala create mode 100644 test/files/pos/bug32.scala create mode 100644 test/files/pos/rebind.scala create mode 100644 test/neg/bug105.check create mode 100644 test/neg/bug105.scala create mode 100644 test/neg/bug106.check create mode 100644 test/neg/bug106.scala create mode 100644 test/neg/bug107.check create mode 100644 test/neg/bug107.scala create mode 100644 test/neg/bug108.check create mode 100644 test/neg/bug112.check create mode 100644 test/neg/bug112.scala create mode 100644 test/neg/bug113.check create mode 100644 test/neg/bug113.scala create mode 100644 test/neg/bug117.check create mode 100644 test/neg/bug117.scala create mode 100644 test/neg/bug118.check create mode 100644 test/neg/bug118.scala create mode 100644 test/neg/bug122.check create mode 100644 test/neg/bug122.scala create mode 100644 test/neg/overload.check create mode 100644 test/neg/overload.scala create mode 100644 test/pos/bug119.scala create mode 100644 test/pos/bug123.scala create mode 100644 test/pos/bug124.scala create mode 100644 test/pos/bug32.scala create mode 100644 test/pos/rebind.scala (limited to 'test') diff --git a/test/files/neg/bug105.check b/test/files/neg/bug105.check new file mode 100644 index 0000000000..d0a980053a --- /dev/null +++ b/test/files/neg/bug105.check @@ -0,0 +1,4 @@ +bug105.scala:1: illegal inheritance from sealed class +object T extends Array[Int](1); + ^ +one error found diff --git a/test/files/neg/bug105.scala b/test/files/neg/bug105.scala new file mode 100644 index 0000000000..08a7b2ac5b --- /dev/null +++ b/test/files/neg/bug105.scala @@ -0,0 +1 @@ +object T extends Array[Int](1); diff --git a/test/files/neg/bug106.check b/test/files/neg/bug106.check new file mode 100644 index 0000000000..b55e37ce3c --- /dev/null +++ b/test/files/neg/bug106.check @@ -0,0 +1,4 @@ +bug106.scala:2: Java class may not be used as mixin +class S extends T with Object; + ^ +one error found diff --git a/test/files/neg/bug106.scala b/test/files/neg/bug106.scala new file mode 100644 index 0000000000..bf705c9bf9 --- /dev/null +++ b/test/files/neg/bug106.scala @@ -0,0 +1,2 @@ +class T extends AnyRef; +class S extends T with Object; diff --git a/test/files/neg/bug107.check b/test/files/neg/bug107.check new file mode 100644 index 0000000000..5def0a4164 --- /dev/null +++ b/test/files/neg/bug107.check @@ -0,0 +1,4 @@ +bug107.scala:4: class O needs to be abstract, since method foo in trait C is not defined +object O extends C { + ^ +one error found diff --git a/test/files/neg/bug107.scala b/test/files/neg/bug107.scala new file mode 100644 index 0000000000..3bcb23e563 --- /dev/null +++ b/test/files/neg/bug107.scala @@ -0,0 +1,8 @@ +trait C { + def foo: Int; +} +object O extends C { + def main(args: Array[String]) = { + System.out.println(foo); + } +} diff --git a/test/files/neg/bug108.check b/test/files/neg/bug108.check new file mode 100644 index 0000000000..60330626c3 --- /dev/null +++ b/test/files/neg/bug108.check @@ -0,0 +1,4 @@ +bug108.scala:3: x is already defined as value x + case x :: x => "first" + ^ +one error found diff --git a/test/files/neg/bug112.check b/test/files/neg/bug112.check new file mode 100644 index 0000000000..b01c2c6e8d --- /dev/null +++ b/test/files/neg/bug112.check @@ -0,0 +1,4 @@ +bug112.scala:6: T.A is not a legal prefix for a constructor + class D extends C; + ^ +one error found diff --git a/test/files/neg/bug112.scala b/test/files/neg/bug112.scala new file mode 100644 index 0000000000..26a10c4e41 --- /dev/null +++ b/test/files/neg/bug112.scala @@ -0,0 +1,7 @@ +object T { + class A { + class B; + } + type C = A#B; + class D extends C; +} diff --git a/test/files/neg/bug113.check b/test/files/neg/bug113.check new file mode 100644 index 0000000000..a9f699e90e --- /dev/null +++ b/test/files/neg/bug113.check @@ -0,0 +1,7 @@ +bug113.scala:3: illegal cyclic reference involving type A + type B <: A; + ^ +bug113.scala:2: only classes can have declared but undefined members + type A <: B; + ^ +two errors found diff --git a/test/files/neg/bug113.scala b/test/files/neg/bug113.scala new file mode 100644 index 0000000000..62022b92c9 --- /dev/null +++ b/test/files/neg/bug113.scala @@ -0,0 +1,4 @@ +object T { + type A <: B; + type B <: A; +} diff --git a/test/files/neg/bug117.check b/test/files/neg/bug117.check new file mode 100644 index 0000000000..f05e2e1c00 --- /dev/null +++ b/test/files/neg/bug117.check @@ -0,0 +1,10 @@ +bug117.scala:2: '(' expected but '[' found. + def this[A](x: A, y: A) = { + ^ +bug117.scala:4: identifier expected but '}' found. + } + ^ +bug117.scala:5: illegal start of expression +} +^ +three errors found diff --git a/test/files/neg/bug117.scala b/test/files/neg/bug117.scala new file mode 100644 index 0000000000..2c3cb65a08 --- /dev/null +++ b/test/files/neg/bug117.scala @@ -0,0 +1,5 @@ +class C[A](x: A) { + def this[A](x: A, y: A) = { + this(x); + } +} diff --git a/test/files/neg/bug118.check b/test/files/neg/bug118.check new file mode 100644 index 0000000000..872d2b568a --- /dev/null +++ b/test/files/neg/bug118.check @@ -0,0 +1,4 @@ +bug118.scala:3: return outside method definition + return null; + ^ +one error found diff --git a/test/files/neg/bug118.scala b/test/files/neg/bug118.scala new file mode 100644 index 0000000000..796bc50d09 --- /dev/null +++ b/test/files/neg/bug118.scala @@ -0,0 +1,6 @@ +class C(y: Int) { + def this() = { + return null; + this(1); + } +} diff --git a/test/files/neg/bug122.check b/test/files/neg/bug122.check new file mode 100644 index 0000000000..9c49271882 --- /dev/null +++ b/test/files/neg/bug122.check @@ -0,0 +1,7 @@ +bug122.scala:2: recursive value v$ needs type + val List(v:int,2) = List(2,v:int); + ^ +bug122.scala:3: recursive value ds$0$ needs type + val Pair(a:int,b:int) = Pair(1,a); + ^ +two errors found diff --git a/test/files/neg/bug122.scala b/test/files/neg/bug122.scala new file mode 100644 index 0000000000..f00c6874b8 --- /dev/null +++ b/test/files/neg/bug122.scala @@ -0,0 +1,4 @@ +class L{ + val List(v:int,2) = List(2,v:int); + val Pair(a:int,b:int) = Pair(1,a); +} diff --git a/test/files/neg/overload.check b/test/files/neg/overload.check new file mode 100644 index 0000000000..011f10de7f --- /dev/null +++ b/test/files/neg/overload.check @@ -0,0 +1,19 @@ +overload.scala:15: x is already defined as value x in class Test + var x: int = 3; + ^ +overload.scala:5: foo is already defined in local scope + def foo() = 2; + ^ +overload.scala:11: ambiguous reference to overloaded definition, +both method foo: ()scala.Int +and method foo: ()scala.Int +match argument types () + foo(); + ^ +overload.scala:13: ambiguous reference to overloaded definition, +both value x$: scala.Int +and variable x$: scala.Int +match expected type scala.Int + val x: int = 1; + ^ +four errors found diff --git a/test/files/neg/overload.scala b/test/files/neg/overload.scala new file mode 100644 index 0000000000..4add2e68bb --- /dev/null +++ b/test/files/neg/overload.scala @@ -0,0 +1,17 @@ +class Test { + + { + def foo() = 1; + def foo() = 2; + foo() + } + + def foo() = 1; + def foo() = 2; + foo(); + + val x: int = 1; + def x(): int = 2; + var x: int = 3; + +} diff --git a/test/files/pos/bug119.scala b/test/files/pos/bug119.scala new file mode 100644 index 0000000000..e3f0993862 --- /dev/null +++ b/test/files/pos/bug119.scala @@ -0,0 +1,7 @@ +class K[E] { + case class A(v:E){}; +} + +class K2 extends K[int] { + val A(v) = A(42); +} diff --git a/test/files/pos/bug123.scala b/test/files/pos/bug123.scala new file mode 100644 index 0000000000..79f0c907a3 --- /dev/null +++ b/test/files/pos/bug123.scala @@ -0,0 +1,3 @@ +class M{ + val 1 = 1; +} diff --git a/test/files/pos/bug124.scala b/test/files/pos/bug124.scala new file mode 100644 index 0000000000..9aed6786f6 --- /dev/null +++ b/test/files/pos/bug124.scala @@ -0,0 +1,5 @@ +class N{ + val F: Any => Any = (x:Any) => F(x); + val f:(Any => Any) = (x:Any) => f(x); + val g: Any => Any = (x:Any) => g(x); +} diff --git a/test/files/pos/bug32.scala b/test/files/pos/bug32.scala new file mode 100644 index 0000000000..4354727d1a --- /dev/null +++ b/test/files/pos/bug32.scala @@ -0,0 +1,17 @@ +import java.io._; + +class PromptStream(s: OutputStream) extends PrintStream(s) { + override def println() = super.println(); +} + +object Main { + + val out = new PromptStream(System.out); + + System.setOut(out); + + def main(args: Array[String]) = + //out.println("hello world"); + () + +} diff --git a/test/files/pos/rebind.scala b/test/files/pos/rebind.scala new file mode 100644 index 0000000000..59afe82ffa --- /dev/null +++ b/test/files/pos/rebind.scala @@ -0,0 +1,13 @@ +abstract class Foo { + class Inner { + def inner: int = 1; + } + def foo: Inner; +} +abstract class Bar { + type Inner; + def foo: Inner = foo; +} +class Test extends Foo with Bar { + System.out.println(foo.inner); +} diff --git a/test/neg/bug105.check b/test/neg/bug105.check new file mode 100644 index 0000000000..d0a980053a --- /dev/null +++ b/test/neg/bug105.check @@ -0,0 +1,4 @@ +bug105.scala:1: illegal inheritance from sealed class +object T extends Array[Int](1); + ^ +one error found diff --git a/test/neg/bug105.scala b/test/neg/bug105.scala new file mode 100644 index 0000000000..08a7b2ac5b --- /dev/null +++ b/test/neg/bug105.scala @@ -0,0 +1 @@ +object T extends Array[Int](1); diff --git a/test/neg/bug106.check b/test/neg/bug106.check new file mode 100644 index 0000000000..b55e37ce3c --- /dev/null +++ b/test/neg/bug106.check @@ -0,0 +1,4 @@ +bug106.scala:2: Java class may not be used as mixin +class S extends T with Object; + ^ +one error found diff --git a/test/neg/bug106.scala b/test/neg/bug106.scala new file mode 100644 index 0000000000..bf705c9bf9 --- /dev/null +++ b/test/neg/bug106.scala @@ -0,0 +1,2 @@ +class T extends AnyRef; +class S extends T with Object; diff --git a/test/neg/bug107.check b/test/neg/bug107.check new file mode 100644 index 0000000000..5def0a4164 --- /dev/null +++ b/test/neg/bug107.check @@ -0,0 +1,4 @@ +bug107.scala:4: class O needs to be abstract, since method foo in trait C is not defined +object O extends C { + ^ +one error found diff --git a/test/neg/bug107.scala b/test/neg/bug107.scala new file mode 100644 index 0000000000..3bcb23e563 --- /dev/null +++ b/test/neg/bug107.scala @@ -0,0 +1,8 @@ +trait C { + def foo: Int; +} +object O extends C { + def main(args: Array[String]) = { + System.out.println(foo); + } +} diff --git a/test/neg/bug108.check b/test/neg/bug108.check new file mode 100644 index 0000000000..60330626c3 --- /dev/null +++ b/test/neg/bug108.check @@ -0,0 +1,4 @@ +bug108.scala:3: x is already defined as value x + case x :: x => "first" + ^ +one error found diff --git a/test/neg/bug112.check b/test/neg/bug112.check new file mode 100644 index 0000000000..b01c2c6e8d --- /dev/null +++ b/test/neg/bug112.check @@ -0,0 +1,4 @@ +bug112.scala:6: T.A is not a legal prefix for a constructor + class D extends C; + ^ +one error found diff --git a/test/neg/bug112.scala b/test/neg/bug112.scala new file mode 100644 index 0000000000..26a10c4e41 --- /dev/null +++ b/test/neg/bug112.scala @@ -0,0 +1,7 @@ +object T { + class A { + class B; + } + type C = A#B; + class D extends C; +} diff --git a/test/neg/bug113.check b/test/neg/bug113.check new file mode 100644 index 0000000000..a9f699e90e --- /dev/null +++ b/test/neg/bug113.check @@ -0,0 +1,7 @@ +bug113.scala:3: illegal cyclic reference involving type A + type B <: A; + ^ +bug113.scala:2: only classes can have declared but undefined members + type A <: B; + ^ +two errors found diff --git a/test/neg/bug113.scala b/test/neg/bug113.scala new file mode 100644 index 0000000000..62022b92c9 --- /dev/null +++ b/test/neg/bug113.scala @@ -0,0 +1,4 @@ +object T { + type A <: B; + type B <: A; +} diff --git a/test/neg/bug117.check b/test/neg/bug117.check new file mode 100644 index 0000000000..f05e2e1c00 --- /dev/null +++ b/test/neg/bug117.check @@ -0,0 +1,10 @@ +bug117.scala:2: '(' expected but '[' found. + def this[A](x: A, y: A) = { + ^ +bug117.scala:4: identifier expected but '}' found. + } + ^ +bug117.scala:5: illegal start of expression +} +^ +three errors found diff --git a/test/neg/bug117.scala b/test/neg/bug117.scala new file mode 100644 index 0000000000..2c3cb65a08 --- /dev/null +++ b/test/neg/bug117.scala @@ -0,0 +1,5 @@ +class C[A](x: A) { + def this[A](x: A, y: A) = { + this(x); + } +} diff --git a/test/neg/bug118.check b/test/neg/bug118.check new file mode 100644 index 0000000000..872d2b568a --- /dev/null +++ b/test/neg/bug118.check @@ -0,0 +1,4 @@ +bug118.scala:3: return outside method definition + return null; + ^ +one error found diff --git a/test/neg/bug118.scala b/test/neg/bug118.scala new file mode 100644 index 0000000000..796bc50d09 --- /dev/null +++ b/test/neg/bug118.scala @@ -0,0 +1,6 @@ +class C(y: Int) { + def this() = { + return null; + this(1); + } +} diff --git a/test/neg/bug122.check b/test/neg/bug122.check new file mode 100644 index 0000000000..9c49271882 --- /dev/null +++ b/test/neg/bug122.check @@ -0,0 +1,7 @@ +bug122.scala:2: recursive value v$ needs type + val List(v:int,2) = List(2,v:int); + ^ +bug122.scala:3: recursive value ds$0$ needs type + val Pair(a:int,b:int) = Pair(1,a); + ^ +two errors found diff --git a/test/neg/bug122.scala b/test/neg/bug122.scala new file mode 100644 index 0000000000..f00c6874b8 --- /dev/null +++ b/test/neg/bug122.scala @@ -0,0 +1,4 @@ +class L{ + val List(v:int,2) = List(2,v:int); + val Pair(a:int,b:int) = Pair(1,a); +} diff --git a/test/neg/overload.check b/test/neg/overload.check new file mode 100644 index 0000000000..011f10de7f --- /dev/null +++ b/test/neg/overload.check @@ -0,0 +1,19 @@ +overload.scala:15: x is already defined as value x in class Test + var x: int = 3; + ^ +overload.scala:5: foo is already defined in local scope + def foo() = 2; + ^ +overload.scala:11: ambiguous reference to overloaded definition, +both method foo: ()scala.Int +and method foo: ()scala.Int +match argument types () + foo(); + ^ +overload.scala:13: ambiguous reference to overloaded definition, +both value x$: scala.Int +and variable x$: scala.Int +match expected type scala.Int + val x: int = 1; + ^ +four errors found diff --git a/test/neg/overload.scala b/test/neg/overload.scala new file mode 100644 index 0000000000..4add2e68bb --- /dev/null +++ b/test/neg/overload.scala @@ -0,0 +1,17 @@ +class Test { + + { + def foo() = 1; + def foo() = 2; + foo() + } + + def foo() = 1; + def foo() = 2; + foo(); + + val x: int = 1; + def x(): int = 2; + var x: int = 3; + +} diff --git a/test/pos/bug119.scala b/test/pos/bug119.scala new file mode 100644 index 0000000000..e3f0993862 --- /dev/null +++ b/test/pos/bug119.scala @@ -0,0 +1,7 @@ +class K[E] { + case class A(v:E){}; +} + +class K2 extends K[int] { + val A(v) = A(42); +} diff --git a/test/pos/bug123.scala b/test/pos/bug123.scala new file mode 100644 index 0000000000..79f0c907a3 --- /dev/null +++ b/test/pos/bug123.scala @@ -0,0 +1,3 @@ +class M{ + val 1 = 1; +} diff --git a/test/pos/bug124.scala b/test/pos/bug124.scala new file mode 100644 index 0000000000..9aed6786f6 --- /dev/null +++ b/test/pos/bug124.scala @@ -0,0 +1,5 @@ +class N{ + val F: Any => Any = (x:Any) => F(x); + val f:(Any => Any) = (x:Any) => f(x); + val g: Any => Any = (x:Any) => g(x); +} diff --git a/test/pos/bug32.scala b/test/pos/bug32.scala new file mode 100644 index 0000000000..4354727d1a --- /dev/null +++ b/test/pos/bug32.scala @@ -0,0 +1,17 @@ +import java.io._; + +class PromptStream(s: OutputStream) extends PrintStream(s) { + override def println() = super.println(); +} + +object Main { + + val out = new PromptStream(System.out); + + System.setOut(out); + + def main(args: Array[String]) = + //out.println("hello world"); + () + +} diff --git a/test/pos/rebind.scala b/test/pos/rebind.scala new file mode 100644 index 0000000000..59afe82ffa --- /dev/null +++ b/test/pos/rebind.scala @@ -0,0 +1,13 @@ +abstract class Foo { + class Inner { + def inner: int = 1; + } + def foo: Inner; +} +abstract class Bar { + type Inner; + def foo: Inner = foo; +} +class Test extends Foo with Bar { + System.out.println(foo.inner); +} -- cgit v1.2.3