summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/files/neg/S7.check2
-rw-r--r--test/files/neg/bug25.check4
-rw-r--r--test/files/neg/bug25.scala6
-rw-r--r--test/files/neg/bug38.check2
-rw-r--r--test/files/neg/bug67.check11
-rw-r--r--test/files/neg/bug67.scala21
-rw-r--r--test/files/neg/bug71.check4
-rw-r--r--test/files/neg/bug71.scala10
-rw-r--r--test/files/neg/bug74.check4
-rw-r--r--test/files/neg/bug74.scala3
-rw-r--r--test/files/neg/bug75.check5
-rw-r--r--test/files/neg/bug75.scala12
-rw-r--r--test/files/pos/bug1.scala8
-rw-r--r--test/files/pos/bug2.scala6
-rw-r--r--test/files/pos/bug20.scala8
-rw-r--r--test/files/pos/bug49.scala3
-rw-r--r--test/files/pos/bug50.scala8
-rw-r--r--test/files/pos/bug53.scala7
-rw-r--r--test/files/pos/bug54.scala4
-rw-r--r--test/files/pos/bug61.scala10
-rw-r--r--test/files/pos/bug64.scala6
-rw-r--r--test/files/pos/bug66.scala7
-rw-r--r--test/files/pos/bug68.scala6
-rw-r--r--test/files/pos/bug69.scala11
-rw-r--r--test/files/pos/bug76.scala9
-rw-r--r--test/files/pos/test4.scala12
-rw-r--r--test/neg/S7.check2
-rw-r--r--test/neg/bug25.check4
-rw-r--r--test/neg/bug25.scala6
-rw-r--r--test/neg/bug38.check2
-rw-r--r--test/neg/bug67.check11
-rw-r--r--test/neg/bug67.scala21
-rw-r--r--test/neg/bug71.check4
-rw-r--r--test/neg/bug71.scala10
-rw-r--r--test/neg/bug74.check4
-rw-r--r--test/neg/bug74.scala3
-rw-r--r--test/neg/bug75.check5
-rw-r--r--test/neg/bug75.scala12
-rw-r--r--test/pos/bug1.scala8
-rw-r--r--test/pos/bug2.scala6
-rw-r--r--test/pos/bug20.scala8
-rw-r--r--test/pos/bug49.scala3
-rw-r--r--test/pos/bug50.scala8
-rw-r--r--test/pos/bug53.scala7
-rw-r--r--test/pos/bug54.scala4
-rw-r--r--test/pos/bug61.scala10
-rw-r--r--test/pos/bug64.scala6
-rw-r--r--test/pos/bug66.scala7
-rw-r--r--test/pos/bug68.scala6
-rw-r--r--test/pos/bug69.scala11
-rw-r--r--test/pos/bug76.scala9
-rw-r--r--test/pos/test4.scala12
52 files changed, 362 insertions, 16 deletions
diff --git a/test/files/neg/S7.check b/test/files/neg/S7.check
index 22769d0fe7..59c57786b3 100644
--- a/test/files/neg/S7.check
+++ b/test/files/neg/S7.check
@@ -1,4 +1,4 @@
S7.scala:6: illegal cyclic reference involving class S7.A
class C() extends a.A() {}
- ^
+ ^
one error found
diff --git a/test/files/neg/bug25.check b/test/files/neg/bug25.check
new file mode 100644
index 0000000000..75ae98eac7
--- /dev/null
+++ b/test/files/neg/bug25.check
@@ -0,0 +1,4 @@
+bug25.scala:5: constructor javax.rmi.PortableRemoteObject cannot be accessed in javax.rmi.type
+class A extends javax.rmi.PortableRemoteObject();
+ ^
+one error found
diff --git a/test/files/neg/bug25.scala b/test/files/neg/bug25.scala
new file mode 100644
index 0000000000..96a3c7dea3
--- /dev/null
+++ b/test/files/neg/bug25.scala
@@ -0,0 +1,6 @@
+/** Signature of PortableRemoteObject's constructor is:
+ protected PortableRemoteObject() throws RemoteException
+*/
+
+class A extends javax.rmi.PortableRemoteObject();
+
diff --git a/test/files/neg/bug38.check b/test/files/neg/bug38.check
index 1f77aa8557..27c2e52586 100644
--- a/test/files/neg/bug38.check
+++ b/test/files/neg/bug38.check
@@ -1,7 +1,7 @@
bug38.scala:3: * is not a member of scala.xml of type scala.xml.type
import scala.xml.* ; // does not work
^
-bug38.scala:7: not found: constructor Element
+bug38.scala:7: not found: type Element
val foo = new Element { def getName = "hallo"; def getChildren = Nil; def getAttribs = new HashMap[String,String] };
^
two errors found
diff --git a/test/files/neg/bug67.check b/test/files/neg/bug67.check
new file mode 100644
index 0000000000..1a1990c311
--- /dev/null
+++ b/test/files/neg/bug67.check
@@ -0,0 +1,11 @@
+bug67.scala:15: constructor cannot be instantiated to expected type;
+ found : D.this.ITree[A?,B?]
+ required: D.this.InsertTree[A,B]
+ val ITree(t1) = insert_1(key, value, tree, s);
+ ^
+bug67.scala:19: no type parameters for method INode of type [A,B](D.this.Tree[A,B],scala.Int,scala.Int)D.this.INode[A,B] exist so that it can be applied to arguments (D.this.Tree[A,B],scala.Int,scala.Int)
+ --- because ---
+result type D.this.INode[A,B] is incompatible with expected type D.this.InsertTree[A,B]
+ INode(t0,1,s);
+ ^
+two errors found
diff --git a/test/files/neg/bug67.scala b/test/files/neg/bug67.scala
new file mode 100644
index 0000000000..48229defaa
--- /dev/null
+++ b/test/files/neg/bug67.scala
@@ -0,0 +1,21 @@
+class D[A <: Ord[A],B] {
+ abstract class Tree[A <: Ord[A],B]();
+ case class Node[A,B](key:A,value:B,smaller:Tree[A,B],bigger:Tree[A,B])
+ extends Tree[A,B];
+ case class Nil[A,B]() extends Tree[A,B];
+
+
+ abstract case class InsertTree[A,B]();
+ case class ITree[A,B](t:Tree[A,B]); // forgot extends InsertTree[A,B];
+ case class INode[A,B](t:Tree[A,B],height:int,size:int); // forgot extends InsertTree[A,B];
+ val tree:Tree[A,B] = Nil();
+ val s = 0;
+
+ def insert(key:A, value:B) = {
+ val ITree(t1) = insert_1(key, value, tree, s);
+ }
+
+ def insert_1(key:A, value:B, t0:Tree[A,B], s:int):InsertTree[A,B] = {
+ INode(t0,1,s);
+ }
+}
diff --git a/test/files/neg/bug71.check b/test/files/neg/bug71.check
new file mode 100644
index 0000000000..8a939dbbae
--- /dev/null
+++ b/test/files/neg/bug71.check
@@ -0,0 +1,4 @@
+bug71.scala:3: class ga2 needs to be abstract, since method foo in class gu.ga1 is not defined
+object ga2 extends gu.ga1() {
+ ^
+one error found
diff --git a/test/files/neg/bug71.scala b/test/files/neg/bug71.scala
new file mode 100644
index 0000000000..67c3cdd7f9
--- /dev/null
+++ b/test/files/neg/bug71.scala
@@ -0,0 +1,10 @@
+// ga2
+
+object ga2 extends gu.ga1() {
+ // implementation of foo()
+ def foo():java.lang.String = "foo";
+ // my main inherited
+ def main( args:Array[String] ):Unit = {
+ mymain ();
+ }
+}
diff --git a/test/files/neg/bug74.check b/test/files/neg/bug74.check
new file mode 100644
index 0000000000..dec69cd35f
--- /dev/null
+++ b/test/files/neg/bug74.check
@@ -0,0 +1,4 @@
+bug74.scala:2: Int is not an enclosing class
+ def f = Int.super.hashCode;
+ ^
+one error found
diff --git a/test/files/neg/bug74.scala b/test/files/neg/bug74.scala
new file mode 100644
index 0000000000..8e1301e5b9
--- /dev/null
+++ b/test/files/neg/bug74.scala
@@ -0,0 +1,3 @@
+class A {
+ def f = Int.super.hashCode;
+}
diff --git a/test/files/neg/bug75.check b/test/files/neg/bug75.check
new file mode 100644
index 0000000000..a988ebe40c
--- /dev/null
+++ b/test/files/neg/bug75.check
@@ -0,0 +1,5 @@
+bug75.scala:6: value tree of type F.this.Nil[A]
+ cannot override value tree in class F of type scala.AllRef
+ new F[A](){ override val tree=t;};
+ ^
+one error found
diff --git a/test/files/neg/bug75.scala b/test/files/neg/bug75.scala
new file mode 100644
index 0000000000..b0dc4408e1
--- /dev/null
+++ b/test/files/neg/bug75.scala
@@ -0,0 +1,12 @@
+class F[A]() {
+ case class Nil[B]() {}
+
+ val tree = null;
+ protected def mkF[A](t:Nil[A]) =
+ new F[A](){ override val tree=t;};
+
+ def update = {
+ mkF(Nil());
+ }
+
+}
diff --git a/test/files/pos/bug1.scala b/test/files/pos/bug1.scala
new file mode 100644
index 0000000000..bdf33ef20d
--- /dev/null
+++ b/test/files/pos/bug1.scala
@@ -0,0 +1,8 @@
+object Exceptions {
+
+ class CubeException(s: String) extends java.lang.RuntimeException(s);
+
+ def main(args: Array[String]) =
+ System.out.println(new CubeException("test"));
+
+}
diff --git a/test/files/pos/bug2.scala b/test/files/pos/bug2.scala
new file mode 100644
index 0000000000..4c58ed3f4f
--- /dev/null
+++ b/test/files/pos/bug2.scala
@@ -0,0 +1,6 @@
+object main {
+ def main(args: Array[String]) = {
+ val b = true;
+ while (b == true) { }
+ }
+}
diff --git a/test/files/pos/bug20.scala b/test/files/pos/bug20.scala
new file mode 100644
index 0000000000..bdf33ef20d
--- /dev/null
+++ b/test/files/pos/bug20.scala
@@ -0,0 +1,8 @@
+object Exceptions {
+
+ class CubeException(s: String) extends java.lang.RuntimeException(s);
+
+ def main(args: Array[String]) =
+ System.out.println(new CubeException("test"));
+
+}
diff --git a/test/files/pos/bug49.scala b/test/files/pos/bug49.scala
new file mode 100644
index 0000000000..913ce06e00
--- /dev/null
+++ b/test/files/pos/bug49.scala
@@ -0,0 +1,3 @@
+class C1(x: Object) {};
+
+class C2 extends C1({ class A extends Object {}; (new A) : Object }) {};
diff --git a/test/files/pos/bug50.scala b/test/files/pos/bug50.scala
new file mode 100644
index 0000000000..0989af44fa
--- /dev/null
+++ b/test/files/pos/bug50.scala
@@ -0,0 +1,8 @@
+import scala.runtime.NativeMonitor;
+
+case class Foo[a](x: a);
+
+object bug {
+ Foo("");
+ NativeMonitor.synchronised(null, "");
+}
diff --git a/test/files/pos/bug53.scala b/test/files/pos/bug53.scala
new file mode 100644
index 0000000000..44763ef144
--- /dev/null
+++ b/test/files/pos/bug53.scala
@@ -0,0 +1,7 @@
+object bug {
+ def foobar[c]: Int = {
+ class Foo { def foo: Bar = new Bar(); }
+ class Bar { def bar: c = bar; }
+ 0
+ }
+}
diff --git a/test/files/pos/bug54.scala b/test/files/pos/bug54.scala
new file mode 100644
index 0000000000..3dc8e161fd
--- /dev/null
+++ b/test/files/pos/bug54.scala
@@ -0,0 +1,4 @@
+class A {
+ case class B(x: C) extends A {}
+ class C {}
+}
diff --git a/test/files/pos/bug61.scala b/test/files/pos/bug61.scala
new file mode 100644
index 0000000000..dd3f94f30c
--- /dev/null
+++ b/test/files/pos/bug61.scala
@@ -0,0 +1,10 @@
+object O {
+
+ class testClass ;
+
+ case class testA() extends testClass ; // works if you leave away "extends..."
+ // or if you write TestA
+ def ga( x:testClass ) = x match {
+ case testA() => ()
+ }
+}
diff --git a/test/files/pos/bug64.scala b/test/files/pos/bug64.scala
new file mode 100644
index 0000000000..c2ce4bf6d0
--- /dev/null
+++ b/test/files/pos/bug64.scala
@@ -0,0 +1,6 @@
+object B {
+ def main(Args:Array[String]) = {
+ val Pair(_,x) = Pair(1,2);
+ x + 1;
+ }
+}
diff --git a/test/files/pos/bug66.scala b/test/files/pos/bug66.scala
new file mode 100644
index 0000000000..2153264e7a
--- /dev/null
+++ b/test/files/pos/bug66.scala
@@ -0,0 +1,7 @@
+class GBTree[A, B] /*with Map[A, B, GBTree[A,B]]*/ {
+ abstract class Tree[A,B];
+ case class Node[A,B](key:A,value:B,smaller:Node[A,B],bigger:Node[A,B])
+ extends Tree[A,B];
+ case class Nil[A,B]() extends Tree[A,B];
+
+}
diff --git a/test/files/pos/bug68.scala b/test/files/pos/bug68.scala
new file mode 100644
index 0000000000..beb2c7c0ab
--- /dev/null
+++ b/test/files/pos/bug68.scala
@@ -0,0 +1,6 @@
+class E {
+ def f() = {
+ val (_::l1) = List(1,2,3);
+ l1.tail;
+ }
+}
diff --git a/test/files/pos/bug69.scala b/test/files/pos/bug69.scala
new file mode 100644
index 0000000000..113820613f
--- /dev/null
+++ b/test/files/pos/bug69.scala
@@ -0,0 +1,11 @@
+object testCQ {
+ // why does this not work directly
+ case class Thing( name:String, contains:List[ Thing ] );
+
+ /* ... but this one does?
+ abstract class T;
+ case class Thing2( name:String, contains:List[ T ] ) extends T;
+ */
+
+}
+
diff --git a/test/files/pos/bug76.scala b/test/files/pos/bug76.scala
new file mode 100644
index 0000000000..07cddd714f
--- /dev/null
+++ b/test/files/pos/bug76.scala
@@ -0,0 +1,9 @@
+// This is extracted from a test file => don't add a new test file.
+object bug {
+ def foo(def i: Int): Int = 0;
+
+ def bar: Int = {
+ var i: Int = 0;
+ foo (i);
+ }
+}
diff --git a/test/files/pos/test4.scala b/test/files/pos/test4.scala
index 48949b7a7f..66f7a1505c 100644
--- a/test/files/pos/test4.scala
+++ b/test/files/pos/test4.scala
@@ -10,7 +10,7 @@ object test {
import test._;
-trait S extends o.I[D] {
+trait S extends ooo.I[D] {
def bar: E = foo(c,d);
}
@@ -22,14 +22,14 @@ class O[X]() {
val j:I[X] = null;
}
-object o extends O[C]() {
+object ooo extends O[C]() {
def main = {
val s: S = null;
import s._;
foo(c,d);
- o.i.foo(c,e);
- o.j.foo(c,c);
+ ooo.i.foo(c,e);
+ ooo.j.foo(c,c);
bar
}
}
@@ -38,8 +38,8 @@ class Main() {
val s: S = null;
import s._;
foo(c,d);
- o.i.foo(c,e);
- o.j.foo(c,c);
+ ooo.i.foo(c,e);
+ ooo.j.foo(c,c);
bar;
}
diff --git a/test/neg/S7.check b/test/neg/S7.check
index 22769d0fe7..59c57786b3 100644
--- a/test/neg/S7.check
+++ b/test/neg/S7.check
@@ -1,4 +1,4 @@
S7.scala:6: illegal cyclic reference involving class S7.A
class C() extends a.A() {}
- ^
+ ^
one error found
diff --git a/test/neg/bug25.check b/test/neg/bug25.check
new file mode 100644
index 0000000000..75ae98eac7
--- /dev/null
+++ b/test/neg/bug25.check
@@ -0,0 +1,4 @@
+bug25.scala:5: constructor javax.rmi.PortableRemoteObject cannot be accessed in javax.rmi.type
+class A extends javax.rmi.PortableRemoteObject();
+ ^
+one error found
diff --git a/test/neg/bug25.scala b/test/neg/bug25.scala
new file mode 100644
index 0000000000..96a3c7dea3
--- /dev/null
+++ b/test/neg/bug25.scala
@@ -0,0 +1,6 @@
+/** Signature of PortableRemoteObject's constructor is:
+ protected PortableRemoteObject() throws RemoteException
+*/
+
+class A extends javax.rmi.PortableRemoteObject();
+
diff --git a/test/neg/bug38.check b/test/neg/bug38.check
index 1f77aa8557..27c2e52586 100644
--- a/test/neg/bug38.check
+++ b/test/neg/bug38.check
@@ -1,7 +1,7 @@
bug38.scala:3: * is not a member of scala.xml of type scala.xml.type
import scala.xml.* ; // does not work
^
-bug38.scala:7: not found: constructor Element
+bug38.scala:7: not found: type Element
val foo = new Element { def getName = "hallo"; def getChildren = Nil; def getAttribs = new HashMap[String,String] };
^
two errors found
diff --git a/test/neg/bug67.check b/test/neg/bug67.check
new file mode 100644
index 0000000000..1a1990c311
--- /dev/null
+++ b/test/neg/bug67.check
@@ -0,0 +1,11 @@
+bug67.scala:15: constructor cannot be instantiated to expected type;
+ found : D.this.ITree[A?,B?]
+ required: D.this.InsertTree[A,B]
+ val ITree(t1) = insert_1(key, value, tree, s);
+ ^
+bug67.scala:19: no type parameters for method INode of type [A,B](D.this.Tree[A,B],scala.Int,scala.Int)D.this.INode[A,B] exist so that it can be applied to arguments (D.this.Tree[A,B],scala.Int,scala.Int)
+ --- because ---
+result type D.this.INode[A,B] is incompatible with expected type D.this.InsertTree[A,B]
+ INode(t0,1,s);
+ ^
+two errors found
diff --git a/test/neg/bug67.scala b/test/neg/bug67.scala
new file mode 100644
index 0000000000..48229defaa
--- /dev/null
+++ b/test/neg/bug67.scala
@@ -0,0 +1,21 @@
+class D[A <: Ord[A],B] {
+ abstract class Tree[A <: Ord[A],B]();
+ case class Node[A,B](key:A,value:B,smaller:Tree[A,B],bigger:Tree[A,B])
+ extends Tree[A,B];
+ case class Nil[A,B]() extends Tree[A,B];
+
+
+ abstract case class InsertTree[A,B]();
+ case class ITree[A,B](t:Tree[A,B]); // forgot extends InsertTree[A,B];
+ case class INode[A,B](t:Tree[A,B],height:int,size:int); // forgot extends InsertTree[A,B];
+ val tree:Tree[A,B] = Nil();
+ val s = 0;
+
+ def insert(key:A, value:B) = {
+ val ITree(t1) = insert_1(key, value, tree, s);
+ }
+
+ def insert_1(key:A, value:B, t0:Tree[A,B], s:int):InsertTree[A,B] = {
+ INode(t0,1,s);
+ }
+}
diff --git a/test/neg/bug71.check b/test/neg/bug71.check
new file mode 100644
index 0000000000..8a939dbbae
--- /dev/null
+++ b/test/neg/bug71.check
@@ -0,0 +1,4 @@
+bug71.scala:3: class ga2 needs to be abstract, since method foo in class gu.ga1 is not defined
+object ga2 extends gu.ga1() {
+ ^
+one error found
diff --git a/test/neg/bug71.scala b/test/neg/bug71.scala
new file mode 100644
index 0000000000..67c3cdd7f9
--- /dev/null
+++ b/test/neg/bug71.scala
@@ -0,0 +1,10 @@
+// ga2
+
+object ga2 extends gu.ga1() {
+ // implementation of foo()
+ def foo():java.lang.String = "foo";
+ // my main inherited
+ def main( args:Array[String] ):Unit = {
+ mymain ();
+ }
+}
diff --git a/test/neg/bug74.check b/test/neg/bug74.check
new file mode 100644
index 0000000000..dec69cd35f
--- /dev/null
+++ b/test/neg/bug74.check
@@ -0,0 +1,4 @@
+bug74.scala:2: Int is not an enclosing class
+ def f = Int.super.hashCode;
+ ^
+one error found
diff --git a/test/neg/bug74.scala b/test/neg/bug74.scala
new file mode 100644
index 0000000000..8e1301e5b9
--- /dev/null
+++ b/test/neg/bug74.scala
@@ -0,0 +1,3 @@
+class A {
+ def f = Int.super.hashCode;
+}
diff --git a/test/neg/bug75.check b/test/neg/bug75.check
new file mode 100644
index 0000000000..a988ebe40c
--- /dev/null
+++ b/test/neg/bug75.check
@@ -0,0 +1,5 @@
+bug75.scala:6: value tree of type F.this.Nil[A]
+ cannot override value tree in class F of type scala.AllRef
+ new F[A](){ override val tree=t;};
+ ^
+one error found
diff --git a/test/neg/bug75.scala b/test/neg/bug75.scala
new file mode 100644
index 0000000000..b0dc4408e1
--- /dev/null
+++ b/test/neg/bug75.scala
@@ -0,0 +1,12 @@
+class F[A]() {
+ case class Nil[B]() {}
+
+ val tree = null;
+ protected def mkF[A](t:Nil[A]) =
+ new F[A](){ override val tree=t;};
+
+ def update = {
+ mkF(Nil());
+ }
+
+}
diff --git a/test/pos/bug1.scala b/test/pos/bug1.scala
new file mode 100644
index 0000000000..bdf33ef20d
--- /dev/null
+++ b/test/pos/bug1.scala
@@ -0,0 +1,8 @@
+object Exceptions {
+
+ class CubeException(s: String) extends java.lang.RuntimeException(s);
+
+ def main(args: Array[String]) =
+ System.out.println(new CubeException("test"));
+
+}
diff --git a/test/pos/bug2.scala b/test/pos/bug2.scala
new file mode 100644
index 0000000000..4c58ed3f4f
--- /dev/null
+++ b/test/pos/bug2.scala
@@ -0,0 +1,6 @@
+object main {
+ def main(args: Array[String]) = {
+ val b = true;
+ while (b == true) { }
+ }
+}
diff --git a/test/pos/bug20.scala b/test/pos/bug20.scala
new file mode 100644
index 0000000000..bdf33ef20d
--- /dev/null
+++ b/test/pos/bug20.scala
@@ -0,0 +1,8 @@
+object Exceptions {
+
+ class CubeException(s: String) extends java.lang.RuntimeException(s);
+
+ def main(args: Array[String]) =
+ System.out.println(new CubeException("test"));
+
+}
diff --git a/test/pos/bug49.scala b/test/pos/bug49.scala
new file mode 100644
index 0000000000..913ce06e00
--- /dev/null
+++ b/test/pos/bug49.scala
@@ -0,0 +1,3 @@
+class C1(x: Object) {};
+
+class C2 extends C1({ class A extends Object {}; (new A) : Object }) {};
diff --git a/test/pos/bug50.scala b/test/pos/bug50.scala
new file mode 100644
index 0000000000..0989af44fa
--- /dev/null
+++ b/test/pos/bug50.scala
@@ -0,0 +1,8 @@
+import scala.runtime.NativeMonitor;
+
+case class Foo[a](x: a);
+
+object bug {
+ Foo("");
+ NativeMonitor.synchronised(null, "");
+}
diff --git a/test/pos/bug53.scala b/test/pos/bug53.scala
new file mode 100644
index 0000000000..44763ef144
--- /dev/null
+++ b/test/pos/bug53.scala
@@ -0,0 +1,7 @@
+object bug {
+ def foobar[c]: Int = {
+ class Foo { def foo: Bar = new Bar(); }
+ class Bar { def bar: c = bar; }
+ 0
+ }
+}
diff --git a/test/pos/bug54.scala b/test/pos/bug54.scala
new file mode 100644
index 0000000000..3dc8e161fd
--- /dev/null
+++ b/test/pos/bug54.scala
@@ -0,0 +1,4 @@
+class A {
+ case class B(x: C) extends A {}
+ class C {}
+}
diff --git a/test/pos/bug61.scala b/test/pos/bug61.scala
new file mode 100644
index 0000000000..dd3f94f30c
--- /dev/null
+++ b/test/pos/bug61.scala
@@ -0,0 +1,10 @@
+object O {
+
+ class testClass ;
+
+ case class testA() extends testClass ; // works if you leave away "extends..."
+ // or if you write TestA
+ def ga( x:testClass ) = x match {
+ case testA() => ()
+ }
+}
diff --git a/test/pos/bug64.scala b/test/pos/bug64.scala
new file mode 100644
index 0000000000..c2ce4bf6d0
--- /dev/null
+++ b/test/pos/bug64.scala
@@ -0,0 +1,6 @@
+object B {
+ def main(Args:Array[String]) = {
+ val Pair(_,x) = Pair(1,2);
+ x + 1;
+ }
+}
diff --git a/test/pos/bug66.scala b/test/pos/bug66.scala
new file mode 100644
index 0000000000..2153264e7a
--- /dev/null
+++ b/test/pos/bug66.scala
@@ -0,0 +1,7 @@
+class GBTree[A, B] /*with Map[A, B, GBTree[A,B]]*/ {
+ abstract class Tree[A,B];
+ case class Node[A,B](key:A,value:B,smaller:Node[A,B],bigger:Node[A,B])
+ extends Tree[A,B];
+ case class Nil[A,B]() extends Tree[A,B];
+
+}
diff --git a/test/pos/bug68.scala b/test/pos/bug68.scala
new file mode 100644
index 0000000000..beb2c7c0ab
--- /dev/null
+++ b/test/pos/bug68.scala
@@ -0,0 +1,6 @@
+class E {
+ def f() = {
+ val (_::l1) = List(1,2,3);
+ l1.tail;
+ }
+}
diff --git a/test/pos/bug69.scala b/test/pos/bug69.scala
new file mode 100644
index 0000000000..113820613f
--- /dev/null
+++ b/test/pos/bug69.scala
@@ -0,0 +1,11 @@
+object testCQ {
+ // why does this not work directly
+ case class Thing( name:String, contains:List[ Thing ] );
+
+ /* ... but this one does?
+ abstract class T;
+ case class Thing2( name:String, contains:List[ T ] ) extends T;
+ */
+
+}
+
diff --git a/test/pos/bug76.scala b/test/pos/bug76.scala
new file mode 100644
index 0000000000..07cddd714f
--- /dev/null
+++ b/test/pos/bug76.scala
@@ -0,0 +1,9 @@
+// This is extracted from a test file => don't add a new test file.
+object bug {
+ def foo(def i: Int): Int = 0;
+
+ def bar: Int = {
+ var i: Int = 0;
+ foo (i);
+ }
+}
diff --git a/test/pos/test4.scala b/test/pos/test4.scala
index 48949b7a7f..66f7a1505c 100644
--- a/test/pos/test4.scala
+++ b/test/pos/test4.scala
@@ -10,7 +10,7 @@ object test {
import test._;
-trait S extends o.I[D] {
+trait S extends ooo.I[D] {
def bar: E = foo(c,d);
}
@@ -22,14 +22,14 @@ class O[X]() {
val j:I[X] = null;
}
-object o extends O[C]() {
+object ooo extends O[C]() {
def main = {
val s: S = null;
import s._;
foo(c,d);
- o.i.foo(c,e);
- o.j.foo(c,c);
+ ooo.i.foo(c,e);
+ ooo.j.foo(c,c);
bar
}
}
@@ -38,8 +38,8 @@ class Main() {
val s: S = null;
import s._;
foo(c,d);
- o.i.foo(c,e);
- o.j.foo(c,c);
+ ooo.i.foo(c,e);
+ ooo.j.foo(c,c);
bar;
}