diff options
author | Josh Suereth <Joshua.Suereth@gmail.com> | 2012-08-20 09:41:58 -0700 |
---|---|---|
committer | Josh Suereth <Joshua.Suereth@gmail.com> | 2012-08-20 09:41:58 -0700 |
commit | c51d0a8ad9aba128cd317ddbc13f1f49935066f0 (patch) | |
tree | 4e9a18a1aff2af3c8a89c6c71e8aab34b1b4e3af /test/files/pos/specializes-sym-crash.scala | |
parent | c32b189a2a2575512d0dc8d91a400d773b53a7f0 (diff) | |
parent | df9f470f14262b9b1002f022c2620d8c38835805 (diff) | |
download | scala-c51d0a8ad9aba128cd317ddbc13f1f49935066f0.tar.gz scala-c51d0a8ad9aba128cd317ddbc13f1f49935066f0.tar.bz2 scala-c51d0a8ad9aba128cd317ddbc13f1f49935066f0.zip |
Merge pull request #1164 from gkossakowski/topic/opt
Compiler optimizations (take 3, hopefully final)
Diffstat (limited to 'test/files/pos/specializes-sym-crash.scala')
-rw-r--r-- | test/files/pos/specializes-sym-crash.scala | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/files/pos/specializes-sym-crash.scala b/test/files/pos/specializes-sym-crash.scala new file mode 100644 index 0000000000..c46f435ac4 --- /dev/null +++ b/test/files/pos/specializes-sym-crash.scala @@ -0,0 +1,26 @@ +import scala.collection._ + +trait Foo[+A, + +Coll, + +This <: GenSeqView[A, Coll] with GenSeqViewLike[A, Coll, This]] +extends GenSeq[A] with GenSeqLike[A, This] with GenIterableView[A, Coll] with GenIterableViewLike[A, Coll, This] { +self => + + trait Transformed[+B] extends GenSeqView[B, Coll] with super.Transformed[B] { + def length: Int + def apply(idx: Int): B + override def toString = viewToString + } + trait Reversed extends Transformed[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 + } + } +} |