summaryrefslogtreecommitdiff
path: root/test/pending/pos
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-05-03 12:05:58 -0700
committerPaul Phillips <paulp@improving.org>2012-05-03 12:16:21 -0700
commit264cef8f9677c59395166da9be0af0bfe83abfa5 (patch)
tree41db0c14e6704edb9a06e92af0d4f6cd1c2f22bf /test/pending/pos
parent453d615fb3c6d0db3a0a43c9232bc12584e39107 (diff)
downloadscala-264cef8f9677c59395166da9be0af0bfe83abfa5.tar.gz
scala-264cef8f9677c59395166da9be0af0bfe83abfa5.tar.bz2
scala-264cef8f9677c59395166da9be0af0bfe83abfa5.zip
Test cases for SI-5472, SI-5399, SI-5685.
Diffstat (limited to 'test/pending/pos')
-rw-r--r--test/pending/pos/t5399.scala15
-rw-r--r--test/pending/pos/t5399a.scala19
-rw-r--r--test/pending/pos/t5685.scala23
-rw-r--r--test/pending/pos/t5685b.scala23
4 files changed, 69 insertions, 11 deletions
diff --git a/test/pending/pos/t5399.scala b/test/pending/pos/t5399.scala
index d8c1d5e51c..89caba39c1 100644
--- a/test/pending/pos/t5399.scala
+++ b/test/pending/pos/t5399.scala
@@ -1,15 +1,8 @@
class Test {
- type AnyCyclic = Execute[Task]#CyclicException[_]
+ class A[T]
+ class B[T](val a: A[T])
- trait Task[T]
+ case class CaseClass[T](x: T)
- trait Execute[A[_] <: AnyRef] {
- class CyclicException[T](val caller: A[T], val target: A[T])
- }
-
- def convertCyclic(c: AnyCyclic): String =
- (c.caller, c.target) match {
- case (caller: Task[_], target: Task[_]) => "bazinga!"
- }
+ def break(existB: B[_]) = CaseClass(existB.a) match { case CaseClass(_) => }
}
-
diff --git a/test/pending/pos/t5399a.scala b/test/pending/pos/t5399a.scala
new file mode 100644
index 0000000000..4ebd85ad03
--- /dev/null
+++ b/test/pending/pos/t5399a.scala
@@ -0,0 +1,19 @@
+class Foo {
+ trait Init[T]
+ class ScopedKey[T] extends Init[T]
+
+ trait Setting[T] {
+ val key: ScopedKey[T]
+ }
+
+ case class ScopedKey1[T](val foo: Init[T]) extends ScopedKey[T]
+
+ val scalaHome: Setting[Option[String]] = null
+ val scalaVersion: Setting[String] = null
+
+ def testPatternMatch(s: Setting[_]) {
+ s.key match {
+ case ScopedKey1(scalaHome.key | scalaVersion.key) => ()
+ }
+ }
+}
diff --git a/test/pending/pos/t5685.scala b/test/pending/pos/t5685.scala
new file mode 100644
index 0000000000..9ac42a174e
--- /dev/null
+++ b/test/pending/pos/t5685.scala
@@ -0,0 +1,23 @@
+trait X[A] {
+ def x: A
+}
+
+trait XPrint[A] extends X[A] {
+ abstract override def x: A = {
+ val a = super.x
+ println(a)
+ a
+ }
+}
+
+trait F[A, B] { outer =>
+ def apply(xv: X[A]): X[B]
+
+ def andThen[C](f: F[B, C]): F[A, C] = new F[A, C] {
+ def apply(xv: X[A]): X[C] = f(new XX(xv) with XPrint[B])
+ }
+
+ class XX(xv: X[A]) extends X[B] {
+ def x = outer(xv).x
+ }
+}
diff --git a/test/pending/pos/t5685b.scala b/test/pending/pos/t5685b.scala
new file mode 100644
index 0000000000..18ff803f89
--- /dev/null
+++ b/test/pending/pos/t5685b.scala
@@ -0,0 +1,23 @@
+trait X[+A] {
+ def x: A
+}
+
+trait XPrint[+A] extends X[A] {
+ abstract override def x: A = {
+ val a = super.x
+ println(a)
+ a
+ }
+}
+
+trait F[-A, +B] { outer =>
+ def apply(xv: X[A]): X[B]
+
+ def andThen[C](f: F[B, C]): F[A, C] = new F[A, C] {
+ def apply(xv: X[A]): X[C] = f(new XX(xv) with XPrint[B])
+ }
+
+ class XX(xv: X[A]) extends X[B] {
+ def x = outer(xv).x
+ }
+}