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/files/run/bug3516.scala | |
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/files/run/bug3516.scala')
-rw-r--r-- | test/files/run/bug3516.scala | 13 |
1 files changed, 13 insertions, 0 deletions
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) + () + } +} |