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/pending/pos | |
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/pending/pos')
-rw-r--r-- | test/pending/pos/inference.scala | 39 | ||||
-rw-r--r-- | test/pending/pos/local-objects.scala | 9 | ||||
-rw-r--r-- | test/pending/pos/nothing.scala | 24 | ||||
-rw-r--r-- | test/pending/pos/package-case.scala | 4 | ||||
-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/t1957.scala | 38 | ||||
-rw-r--r-- | test/pending/pos/t1987/a.scala | 7 | ||||
-rw-r--r-- | test/pending/pos/t1987/b.scala | 10 | ||||
-rw-r--r-- | test/pending/pos/t2194.scala | 8 | ||||
-rw-r--r-- | test/pending/pos/those-kinds-are-high.scala | 18 |
11 files changed, 80 insertions, 81 deletions
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/local-objects.scala b/test/pending/pos/local-objects.scala deleted file mode 100644 index ed7c50ead9..0000000000 --- a/test/pending/pos/local-objects.scala +++ /dev/null @@ -1,9 +0,0 @@ - - -object Main { - val x = { - object Boo - Boo - } -} - 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/package-case.scala b/test/pending/pos/package-case.scala deleted file mode 100644 index 906f1eb3f2..0000000000 --- a/test/pending/pos/package-case.scala +++ /dev/null @@ -1,4 +0,0 @@ -// a.scala -// Sat Jul 16 00:34:36 EDT 2011 - -package object io { case class TextReader() } 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/t1957.scala b/test/pending/pos/t1957.scala deleted file mode 100644 index f80cf730ed..0000000000 --- a/test/pending/pos/t1957.scala +++ /dev/null @@ -1,38 +0,0 @@ -object Test { - abstract class Settings {} - - abstract class Grist - { self => - type settingsType <: Settings - type moduleType <: Module {type settingsType = self.settingsType} - val module: moduleType - } - - abstract class Tool - { self => - type settingsType <: Settings - type moduleType = Module { type settingsType = self.settingsType } - type gristType = Grist { type moduleType <: self.moduleType; type settingsType <: self.settingsType } - - def inputGrist: List[gristType] - } - - abstract class Module - { self => - type settingsType <: Settings - final type commonModuleType = Module {type settingsType = self.settingsType} - type selfType >: self.type <: commonModuleType - - // BTW: if we use the commented out type declarations, the code compiles successfully - // type gristType = Grist {type settingsType <: self.settingsType; type moduleType <: commonModuleType } - - val tools: List[Tool {type settingsType = self.settingsType}] - - protected def f: List[commonModuleType] = - { - val inputGrists = tools.flatMap(_.inputGrist) // val inputGrists: List[gristType] = - inputGrists.map(_.module) - } - - } -} diff --git a/test/pending/pos/t1987/a.scala b/test/pending/pos/t1987/a.scala deleted file mode 100644 index ff27044b69..0000000000 --- a/test/pending/pos/t1987/a.scala +++ /dev/null @@ -1,7 +0,0 @@ -package bug - -// goes with t1987b.scala -package object packageb { - def func(a: Int) = () - def func(a: String) = () -} diff --git a/test/pending/pos/t1987/b.scala b/test/pending/pos/t1987/b.scala deleted file mode 100644 index a469ca6ea8..0000000000 --- a/test/pending/pos/t1987/b.scala +++ /dev/null @@ -1,10 +0,0 @@ -// compile with t1987a.scala - -package bug.packageb -// Note that the overloading works if instead of being in the package we import it: -// replace the above line with import bug.packageb._ - -class Client { - val x = func(1) // doesn't compile: type mismatch; found: Int(1) required: String - val y = func("1") // compiles -} diff --git a/test/pending/pos/t2194.scala b/test/pending/pos/t2194.scala deleted file mode 100644 index e87be509d1..0000000000 --- a/test/pending/pos/t2194.scala +++ /dev/null @@ -1,8 +0,0 @@ -// tricky to do differently? -class C - -object Test { - def f = { object o extends C; o} - val y: C = f - val x = f -} 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]) } |