diff options
author | Paul Phillips <paulp@improving.org> | 2010-06-01 17:44:33 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-06-01 17:44:33 +0000 |
commit | f3d87c08f6bcdb864e6990194668ad6dc16826a9 (patch) | |
tree | e2ce1bae13f4e9a62b267884dcb7824329b46388 /test | |
parent | 8acca208ae541e44f306a50c210e2626f571332b (diff) | |
download | scala-f3d87c08f6bcdb864e6990194668ad6dc16826a9.tar.gz scala-f3d87c08f6bcdb864e6990194668ad6dc16826a9.tar.bz2 scala-f3d87c08f6bcdb864e6990194668ad6dc16826a9.zip |
Make Iterator.toStream be properly lazy.
Diffstat (limited to 'test')
-rw-r--r-- | test/files/run/bug3516.check | 3 | ||||
-rw-r--r-- | test/files/run/bug3516.scala | 13 |
2 files changed, 16 insertions, 0 deletions
diff --git a/test/files/run/bug3516.check b/test/files/run/bug3516.check new file mode 100644 index 0000000000..d0d10d82fa --- /dev/null +++ b/test/files/run/bug3516.check @@ -0,0 +1,3 @@ +1 +1 +21 diff --git a/test/files/run/bug3516.scala b/test/files/run/bug3516.scala new file mode 100644 index 0000000000..aa302ce85a --- /dev/null +++ b/test/files/run/bug3516.scala @@ -0,0 +1,13 @@ +object Test { + def mkIterator = (1 to 5).iterator map (x => { println(x) ; x }) + def mkInfinite = Iterator continually { println(1) ; 1 } + + def main(args: Array[String]): Unit = { + // Stream is strict in its head so we should see 1 from each of them. + val s1 = mkIterator.toStream + val s2 = mkInfinite.toStream + // back and forth without slipping into nontermination. + println((Stream from 1).toIterator.drop(10).toStream.drop(10).toIterator.next) + () + } +} |