aboutsummaryrefslogtreecommitdiff
path: root/tests/invalid/pos/specializes-sym-crash.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-12-20 22:00:29 +0100
committerMartin Odersky <odersky@gmail.com>2015-12-20 22:00:45 +0100
commite51b8845fb20fe3a4e1c655d4b72e2833906bbc2 (patch)
tree91bc16867d7a709566d8be80902b3256294cf338 /tests/invalid/pos/specializes-sym-crash.scala
parent581fee04f808d6f7759f98358e7475e6a58138e3 (diff)
downloaddotty-e51b8845fb20fe3a4e1c655d4b72e2833906bbc2.tar.gz
dotty-e51b8845fb20fe3a4e1c655d4b72e2833906bbc2.tar.bz2
dotty-e51b8845fb20fe3a4e1c655d4b72e2833906bbc2.zip
The big pending/pos test triage
Diffstat (limited to 'tests/invalid/pos/specializes-sym-crash.scala')
-rw-r--r--tests/invalid/pos/specializes-sym-crash.scala27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/invalid/pos/specializes-sym-crash.scala b/tests/invalid/pos/specializes-sym-crash.scala
new file mode 100644
index 000000000..e0e458170
--- /dev/null
+++ b/tests/invalid/pos/specializes-sym-crash.scala
@@ -0,0 +1,27 @@
+// This relies on the naming of the transformed classes which will have to change in the new stdlib.
+import scala.collection._
+
+trait Foo[+A,
+ +Coll,
+ +This <: SeqView[A, Coll] with SeqViewLike[A, Coll, This]]
+extends Seq[A] with SeqLike[A, This] with IterableView[A, Coll] with IterableViewLike[A, Coll, This] {
+self =>
+
+ trait TransformedFoo[+B] extends SeqView[B, Coll] with super.Transformed[B] {
+ def length: Int
+ def apply(idx: Int): B
+ override def toString = viewToString
+ }
+ trait Reversed extends TransformedFoo[A] {
+ override def iterator: Iterator[A] = createReversedIterator
+ def length: Int = self.length
+ def apply(idx: Int): A = self.apply(length - 1 - idx)
+ final override protected[this] def viewIdentifier = "R"
+
+ private def createReversedIterator = {
+ var lst = List[A]()
+ for (elem <- self) lst ::= elem
+ lst.iterator
+ }
+ }
+}