diff options
author | Martin Odersky <odersky@gmail.com> | 2007-02-12 11:06:34 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2007-02-12 11:06:34 +0000 |
commit | 94e3a13f24d98e3e71bc8f041df8241beb43b234 (patch) | |
tree | ba6235220d7e2b4f4afd4b629b7e7dec312439a3 /src/library | |
parent | d7dc0ad355418a5d297f5baf269404d95a2976b2 (diff) | |
download | scala-94e3a13f24d98e3e71bc8f041df8241beb43b234.tar.gz scala-94e3a13f24d98e3e71bc8f041df8241beb43b234.tar.bz2 scala-94e3a13f24d98e3e71bc8f041df8241beb43b234.zip |
small fixes to newline behavior.
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/Iterator.scala | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/library/scala/Iterator.scala b/src/library/scala/Iterator.scala index a4f2c27c25..528fd68635 100644 --- a/src/library/scala/Iterator.scala +++ b/src/library/scala/Iterator.scala @@ -21,7 +21,7 @@ import compat.StringBuilder * * @author Martin Odersky * @author Matthias Zenger - * @version 1.1, 04/02/2004 + * @version 1.2, 10/02/2007 */ object Iterator { @@ -291,14 +291,15 @@ trait Iterator[+A] { private def predicatedIterator(p: A => boolean, isFilter: boolean) = new BufferedIterator[A] { private var hd: A = _ private var ahead: Boolean = false - private var hasMore = Iterator.this.hasNext private def skip: Unit = - while (!ahead && hasMore) { + while (!ahead && Iterator.this.hasNext) { hd = Iterator.this.next - hasMore = Iterator.this.hasNext - ahead = p(hd) + ahead = !isFilter || p(hd) } - def hasNext: Boolean = { skip; ahead || isFilter && hasMore } + def hasNext: Boolean = { + skip + ahead && p(hd) + } def next: A = if (hasNext) { ahead = false; hd } else throw new NoSuchElementException("next on empty iterator") |