From 7b61bdb9b1dc2d7f03285e664de1ef55a4b66559 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 21 Jan 2014 18:06:22 +0400 Subject: [PATCH] Overload constructor of Composite iterator for lazy use cases This time in the right file --- libraries/stdlib/src/kotlin/Iterators.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libraries/stdlib/src/kotlin/Iterators.kt b/libraries/stdlib/src/kotlin/Iterators.kt index 1a900359b2d..eaf4510c37d 100644 --- a/libraries/stdlib/src/kotlin/Iterators.kt +++ b/libraries/stdlib/src/kotlin/Iterators.kt @@ -112,16 +112,17 @@ class FunctionIterator(val nextFunction: () -> T?): AbstractIterator() } /** An [[Iterator]] which iterates over a number of iterators in sequence */ -class CompositeIterator(vararg iterators: Iterator): AbstractIterator() { +fun CompositeIterator(vararg iterators: Iterator): CompositeIterator = CompositeIterator(iterators.iterator()) + +class CompositeIterator(val iterators: Iterator>): AbstractIterator() { - val iteratorsIter = iterators.iterator() var currentIter: Iterator? = null override protected fun computeNext(): Unit { while (true) { if (currentIter == null) { - if (iteratorsIter.hasNext()) { - currentIter = iteratorsIter.next() + if (iterators.hasNext()) { + currentIter = iterators.next() } else { done() return