diff options
author | Martin Odersky <odersky@gmail.com> | 2006-03-31 10:36:49 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-03-31 10:36:49 +0000 |
commit | 3049afc7ec7ca038dd8d68d26803c0733df01ee1 (patch) | |
tree | 0a41f798b75b4aef55ab00e645cc77b6cdb0be69 /test/pending | |
parent | 7ff239d7a998fb0ef7443e6c2020b6dcb64dabdd (diff) | |
download | scala-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.scala | 31 | ||||
-rw-r--r-- | test/pending/neg/bug432.check | 4 | ||||
-rw-r--r-- | test/pending/neg/bug452.check | 6 | ||||
-rw-r--r-- | test/pending/neg/bug452.scala | 8 | ||||
-rw-r--r-- | test/pending/neg/bug555.check | 4 | ||||
-rw-r--r-- | test/pending/neg/bug556.check | 4 | ||||
-rw-r--r-- | test/pending/neg/bug558.check | 4 | ||||
-rw-r--r-- | test/pending/pos/bug418.scala | 3 | ||||
-rw-r--r-- | test/pending/pos/bug419.scala | 11 | ||||
-rw-r--r-- | test/pending/pos/bug421.scala | 8 | ||||
-rw-r--r-- | test/pending/pos/bug422.scala | 17 | ||||
-rw-r--r-- | test/pending/pos/bug430.scala | 20 | ||||
-rw-r--r-- | test/pending/pos/bug443.scala | 14 | ||||
-rw-r--r-- | test/pending/run/bug405.scala | 5 | ||||
-rw-r--r-- | test/pending/run/bug424.scala | 3 | ||||
-rw-r--r-- | test/pending/run/bug429.scala | 15 | ||||
-rw-r--r-- | test/pending/run/bug441.scala | 12 |
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() +} |