in model/src/main/java/jetbrains/jetpad/model/util/ListMap.java [165:197]
private <T> Iterator<T> mapIterator(final IteratorSpec spec) {
return new Iterator<T>() {
private int index = 0;
private boolean nextCalled = false;
@Override
public boolean hasNext() {
return index < myData.length;
}
@Override
public T next() {
if (!hasNext()) {
throw new NoSuchElementException();
}
nextCalled = true;
@SuppressWarnings("unchecked")
T value = (T) spec.get(index);
index += 2;
return value;
}
@Override
public void remove() {
if (!nextCalled) {
throw new IllegalStateException();
}
index -= 2;
removeAt(index);
nextCalled = false;
}
};
}