summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2003-11-21 10:20:26 +0000
committerMartin Odersky <odersky@gmail.com>2003-11-21 10:20:26 +0000
commit1bd13a8a2af30778c106054ffcca0c462bff7bc9 (patch)
treeb203c4f63d8acfe36605a0696a5fa203e1e869cf
parentd9fad519e8d13b10e38649f5605c3d7009bca558 (diff)
downloadscala-1bd13a8a2af30778c106054ffcca0c462bff7bc9.tar.gz
scala-1bd13a8a2af30778c106054ffcca0c462bff7bc9.tar.bz2
scala-1bd13a8a2af30778c106054ffcca0c462bff7bc9.zip
*** empty log message ***
-rw-r--r--test/files/neg/bug38.check2
-rw-r--r--test/files/pos/arrays2.scala11
-rw-r--r--test/files/pos/bug151.scala6
-rw-r--r--test/files/pos/bug199.scala7
-rw-r--r--test/files/pos/bug201.scala7
-rw-r--r--test/files/pos/bug204.scala7
-rw-r--r--test/files/pos/bug208.scala8
-rw-r--r--test/files/pos/bug210.scala17
-rw-r--r--test/files/pos/bug211.scala8
-rw-r--r--test/files/pos/bug217.scala13
-rw-r--r--test/files/pos/bug222.scala6
-rw-r--r--test/files/pos/bug229.scala3
-rw-r--r--test/files/pos/constfold.scala14
-rw-r--r--test/files/pos/mixins.scala17
-rw-r--r--test/files/pos/pmbug.scala8
-rw-r--r--test/neg/bug38.check2
-rw-r--r--test/pos/arrays2.scala11
-rw-r--r--test/pos/bug151.scala6
-rw-r--r--test/pos/bug199.scala7
-rw-r--r--test/pos/bug201.scala7
-rw-r--r--test/pos/bug204.scala7
-rw-r--r--test/pos/bug208.scala8
-rw-r--r--test/pos/bug210.scala17
-rw-r--r--test/pos/bug211.scala8
-rw-r--r--test/pos/bug217.scala13
-rw-r--r--test/pos/bug222.scala6
-rw-r--r--test/pos/bug229.scala3
-rw-r--r--test/pos/constfold.scala14
-rw-r--r--test/pos/mixins.scala17
-rw-r--r--test/pos/pmbug.scala8
30 files changed, 266 insertions, 2 deletions
diff --git a/test/files/neg/bug38.check b/test/files/neg/bug38.check
index 27c2e52586..8f053cfaa8 100644
--- a/test/files/neg/bug38.check
+++ b/test/files/neg/bug38.check
@@ -1,4 +1,4 @@
-bug38.scala:3: * is not a member of scala.xml of type scala.xml.type
+bug38.scala:3: * is not a member of scala.xml
import scala.xml.* ; // does not work
^
bug38.scala:7: not found: type Element
diff --git a/test/files/pos/arrays2.scala b/test/files/pos/arrays2.scala
new file mode 100644
index 0000000000..26adaf63ca
--- /dev/null
+++ b/test/files/pos/arrays2.scala
@@ -0,0 +1,11 @@
+case class C();
+
+object arrays2 {
+
+ def main(args: Array[String]): unit = {
+ val a = new Array[Array[C]](2);
+ a(0) = new Array[C](2);
+ a(0)(0) = new C();
+ }
+}
+
diff --git a/test/files/pos/bug151.scala b/test/files/pos/bug151.scala
new file mode 100644
index 0000000000..86667b49f7
--- /dev/null
+++ b/test/files/pos/bug151.scala
@@ -0,0 +1,6 @@
+abstract class Foo {
+ type T;
+ def foo(a: T): Int = 0;
+ val foo: Foo = null;
+ def a: foo.T = a;
+}
diff --git a/test/files/pos/bug199.scala b/test/files/pos/bug199.scala
new file mode 100644
index 0000000000..153e999e17
--- /dev/null
+++ b/test/files/pos/bug199.scala
@@ -0,0 +1,7 @@
+class C { object o; }
+
+object objectInClass {
+ def main(args: Array[String]) = {
+ (new C).o; ()
+ }
+}
diff --git a/test/files/pos/bug201.scala b/test/files/pos/bug201.scala
new file mode 100644
index 0000000000..53dac21ef0
--- /dev/null
+++ b/test/files/pos/bug201.scala
@@ -0,0 +1,7 @@
+class C[a] { def f: a = f; }
+class D[b] { class E extends C[b]; }
+object Test {
+ val d = new D[int];
+ def e = new d.E;
+ e.f;
+}
diff --git a/test/files/pos/bug204.scala b/test/files/pos/bug204.scala
new file mode 100644
index 0000000000..23d36523e9
--- /dev/null
+++ b/test/files/pos/bug204.scala
@@ -0,0 +1,7 @@
+class A {
+ object B {
+ def f() = {
+ class C extends A {}; new C : A
+ }
+ }
+}
diff --git a/test/files/pos/bug208.scala b/test/files/pos/bug208.scala
new file mode 100644
index 0000000000..99c7faefe2
--- /dev/null
+++ b/test/files/pos/bug208.scala
@@ -0,0 +1,8 @@
+object Test {
+ def f = {
+ object o {
+ trait T;
+ }
+ o
+ }
+}
diff --git a/test/files/pos/bug210.scala b/test/files/pos/bug210.scala
new file mode 100644
index 0000000000..f6a4580e33
--- /dev/null
+++ b/test/files/pos/bug210.scala
@@ -0,0 +1,17 @@
+trait Lang1 {
+ trait Exp;
+ trait Visitor { def f(left: Exp): unit; }
+ class Eval1: Visitor extends Visitor {
+ def f(left: Exp) = ();
+ }
+}
+
+trait Lang2 extends Lang1 {
+ class Eval2: Visitor extends Eval1;
+}
+/*
+object Main with Executable {
+ val lang2 = new Lang2 {};
+ val eval = new lang2.Eval2;
+}
+*/
diff --git a/test/files/pos/bug211.scala b/test/files/pos/bug211.scala
new file mode 100644
index 0000000000..df633d7ade
--- /dev/null
+++ b/test/files/pos/bug211.scala
@@ -0,0 +1,8 @@
+trait A;
+trait B;
+class Foo: (A with B) extends A with B;
+object Test with Executable {
+ new Foo();
+ System.out.println("bug211 completed");
+}
+
diff --git a/test/files/pos/bug217.scala b/test/files/pos/bug217.scala
new file mode 100644
index 0000000000..15a9f16a1b
--- /dev/null
+++ b/test/files/pos/bug217.scala
@@ -0,0 +1,13 @@
+object Test {
+
+ def foo[t](fun: Function0[t]): t = fun();
+
+ def bar(x: Int): Unit = {
+ foo(() => 0);
+ ()
+ }
+
+ def main(args: Array[String]): Unit = bar(32);
+
+}
+
diff --git a/test/files/pos/bug222.scala b/test/files/pos/bug222.scala
new file mode 100644
index 0000000000..342b2ef469
--- /dev/null
+++ b/test/files/pos/bug222.scala
@@ -0,0 +1,6 @@
+object Test {
+ def main(args:Array[String]): Unit = {
+ val array: Array[String] = new Array(16);
+ ()
+ }
+}
diff --git a/test/files/pos/bug229.scala b/test/files/pos/bug229.scala
new file mode 100644
index 0000000000..2bceea0782
--- /dev/null
+++ b/test/files/pos/bug229.scala
@@ -0,0 +1,3 @@
+class Test extends java.util.ArrayList {
+ override def add(index: int, element: java.lang.Object): unit = {}
+}
diff --git a/test/files/pos/constfold.scala b/test/files/pos/constfold.scala
new file mode 100644
index 0000000000..91587296af
--- /dev/null
+++ b/test/files/pos/constfold.scala
@@ -0,0 +1,14 @@
+object A {
+ val x = 2;
+ val y = x.asInstanceOf[byte];
+ val z = 1.0 / 2;
+ val s = "z is " + z;
+}
+
+object Test with Executable {
+
+ System.out.println(A.x);
+ System.out.println(A.y);
+ System.out.println(A.z);
+ System.out.println(A.s);
+}
diff --git a/test/files/pos/mixins.scala b/test/files/pos/mixins.scala
new file mode 100644
index 0000000000..8d7e7dfa52
--- /dev/null
+++ b/test/files/pos/mixins.scala
@@ -0,0 +1,17 @@
+package mixins;
+abstract class Super {
+ def foo: int;
+}
+abstract class Mixin extends Super {
+ abstract override def foo = super.foo;
+}
+class Sub extends Super with Mixin {
+ override def foo: int = 1;
+}
+abstract class Mixin1 extends Mixin {
+ abstract override def foo = super.foo;
+}
+abstract class Base0 extends Super with Mixin {
+}
+class Base extends Sub with Mixin1 {
+}
diff --git a/test/files/pos/pmbug.scala b/test/files/pos/pmbug.scala
new file mode 100644
index 0000000000..7d94e7a8bd
--- /dev/null
+++ b/test/files/pos/pmbug.scala
@@ -0,0 +1,8 @@
+object Test {
+
+ def flatten[a](l: List[List[a]]): List[a] = l match {
+ case Nil => Nil
+ case head :: tail => head ::: flatten(tail)
+ }
+
+}
diff --git a/test/neg/bug38.check b/test/neg/bug38.check
index 27c2e52586..8f053cfaa8 100644
--- a/test/neg/bug38.check
+++ b/test/neg/bug38.check
@@ -1,4 +1,4 @@
-bug38.scala:3: * is not a member of scala.xml of type scala.xml.type
+bug38.scala:3: * is not a member of scala.xml
import scala.xml.* ; // does not work
^
bug38.scala:7: not found: type Element
diff --git a/test/pos/arrays2.scala b/test/pos/arrays2.scala
new file mode 100644
index 0000000000..26adaf63ca
--- /dev/null
+++ b/test/pos/arrays2.scala
@@ -0,0 +1,11 @@
+case class C();
+
+object arrays2 {
+
+ def main(args: Array[String]): unit = {
+ val a = new Array[Array[C]](2);
+ a(0) = new Array[C](2);
+ a(0)(0) = new C();
+ }
+}
+
diff --git a/test/pos/bug151.scala b/test/pos/bug151.scala
new file mode 100644
index 0000000000..86667b49f7
--- /dev/null
+++ b/test/pos/bug151.scala
@@ -0,0 +1,6 @@
+abstract class Foo {
+ type T;
+ def foo(a: T): Int = 0;
+ val foo: Foo = null;
+ def a: foo.T = a;
+}
diff --git a/test/pos/bug199.scala b/test/pos/bug199.scala
new file mode 100644
index 0000000000..153e999e17
--- /dev/null
+++ b/test/pos/bug199.scala
@@ -0,0 +1,7 @@
+class C { object o; }
+
+object objectInClass {
+ def main(args: Array[String]) = {
+ (new C).o; ()
+ }
+}
diff --git a/test/pos/bug201.scala b/test/pos/bug201.scala
new file mode 100644
index 0000000000..53dac21ef0
--- /dev/null
+++ b/test/pos/bug201.scala
@@ -0,0 +1,7 @@
+class C[a] { def f: a = f; }
+class D[b] { class E extends C[b]; }
+object Test {
+ val d = new D[int];
+ def e = new d.E;
+ e.f;
+}
diff --git a/test/pos/bug204.scala b/test/pos/bug204.scala
new file mode 100644
index 0000000000..23d36523e9
--- /dev/null
+++ b/test/pos/bug204.scala
@@ -0,0 +1,7 @@
+class A {
+ object B {
+ def f() = {
+ class C extends A {}; new C : A
+ }
+ }
+}
diff --git a/test/pos/bug208.scala b/test/pos/bug208.scala
new file mode 100644
index 0000000000..99c7faefe2
--- /dev/null
+++ b/test/pos/bug208.scala
@@ -0,0 +1,8 @@
+object Test {
+ def f = {
+ object o {
+ trait T;
+ }
+ o
+ }
+}
diff --git a/test/pos/bug210.scala b/test/pos/bug210.scala
new file mode 100644
index 0000000000..f6a4580e33
--- /dev/null
+++ b/test/pos/bug210.scala
@@ -0,0 +1,17 @@
+trait Lang1 {
+ trait Exp;
+ trait Visitor { def f(left: Exp): unit; }
+ class Eval1: Visitor extends Visitor {
+ def f(left: Exp) = ();
+ }
+}
+
+trait Lang2 extends Lang1 {
+ class Eval2: Visitor extends Eval1;
+}
+/*
+object Main with Executable {
+ val lang2 = new Lang2 {};
+ val eval = new lang2.Eval2;
+}
+*/
diff --git a/test/pos/bug211.scala b/test/pos/bug211.scala
new file mode 100644
index 0000000000..df633d7ade
--- /dev/null
+++ b/test/pos/bug211.scala
@@ -0,0 +1,8 @@
+trait A;
+trait B;
+class Foo: (A with B) extends A with B;
+object Test with Executable {
+ new Foo();
+ System.out.println("bug211 completed");
+}
+
diff --git a/test/pos/bug217.scala b/test/pos/bug217.scala
new file mode 100644
index 0000000000..15a9f16a1b
--- /dev/null
+++ b/test/pos/bug217.scala
@@ -0,0 +1,13 @@
+object Test {
+
+ def foo[t](fun: Function0[t]): t = fun();
+
+ def bar(x: Int): Unit = {
+ foo(() => 0);
+ ()
+ }
+
+ def main(args: Array[String]): Unit = bar(32);
+
+}
+
diff --git a/test/pos/bug222.scala b/test/pos/bug222.scala
new file mode 100644
index 0000000000..342b2ef469
--- /dev/null
+++ b/test/pos/bug222.scala
@@ -0,0 +1,6 @@
+object Test {
+ def main(args:Array[String]): Unit = {
+ val array: Array[String] = new Array(16);
+ ()
+ }
+}
diff --git a/test/pos/bug229.scala b/test/pos/bug229.scala
new file mode 100644
index 0000000000..2bceea0782
--- /dev/null
+++ b/test/pos/bug229.scala
@@ -0,0 +1,3 @@
+class Test extends java.util.ArrayList {
+ override def add(index: int, element: java.lang.Object): unit = {}
+}
diff --git a/test/pos/constfold.scala b/test/pos/constfold.scala
new file mode 100644
index 0000000000..91587296af
--- /dev/null
+++ b/test/pos/constfold.scala
@@ -0,0 +1,14 @@
+object A {
+ val x = 2;
+ val y = x.asInstanceOf[byte];
+ val z = 1.0 / 2;
+ val s = "z is " + z;
+}
+
+object Test with Executable {
+
+ System.out.println(A.x);
+ System.out.println(A.y);
+ System.out.println(A.z);
+ System.out.println(A.s);
+}
diff --git a/test/pos/mixins.scala b/test/pos/mixins.scala
new file mode 100644
index 0000000000..8d7e7dfa52
--- /dev/null
+++ b/test/pos/mixins.scala
@@ -0,0 +1,17 @@
+package mixins;
+abstract class Super {
+ def foo: int;
+}
+abstract class Mixin extends Super {
+ abstract override def foo = super.foo;
+}
+class Sub extends Super with Mixin {
+ override def foo: int = 1;
+}
+abstract class Mixin1 extends Mixin {
+ abstract override def foo = super.foo;
+}
+abstract class Base0 extends Super with Mixin {
+}
+class Base extends Sub with Mixin1 {
+}
diff --git a/test/pos/pmbug.scala b/test/pos/pmbug.scala
new file mode 100644
index 0000000000..7d94e7a8bd
--- /dev/null
+++ b/test/pos/pmbug.scala
@@ -0,0 +1,8 @@
+object Test {
+
+ def flatten[a](l: List[List[a]]): List[a] = l match {
+ case Nil => Nil
+ case head :: tail => head ::: flatten(tail)
+ }
+
+}