summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-03-31 10:36:49 +0000
committerMartin Odersky <odersky@gmail.com>2006-03-31 10:36:49 +0000
commit3049afc7ec7ca038dd8d68d26803c0733df01ee1 (patch)
tree0a41f798b75b4aef55ab00e645cc77b6cdb0be69 /test/files
parent7ff239d7a998fb0ef7443e6c2020b6dcb64dabdd (diff)
downloadscala-3049afc7ec7ca038dd8d68d26803c0733df01ee1.tar.gz
scala-3049afc7ec7ca038dd8d68d26803c0733df01ee1.tar.bz2
scala-3049afc7ec7ca038dd8d68d26803c0733df01ee1.zip
fixed several old bugs
Diffstat (limited to 'test/files')
-rw-r--r--test/files/neg/bug200.check4
-rw-r--r--test/files/neg/bug200.scala8
-rw-r--r--test/files/neg/bug343.check4
-rw-r--r--test/files/neg/bug343.scala12
-rw-r--r--test/files/neg/bug409.check4
-rw-r--r--test/files/neg/bug409.scala18
-rw-r--r--test/files/neg/bug414.check9
-rw-r--r--test/files/neg/bug414.scala10
-rw-r--r--test/files/neg/bug415.check4
-rw-r--r--test/files/neg/bug415.scala9
-rw-r--r--test/files/neg/bug418.check7
-rw-r--r--test/files/neg/bug418.scala3
-rw-r--r--test/files/neg/bug432.check4
-rw-r--r--test/files/neg/bug432.scala2
-rw-r--r--test/files/neg/bug452.check6
-rw-r--r--test/files/neg/bug452.scala8
-rw-r--r--test/files/neg/bug555.check4
-rw-r--r--test/files/neg/bug555.scala5
-rw-r--r--test/files/neg/bug556.check4
-rw-r--r--test/files/neg/bug556.scala4
-rw-r--r--test/files/neg/bug558.check4
-rw-r--r--test/files/neg/bug558.scala19
-rw-r--r--test/files/pos/bug202.scala8
-rw-r--r--test/files/pos/bug247.scala25
24 files changed, 185 insertions, 0 deletions
diff --git a/test/files/neg/bug200.check b/test/files/neg/bug200.check
new file mode 100644
index 0000000000..d24d832b85
--- /dev/null
+++ b/test/files/neg/bug200.check
@@ -0,0 +1,4 @@
+bug200.scala:7 error: method foo is defined twice
+ def foo: Int;
+ ^
+one error found
diff --git a/test/files/neg/bug200.scala b/test/files/neg/bug200.scala
new file mode 100644
index 0000000000..692fe368e2
--- /dev/null
+++ b/test/files/neg/bug200.scala
@@ -0,0 +1,8 @@
+trait X {
+ def foo: Int;
+}
+
+trait Y extends X {
+ def foo: String;
+ def foo: Int;
+}
diff --git a/test/files/neg/bug343.check b/test/files/neg/bug343.check
new file mode 100644
index 0000000000..5ba5919650
--- /dev/null
+++ b/test/files/neg/bug343.check
@@ -0,0 +1,4 @@
+bug343.scala:5 error: private class Foo escapes its defining scope as part of type C.this.Foo
+ def get:Foo = new Foo();
+ ^
+one error found
diff --git a/test/files/neg/bug343.scala b/test/files/neg/bug343.scala
new file mode 100644
index 0000000000..d04e1479f7
--- /dev/null
+++ b/test/files/neg/bug343.scala
@@ -0,0 +1,12 @@
+package scalaInner1;
+
+class C {
+ private class Foo {}
+ def get:Foo = new Foo();
+}
+
+object Test {
+ def main(args:Array[String]) = {
+ val c = new C().get;
+ }
+}
diff --git a/test/files/neg/bug409.check b/test/files/neg/bug409.check
new file mode 100644
index 0000000000..6d596108fc
--- /dev/null
+++ b/test/files/neg/bug409.check
@@ -0,0 +1,4 @@
+bug409.scala:6 error: `{' expected
+class Toto extends Expr with Case1(12);
+ ^
+one error found
diff --git a/test/files/neg/bug409.scala b/test/files/neg/bug409.scala
new file mode 100644
index 0000000000..5dac2fdaa4
--- /dev/null
+++ b/test/files/neg/bug409.scala
@@ -0,0 +1,18 @@
+abstract class Expr;
+case class Case1(x: Int) extends Expr;
+case class Case2(x: Int) extends Expr;
+case class Case3(x: Int) extends Expr;
+
+class Toto extends Expr with Case1(12);
+
+object Main {
+ def f(x: Expr): Int = x match {
+ case Case1(x) => x
+ case Case2(x) => x
+ case Case3(x) => x
+ }
+
+ def main(args: Array[String]): Unit = {
+ Console.println(f(new Toto));
+ }
+}
diff --git a/test/files/neg/bug414.check b/test/files/neg/bug414.check
new file mode 100644
index 0000000000..dc6f636ff8
--- /dev/null
+++ b/test/files/neg/bug414.check
@@ -0,0 +1,9 @@
+bug414.scala:5 error: stable identifier required, but Empty found.
+ case Empty =>
+ ^
+bug414.scala:7 error: type mismatch;
+ found : scala.Unit
+ required: a
+ case _ =>
+ ^
+two errors found
diff --git a/test/files/neg/bug414.scala b/test/files/neg/bug414.scala
new file mode 100644
index 0000000000..3dff7f7b36
--- /dev/null
+++ b/test/files/neg/bug414.scala
@@ -0,0 +1,10 @@
+case class Empty[a] extends IntMap[a];
+case class Node[a](left: IntMap[a], keyVal: Pair[int, a], right: IntMap[a]) extends IntMap[a];
+abstract class IntMap[a] {
+ def lookup(key: int): a = this match {
+ case Empty =>
+ error("clef inexistante")
+ case _ =>
+ };
+
+};
diff --git a/test/files/neg/bug415.check b/test/files/neg/bug415.check
new file mode 100644
index 0000000000..7a7c5cf4f5
--- /dev/null
+++ b/test/files/neg/bug415.check
@@ -0,0 +1,4 @@
+bug415.scala:8 error: malformed type: A#T
+ val y: String = a.x;
+ ^
+one error found
diff --git a/test/files/neg/bug415.scala b/test/files/neg/bug415.scala
new file mode 100644
index 0000000000..355b6136d1
--- /dev/null
+++ b/test/files/neg/bug415.scala
@@ -0,0 +1,9 @@
+abstract class A {
+ type T <: String;
+ def x: T;
+}
+
+abstract class B {
+ def a: A;
+ val y: String = a.x;
+}
diff --git a/test/files/neg/bug418.check b/test/files/neg/bug418.check
new file mode 100644
index 0000000000..598d6666f5
--- /dev/null
+++ b/test/files/neg/bug418.check
@@ -0,0 +1,7 @@
+bug418.scala:2 error: not found: value Foo12340771
+ null match { case Foo12340771.Bar(x) => x }
+ ^
+bug418.scala:2 error: not found: value x
+ null match { case Foo12340771.Bar(x) => x }
+ ^
+two errors found
diff --git a/test/files/neg/bug418.scala b/test/files/neg/bug418.scala
new file mode 100644
index 0000000000..67007010d4
--- /dev/null
+++ b/test/files/neg/bug418.scala
@@ -0,0 +1,3 @@
+object Test {
+ null match { case Foo12340771.Bar(x) => x }
+}
diff --git a/test/files/neg/bug432.check b/test/files/neg/bug432.check
new file mode 100644
index 0000000000..e6fbd29579
--- /dev/null
+++ b/test/files/neg/bug432.check
@@ -0,0 +1,4 @@
+bug432.scala:2 error: Tata is already defined as case class Tata
+object Tata
+^
+one error found
diff --git a/test/files/neg/bug432.scala b/test/files/neg/bug432.scala
new file mode 100644
index 0000000000..8e3097ac9d
--- /dev/null
+++ b/test/files/neg/bug432.scala
@@ -0,0 +1,2 @@
+case class Tata
+object Tata
diff --git a/test/files/neg/bug452.check b/test/files/neg/bug452.check
new file mode 100644
index 0000000000..de484ef44b
--- /dev/null
+++ b/test/files/neg/bug452.check
@@ -0,0 +1,6 @@
+bug452.scala:3 error: type mismatch;
+ found : Test
+ required: Test.this.Foo
+ def this() = this(this);
+ ^
+one error found
diff --git a/test/files/neg/bug452.scala b/test/files/neg/bug452.scala
new file mode 100644
index 0000000000..855406d0c4
--- /dev/null
+++ b/test/files/neg/bug452.scala
@@ -0,0 +1,8 @@
+object Test {
+ class Foo(x: Foo) {
+ def this() = this(this);
+ }
+ def main(args: Array[String]): Unit = {
+ new Foo();
+ }
+}
diff --git a/test/files/neg/bug555.check b/test/files/neg/bug555.check
new file mode 100644
index 0000000000..5bd0833217
--- /dev/null
+++ b/test/files/neg/bug555.check
@@ -0,0 +1,4 @@
+bug555.scala:4 error: block must end in result expression, not in definition
+ }
+ ^
+one error found
diff --git a/test/files/neg/bug555.scala b/test/files/neg/bug555.scala
new file mode 100644
index 0000000000..26dbe6cc0d
--- /dev/null
+++ b/test/files/neg/bug555.scala
@@ -0,0 +1,5 @@
+object Main extends Application {
+ def tata = {
+ def titi = {}
+ }
+}
diff --git a/test/files/neg/bug556.check b/test/files/neg/bug556.check
new file mode 100644
index 0000000000..39d9f50f85
--- /dev/null
+++ b/test/files/neg/bug556.check
@@ -0,0 +1,4 @@
+bug556.scala:3 error: wrong number of parameters; expected = 1
+ def g:Int = f((x,y)=>x)
+ ^
+one error found
diff --git a/test/files/neg/bug556.scala b/test/files/neg/bug556.scala
new file mode 100644
index 0000000000..4f4e905fbb
--- /dev/null
+++ b/test/files/neg/bug556.scala
@@ -0,0 +1,4 @@
+object Main extends Application {
+ def f(a:Int=>Int):Int = a(4)
+ def g:Int = f((x,y)=>x)
+}
diff --git a/test/files/neg/bug558.check b/test/files/neg/bug558.check
new file mode 100644
index 0000000000..6587939731
--- /dev/null
+++ b/test/files/neg/bug558.check
@@ -0,0 +1,4 @@
+bug558.scala:13 error: value file is not a member of NewModel.this.RootURL
+ final val source = top.file;
+ ^
+one error found
diff --git a/test/files/neg/bug558.scala b/test/files/neg/bug558.scala
new file mode 100644
index 0000000000..f88471f776
--- /dev/null
+++ b/test/files/neg/bug558.scala
@@ -0,0 +1,19 @@
+package scala.tools.nsc.models;
+import scala.tools.util._;
+
+abstract class NewModel {
+ abstract class SymbolURL {
+ val top : RootURL;
+ val name : String;
+ val source : AbstractFile;
+ }
+ abstract class NodeURL extends SymbolURL {
+ val parent : SymbolURL;
+ final val top = parent.top;
+ final val source = top.file;
+
+ }
+ abstract class RootURL extends SymbolURL {
+ final val top : RootURL = this;
+ }
+}
diff --git a/test/files/pos/bug202.scala b/test/files/pos/bug202.scala
new file mode 100644
index 0000000000..087e1ff5d2
--- /dev/null
+++ b/test/files/pos/bug202.scala
@@ -0,0 +1,8 @@
+trait C {
+ type T;
+ def f(x: T): unit;
+}
+
+trait D extends C {
+ def f(x: T): unit = super.f(x);
+}
diff --git a/test/files/pos/bug247.scala b/test/files/pos/bug247.scala
new file mode 100644
index 0000000000..bfd9d9694f
--- /dev/null
+++ b/test/files/pos/bug247.scala
@@ -0,0 +1,25 @@
+class Order[t](less:(t,t) => Boolean,equal:(t,t) => Boolean) {}
+
+trait Map[A, B] extends scala.collection.Map[A, B] {
+ val factory:MapFactory[A]
+}
+abstract class MapFactory[A] {
+ def Empty[B]:Map[A,B];
+}
+
+class TreeMapFactory[KEY](newOrder:Order[KEY]) extends MapFactory[KEY] {
+ val order = newOrder;
+ def Empty[V] = new TreeMap[KEY,V](new TreeMapFactory[KEY](order));
+}
+
+class Tree[KEY,Entry](order:Order[KEY]) {
+ def size =0;
+}
+
+class TreeMap[KEY,VALUE](_factory:TreeMapFactory[KEY]) extends Tree[KEY,Pair[KEY,VALUE]](_factory.order) with Map[KEY, VALUE] {
+ val factory = _factory
+ val order = _factory.order;
+ def this(newOrder:Order[KEY]) = this(new TreeMapFactory[KEY](newOrder));
+ def get(key:KEY) = null;
+ def elements:Iterator[Pair[KEY,VALUE]] = null;
+}