1. override
Iterable<T> takeWhile(bool test(T value))

Returns a lazy iterable of the leading elements satisfying test.

The filtering happens lazily. Every new iterator of the returned iterable starts iterating over the elements of this.

The elements can be computed by stepping through iterator until an element is found where test(element) is false. At that point, the returned iterable stops (its moveNext() returns false).

Source

@override
Iterable<T> takeWhile(bool test(T value)) {
  return _children.takeWhile(test);
}