iterator property
Returns an iterator over the elements in this range. Throws an exception if the range is not discrete or is infinite.
Implementation
@override
Iterator<int> get iterator => _start != null && _end != null
? _RangeIterator<num, int>(this)
: throw Exception('Cannot iterate over infinite range');