diff options
Diffstat (limited to 'test')
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; } |