diff options
author | Paul Phillips <paulp@improving.org> | 2012-02-23 10:59:55 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-02-23 11:06:14 -0800 |
commit | 622656dfc87100bc94a37f3b244955c96d526023 (patch) | |
tree | 1832c7de4759defc03266e32c33b887554a69647 /test | |
parent | 119c9554cf948163433ab12ce8cdd36814f63e4a (diff) | |
download | scala-622656dfc87100bc94a37f3b244955c96d526023.tar.gz scala-622656dfc87100bc94a37f3b244955c96d526023.tar.bz2 scala-622656dfc87100bc94a37f3b244955c96d526023.zip |
Moved and edited tests.
Remove obsolete, move passing pending -> files, update
those-kinds-are-high with some new info, added a couple
new ones to pending.
Diffstat (limited to 'test')
-rw-r--r-- | test/files/pos/local-objects.scala (renamed from test/pending/pos/local-objects.scala) | 0 | ||||
-rw-r--r-- | test/files/pos/package-case.scala (renamed from test/pending/pos/package-case.scala) | 0 | ||||
-rw-r--r-- | test/files/pos/t1957.scala (renamed from test/pending/pos/t1957.scala) | 0 | ||||
-rw-r--r-- | test/files/pos/t1987b/a.scala (renamed from test/pending/pos/t1987/a.scala) | 0 | ||||
-rw-r--r-- | test/files/pos/t1987b/b.scala (renamed from test/pending/pos/t1987/b.scala) | 0 | ||||
-rw-r--r-- | test/files/pos/t2194.scala (renamed from test/pending/pos/t2194.scala) | 0 | ||||
-rw-r--r-- | test/pending/pos/inference.scala | 39 | ||||
-rw-r--r-- | test/pending/pos/nothing.scala | 24 | ||||
-rw-r--r-- | test/pending/pos/t1380/gnujaxp.jar.desired.sha1 | 1 | ||||
-rw-r--r-- | test/pending/pos/t1380/hallo.scala | 3 | ||||
-rw-r--r-- | test/pending/pos/those-kinds-are-high.scala | 18 |
11 files changed, 80 insertions, 5 deletions
diff --git a/test/pending/pos/local-objects.scala b/test/files/pos/local-objects.scala index ed7c50ead9..ed7c50ead9 100644 --- a/test/pending/pos/local-objects.scala +++ b/test/files/pos/local-objects.scala diff --git a/test/pending/pos/package-case.scala b/test/files/pos/package-case.scala index 906f1eb3f2..906f1eb3f2 100644 --- a/test/pending/pos/package-case.scala +++ b/test/files/pos/package-case.scala diff --git a/test/pending/pos/t1957.scala b/test/files/pos/t1957.scala index f80cf730ed..f80cf730ed 100644 --- a/test/pending/pos/t1957.scala +++ b/test/files/pos/t1957.scala diff --git a/test/pending/pos/t1987/a.scala b/test/files/pos/t1987b/a.scala index ff27044b69..ff27044b69 100644 --- a/test/pending/pos/t1987/a.scala +++ b/test/files/pos/t1987b/a.scala diff --git a/test/pending/pos/t1987/b.scala b/test/files/pos/t1987b/b.scala index a469ca6ea8..a469ca6ea8 100644 --- a/test/pending/pos/t1987/b.scala +++ b/test/files/pos/t1987b/b.scala diff --git a/test/pending/pos/t2194.scala b/test/files/pos/t2194.scala index e87be509d1..e87be509d1 100644 --- a/test/pending/pos/t2194.scala +++ b/test/files/pos/t2194.scala diff --git a/test/pending/pos/inference.scala b/test/pending/pos/inference.scala new file mode 100644 index 0000000000..d28d003435 --- /dev/null +++ b/test/pending/pos/inference.scala @@ -0,0 +1,39 @@ +// inference illuminator +object Test { + class D1[T1 : Manifest, T2 <: T1 : Manifest](x: T1) { println(manifest[(T1, T2)]) } + class D2[T1 : Manifest, T2 >: T1 : Manifest](x: T1) { println(manifest[(T1, T2)]) } + class D3[+T1 : Manifest, T2 <: T1 : Manifest](x: T1) { println(manifest[(T1, T2)]) } + class D4[-T1 : Manifest, T2 >: T1 : Manifest](x: T1) { println(manifest[(T1, T2)]) } + + class E1[T1 : Manifest, T2 <: T1 : Manifest](x: D1[T1, T2]) { println(manifest[(T1, T2)]) } + class E2[T1 : Manifest, T2 >: T1 : Manifest](x: D2[T1, T2]) { println(manifest[(T1, T2)]) } + class E3[+T1 : Manifest, T2 <: T1 : Manifest](x: D3[T1, T2]) { println(manifest[(T1, T2)]) } + class E4[-T1 : Manifest, T2 >: T1 : Manifest](x: D4[T1, T2]) { println(manifest[(T1, T2)]) } + + def main(args: Array[String]): Unit = { + // WHY YOU NO LIKE NOTHING SO MUCH SCALAC? + val d1 = new D1(5) + val d2 = new D2(5) + val d3 = new D3(5) + val d4 = new D4(5) + + new E1(d1) // fails + new E2(d2) + new E3(d3) // fails + new E4(d4) + } + // found : Test.D1[Int,Nothing] + // required: Test.D1[Int,T2] + // Note: Nothing <: T2, but class D1 is invariant in type T2. + // You may wish to define T2 as +T2 instead. (SLS 4.5) + // new E1(d1) + // ^ + // test/pending/pos/inference.scala:22: error: type mismatch; + // found : Test.D3[Int,Nothing] + // required: Test.D3[Int,T2] + // Note: Nothing <: T2, but class D3 is invariant in type T2. + // You may wish to define T2 as +T2 instead. (SLS 4.5) + // new E3(d3) + // ^ + // two errors found +} diff --git a/test/pending/pos/nothing.scala b/test/pending/pos/nothing.scala new file mode 100644 index 0000000000..f76017fb16 --- /dev/null +++ b/test/pending/pos/nothing.scala @@ -0,0 +1,24 @@ +// More shoddy treatment for nothing. +class A { + class Q3A[+T1, T2 <: T1](x: T1) + class Q3B[+T1, T2 <: T1](x: Q3A[T1, T2]) + + val x1 = new Q3B(new Q3A("a")) + val x2 = new Q3B(new Q3A[String, Nothing]("a")) + val x3 = new Q3B(new Q3A[String, Null]("a")) + // test/pending/pos/nothing.scala:5: error: type mismatch; + // found : A.this.Q3A[String,Nothing] + // required: A.this.Q3A[String,T2] + // Note: Nothing <: T2, but class Q3A is invariant in type T2. + // You may wish to define T2 as +T2 instead. (SLS 4.5) + // val x1 = new Q3B(new Q3A("a")) + // ^ + // test/pending/pos/nothing.scala:6: error: type mismatch; + // found : A.this.Q3A[String,Nothing] + // required: A.this.Q3A[String,T2] + // Note: Nothing <: T2, but class Q3A is invariant in type T2. + // You may wish to define T2 as +T2 instead. (SLS 4.5) + // val x2 = new Q3B(new Q3A[String, Nothing]("a")) + // ^ + // two errors found +} diff --git a/test/pending/pos/t1380/gnujaxp.jar.desired.sha1 b/test/pending/pos/t1380/gnujaxp.jar.desired.sha1 deleted file mode 100644 index c155c2aaa2..0000000000 --- a/test/pending/pos/t1380/gnujaxp.jar.desired.sha1 +++ /dev/null @@ -1 +0,0 @@ -ee000286d00c5209d5644462c1cfea87fc8b1342 ?gnujaxp.jar diff --git a/test/pending/pos/t1380/hallo.scala b/test/pending/pos/t1380/hallo.scala deleted file mode 100644 index bb8fff2333..0000000000 --- a/test/pending/pos/t1380/hallo.scala +++ /dev/null @@ -1,3 +0,0 @@ -object hallo { - def main(args:Array[String]) = println("hallo") -} diff --git a/test/pending/pos/those-kinds-are-high.scala b/test/pending/pos/those-kinds-are-high.scala index 3012e72d7e..434e64cefb 100644 --- a/test/pending/pos/those-kinds-are-high.scala +++ b/test/pending/pos/those-kinds-are-high.scala @@ -27,11 +27,27 @@ class A { // // List[Container[String] with Template[Container[Any] with Template[Container[Any] with Template[Any]]] // + // *** Update 2/24/2012 + // + // Hey, now there are polytypes in the inferred type. + // Not sure if that is progress or regress. + // + // test/pending/pos/those-kinds-are-high.scala:36: error: type mismatch; + // found : C1[String] + // required: ScalaObject with Container[String] with Template[ScalaObject with Container with Template[ScalaObject with Container with Template[[X]Container[X]]]] + // def fFail = List(new C1[String], new C2[String]) + // ^ + // test/pending/pos/those-kinds-are-high.scala:36: error: type mismatch; + // found : C2[String] + // required: ScalaObject with Container[String] with Template[ScalaObject with Container with Template[ScalaObject with Container with Template[[X]Container[X]]]] + // def fFail = List(new C1[String], new C2[String]) + // ^ + // two errors found /** Working version explicitly typed. */ def fExplicit = List[Template[Container] with Container[String]](new C1[String], new C2[String]) // nope - // def fFail = List(new C1[String], new C2[String]) + def fFail = List(new C1[String], new C2[String]) } |