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