From f3d87c08f6bcdb864e6990194668ad6dc16826a9 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Tue, 1 Jun 2010 17:44:33 +0000 Subject: Make Iterator.toStream be properly lazy. --- test/files/run/bug3516.scala | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 test/files/run/bug3516.scala (limited to 'test/files/run/bug3516.scala') 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) + () + } +} -- cgit v1.2.3