| Index: sdk/lib/core/iterator.dart
|
| diff --git a/sdk/lib/core/iterator.dart b/sdk/lib/core/iterator.dart
|
| index 5d5e979687f5db87c675484c2177bbdb861ca15f..8a138ff5f07176201d766ff81bff984620970718 100644
|
| --- a/sdk/lib/core/iterator.dart
|
| +++ b/sdk/lib/core/iterator.dart
|
| @@ -9,16 +9,29 @@
|
| *
|
| * If the object iterated over is changed during the iteration, the
|
| * behavior is unspecified.
|
| + *
|
| + * The [Iterator] is initially positioned before the first element. Before
|
| + * accessing the first element the iterator must thus be advanced ([moveNext])
|
| + * to point to the first element. If there is no element left, then [moveNext]
|
| + * returns false.
|
| */
|
| abstract class Iterator<E> {
|
| /**
|
| - * Gets the next element in the iteration. Throws a
|
| - * [StateError] if no element is left.
|
| + * Moves to the next element. Returns true if [current] contains the next
|
| + * element. Returns false, if no element was left. It the latter case
|
| + * trying to read [current] will throw a [StateError].
|
| + *
|
| + * It is safe to invoke [moveNext] even when the iterator is already
|
| + * positioned after the last element. In this case [moveNext] has no effect.
|
| */
|
| - E next();
|
| + bool moveNext();
|
|
|
| /**
|
| - * Returns whether the [Iterator] has elements left.
|
| + * Returns the current element.
|
| + *
|
| + * Throws a [StateError] if the iterator has not yet been moved to the first
|
| + * element, or if the iterator has been moved after the last element of the
|
| + * [Iterable].
|
| */
|
| - bool get hasNext;
|
| + E get current;
|
| }
|
|
|