summaryrefslogtreecommitdiff
path: root/test/pending
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-02-23 10:59:55 -0800
committerPaul Phillips <paulp@improving.org>2012-02-23 11:06:14 -0800
commit622656dfc87100bc94a37f3b244955c96d526023 (patch)
tree1832c7de4759defc03266e32c33b887554a69647 /test/pending
parent119c9554cf948163433ab12ce8cdd36814f63e4a (diff)
downloadscala-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')
-rw-r--r--test/pending/pos/inference.scala39
-rw-r--r--test/pending/pos/local-objects.scala9
-rw-r--r--test/pending/pos/nothing.scala24
-rw-r--r--test/pending/pos/package-case.scala4
-rw-r--r--test/pending/pos/t1380/gnujaxp.jar.desired.sha11
-rw-r--r--test/pending/pos/t1380/hallo.scala3
-rw-r--r--test/pending/pos/t1957.scala38
-rw-r--r--test/pending/pos/t1987/a.scala7
-rw-r--r--test/pending/pos/t1987/b.scala10
-rw-r--r--test/pending/pos/t2194.scala8
-rw-r--r--test/pending/pos/those-kinds-are-high.scala18
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])
}