summaryrefslogtreecommitdiff
path: root/test/pending
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/pending
parent7ff239d7a998fb0ef7443e6c2020b6dcb64dabdd (diff)
downloadscala-3049afc7ec7ca038dd8d68d26803c0733df01ee1.tar.gz
scala-3049afc7ec7ca038dd8d68d26803c0733df01ee1.tar.bz2
scala-3049afc7ec7ca038dd8d68d26803c0733df01ee1.zip
fixed several old bugs
Diffstat (limited to 'test/pending')
-rw-r--r--test/pending/neg/bug412.scala31
-rw-r--r--test/pending/neg/bug432.check4
-rw-r--r--test/pending/neg/bug452.check6
-rw-r--r--test/pending/neg/bug452.scala8
-rw-r--r--test/pending/neg/bug555.check4
-rw-r--r--test/pending/neg/bug556.check4
-rw-r--r--test/pending/neg/bug558.check4
-rw-r--r--test/pending/pos/bug418.scala3
-rw-r--r--test/pending/pos/bug419.scala11
-rw-r--r--test/pending/pos/bug421.scala8
-rw-r--r--test/pending/pos/bug422.scala17
-rw-r--r--test/pending/pos/bug430.scala20
-rw-r--r--test/pending/pos/bug443.scala14
-rw-r--r--test/pending/run/bug405.scala5
-rw-r--r--test/pending/run/bug424.scala3
-rw-r--r--test/pending/run/bug429.scala15
-rw-r--r--test/pending/run/bug441.scala12
17 files changed, 169 insertions, 0 deletions
diff --git a/test/pending/neg/bug412.scala b/test/pending/neg/bug412.scala
new file mode 100644
index 0000000000..66de4761fb
--- /dev/null
+++ b/test/pending/neg/bug412.scala
@@ -0,0 +1,31 @@
+object Magic {
+
+ abstract class A[T1,T2]() {
+ trait C { type T; }
+ trait C1 extends C { type T = T1; }
+ trait C2 extends C { type T <: T2; }
+
+ type CX;
+ val c: CX with C2 = null;
+
+ def castA(x: c.T): T2 = x;
+ }
+
+ class B[T1,T2] extends A[T1,T2]() {
+ type CX = C1;
+
+ def castB(x: T1): T2 = castA(x);
+ }
+
+ def cast[T1,T2](v: T1): T2 =
+ new B[T1,T2]().castB(v)
+
+}
+
+object Test {
+
+ def main(args: Array[String]): Unit = {
+ Magic.cast[String,Exception]("xyz").printStackTrace();
+ }
+
+}
diff --git a/test/pending/neg/bug432.check b/test/pending/neg/bug432.check
new file mode 100644
index 0000000000..e6fbd29579
--- /dev/null
+++ b/test/pending/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/pending/neg/bug452.check b/test/pending/neg/bug452.check
new file mode 100644
index 0000000000..de484ef44b
--- /dev/null
+++ b/test/pending/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/pending/neg/bug452.scala b/test/pending/neg/bug452.scala
new file mode 100644
index 0000000000..855406d0c4
--- /dev/null
+++ b/test/pending/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/pending/neg/bug555.check b/test/pending/neg/bug555.check
new file mode 100644
index 0000000000..5bd0833217
--- /dev/null
+++ b/test/pending/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/pending/neg/bug556.check b/test/pending/neg/bug556.check
new file mode 100644
index 0000000000..39d9f50f85
--- /dev/null
+++ b/test/pending/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/pending/neg/bug558.check b/test/pending/neg/bug558.check
new file mode 100644
index 0000000000..6587939731
--- /dev/null
+++ b/test/pending/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/pending/pos/bug418.scala b/test/pending/pos/bug418.scala
new file mode 100644
index 0000000000..67007010d4
--- /dev/null
+++ b/test/pending/pos/bug418.scala
@@ -0,0 +1,3 @@
+object Test {
+ null match { case Foo12340771.Bar(x) => x }
+}
diff --git a/test/pending/pos/bug419.scala b/test/pending/pos/bug419.scala
new file mode 100644
index 0000000000..65dcb04356
--- /dev/null
+++ b/test/pending/pos/bug419.scala
@@ -0,0 +1,11 @@
+trait Bar {
+ class Config {}
+ var config: Config; // aha, traits can have variables?
+}
+
+object Foo extends Bar {
+
+ class FooConfig extends Config;
+ var config: Config = new FooConfig() // or not
+
+}
diff --git a/test/pending/pos/bug421.scala b/test/pending/pos/bug421.scala
new file mode 100644
index 0000000000..3e014b7500
--- /dev/null
+++ b/test/pending/pos/bug421.scala
@@ -0,0 +1,8 @@
+object foo {
+ case class Bar(a:String, b:Object, c:String*);
+
+ Bar("foo","meets","bar") match {
+ case Bar("foo",_*) => error("huh?");
+ }
+
+}
diff --git a/test/pending/pos/bug422.scala b/test/pending/pos/bug422.scala
new file mode 100644
index 0000000000..cb3ba279d4
--- /dev/null
+++ b/test/pending/pos/bug422.scala
@@ -0,0 +1,17 @@
+import scala.util.regexp.WordExp;
+import scala.util.automata.WordBerrySethi;
+
+object BoolWordExp extends WordExp {
+ type _labelT = MyLabels;
+ type _regexpT = RegExp;
+ abstract class MyLabels extends Label ;
+ case class MyLabel(c:Char) extends MyLabels;
+}
+
+object MyTranslator extends WordBerrySethi {
+ override val lang = BoolWordExp;
+ import lang._;
+ override protected def seenLabel( r:RegExp, i:Int, label: _labelT ): Unit = {
+ super.seenLabel(r,i,label)
+ }
+}
diff --git a/test/pending/pos/bug430.scala b/test/pending/pos/bug430.scala
new file mode 100644
index 0000000000..7e3e7eaaec
--- /dev/null
+++ b/test/pending/pos/bug430.scala
@@ -0,0 +1,20 @@
+object Test extends Application {
+ def foo[T <% Ordered[T]](x: T): Unit = System.out.println(""+(x < x)+" "+(x <= x))
+ def bar(x: Unit ): Unit = foo(x);
+ def bar(x: Boolean): Unit = foo(x);
+ def bar(x: Byte ): Unit = foo(x);
+ def bar(x: Short ): Unit = foo(x);
+ def bar(x: Int ): Unit = foo(x);
+ def bar(x: Long ): Unit = foo(x);
+ def bar(x: Float ): Unit = foo(x);
+ def bar(x: Double ): Unit = foo(x);
+ bar(())
+ bar(true)
+ bar(1: byte)
+ bar(1: short)
+ bar('a')
+ bar(1)
+ bar(1l)
+ bar(1.0f)
+ bar(1.0)
+}
diff --git a/test/pending/pos/bug443.scala b/test/pending/pos/bug443.scala
new file mode 100644
index 0000000000..5b83e9d2cb
--- /dev/null
+++ b/test/pending/pos/bug443.scala
@@ -0,0 +1,14 @@
+object Test {
+
+ def lookup(): Option[Pair[String, String]] =
+ (null: Option[Pair[String, String]]) match {
+ case Some(Pair(_, _)) =>
+ if (true)
+ Some(Pair(null, null))
+ else
+ lookup() match {
+ case Some(_) => Some(null)
+ case None => None
+ }
+ }
+}
diff --git a/test/pending/run/bug405.scala b/test/pending/run/bug405.scala
new file mode 100644
index 0000000000..a1e3864496
--- /dev/null
+++ b/test/pending/run/bug405.scala
@@ -0,0 +1,5 @@
+object Test extends Application {
+ val x = M;
+ object M;
+ assert(x eq M)
+}
diff --git a/test/pending/run/bug424.scala b/test/pending/run/bug424.scala
new file mode 100644
index 0000000000..bc7a55732d
--- /dev/null
+++ b/test/pending/run/bug424.scala
@@ -0,0 +1,3 @@
+object M {
+ def f = 3;
+}
diff --git a/test/pending/run/bug429.scala b/test/pending/run/bug429.scala
new file mode 100644
index 0000000000..b2cc8128c0
--- /dev/null
+++ b/test/pending/run/bug429.scala
@@ -0,0 +1,15 @@
+object Test {
+ abstract class A {
+ Console.print("A");
+ val x: Int;
+ val y: Int = {Console.print("y"); x + 1}
+ }
+ class B extends A {
+ Console.print("B");
+ val z = 0;
+ val x = 4 + z
+ }
+ def main (args: Array[String]): Unit = {
+ Console.print((new B).y);
+ }
+}
diff --git a/test/pending/run/bug441.scala b/test/pending/run/bug441.scala
new file mode 100644
index 0000000000..d90e872baa
--- /dev/null
+++ b/test/pending/run/bug441.scala
@@ -0,0 +1,12 @@
+object Test extends Application {
+
+ def bug() = {
+ val foo: Array[String] = Array("1","2","3");
+ if( foo.length == null ) // == 0 makes more sense, but still
+ Console.println("plante"); // this code leads to runtime crash
+ else
+ Console.println("plante pas");
+ }
+
+ bug()
+}