summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2007-12-11 20:26:42 +0000
committerMartin Odersky <odersky@gmail.com>2007-12-11 20:26:42 +0000
commit81c78662cb3b34041c97c169597d1f0552636298 (patch)
tree94a3945c1d338d6755e041d9a913a56bf2e52aba /src/library
parent65e20dbbf95ba5a1c86ae56732527ac2c9485b13 (diff)
downloadscala-81c78662cb3b34041c97c169597d1f0552636298.tar.gz
scala-81c78662cb3b34041c97c169597d1f0552636298.tar.bz2
scala-81c78662cb3b34041c97c169597d1f0552636298.zip
fixed problem with Stream.flatMap, changed text...
fixed problem with Stream.flatMap, changed text of error message for assume failure in Predef.
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/Predef.scala2
-rw-r--r--src/library/scala/Stream.scala13
2 files changed, 4 insertions, 11 deletions
diff --git a/src/library/scala/Predef.scala b/src/library/scala/Predef.scala
index d099fbe8b0..2ecc8fa119 100644
--- a/src/library/scala/Predef.scala
+++ b/src/library/scala/Predef.scala
@@ -103,7 +103,7 @@ object Predef {
def assume(assumption: Boolean, message: Any) {
if (!assumption)
- throw new IllegalArgumentException("assumption failed: " + message)
+ throw new IllegalArgumentException(message.toString)
}
// tupling ------------------------------------------------------------
diff --git a/src/library/scala/Stream.scala b/src/library/scala/Stream.scala
index fb8f5e92bd..a771e1d217 100644
--- a/src/library/scala/Stream.scala
+++ b/src/library/scala/Stream.scala
@@ -431,16 +431,9 @@ trait Stream[+A] extends Seq.Projection[A] {
* @return <code>f(a<sub>0</sub>) ::: ... ::: f(a<sub>n</sub>)</code> if
* this stream is <code>[a<sub>0</sub>, ..., a<sub>n</sub>]</code>.
*/
- override def flatMap[B](f: A => Iterable[B]): Stream[B] = {
- var acc: Stream[B] = Stream.empty
- var these = this
- while (!these.isEmpty) {
- val those = f(these.head)
- if (!those.isEmpty) acc = acc append those.toStream
- these = these.tail
- }
- acc
- }
+ override def flatMap[B](f: A => Iterable[B]): Stream[B] =
+ if (isEmpty) Stream.empty
+ else Stream.fromIterator(f(head).elements) append (tail flatMap f)
override def toStream = this