diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/pcollections/ConsPStack.java b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/pcollections/ConsPStack.java index 5d9f5883c18..5f57f340bc7 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/pcollections/ConsPStack.java +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/pcollections/ConsPStack.java @@ -67,27 +67,33 @@ final class ConsPStack implements Iterable { return size; } - private Iterator iterator(final int index) { - return new Iterator() { - ConsPStack next = subList(index); + private Iterator iterator(int index) { + return new Itr(subList(index)); + } - @Override - public boolean hasNext() { - return next.size > 0; - } + private static class Itr implements Iterator { + private ConsPStack next; - @Override - public E next() { - E e = next.first; - next = next.rest; - return e; - } + public Itr(ConsPStack first) { + this.next = first; + } - @Override - public void remove() { - throw new UnsupportedOperationException(); - } - }; + @Override + public boolean hasNext() { + return next.size > 0; + } + + @Override + public E next() { + E e = next.first; + next = next.rest; + return e; + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } } public ConsPStack plus(E e) {