From 65c180a5ddccfde0632872df6b118c0fe8293064 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Tue, 12 Jan 2010 14:11:02 +0000 Subject: A fix for at least one manifestation of #2865. collections and "size" don't mix! --- src/library/scala/collection/IndexedSeqViewLike.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/library/scala/collection/IndexedSeqViewLike.scala b/src/library/scala/collection/IndexedSeqViewLike.scala index 06fa6c8953..5b0b04e5be 100644 --- a/src/library/scala/collection/IndexedSeqViewLike.scala +++ b/src/library/scala/collection/IndexedSeqViewLike.scala @@ -45,7 +45,11 @@ trait IndexedSeqViewLike[+A, trait Zipped[B] extends Transformed[(A, B)] { protected[this] val other: Iterable[B] - def length = self.length min other.size + /** Have to be careful here - other may be an infinite sequence. */ + def length = + if (other.hasDefiniteSize) self.length min other.size + else other take self.length size + def apply(idx: Int): (A, B) = (self.apply(idx), other.iterator drop idx next) override def stringPrefix = self.stringPrefix+"Z" } -- cgit v1.2.3