From 3a0713b4e092cd768d748ca078ab40cc32068fec Mon Sep 17 00:00:00 2001 From: Aleksandar Pokopec Date: Tue, 22 Dec 2009 14:00:58 +0000 Subject: fixed #2548 - reverse, reverseIterator for view... fixed #2548 - reverse, reverseIterator for views bug. Also - reverseMap for views now should work. review by phaller. --- src/library/scala/collection/SeqViewLike.scala | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/library') diff --git a/src/library/scala/collection/SeqViewLike.scala b/src/library/scala/collection/SeqViewLike.scala index 66345ed311..1a8cd20013 100644 --- a/src/library/scala/collection/SeqViewLike.scala +++ b/src/library/scala/collection/SeqViewLike.scala @@ -117,10 +117,16 @@ trait SeqViewLike[+A, } trait Reversed extends Transformed[A] { - override def iterator: Iterator[A] = self.reverseIterator + override def iterator: Iterator[A] = createReversedIterator override def length: Int = self.length override def apply(idx: Int): A = self.apply(length - 1 - idx) override def stringPrefix = self.stringPrefix+"R" + + private def createReversedIterator = { + var lst = List[A]() + for (elem <- self) lst ::= elem + lst.iterator + } } trait Patched[B >: A] extends Transformed[B] { @@ -166,6 +172,9 @@ trait SeqViewLike[+A, override def padTo[B >: A, That](len: Int, elem: B)(implicit bf: CanBuildFrom[This, B, That]): That = patch(length, fill(len - length)(elem), 0) + override def reverseMap[B, That](f: A => B)(implicit bf: CanBuildFrom[This, B, That]): That = + reverse.map(f) + override def stringPrefix = "SeqView" } -- cgit v1.2.3