From 41aa12d24968193e67961e08cc41f3d896c61dcf Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 10 Jun 2014 19:13:51 +0400 Subject: [PATCH] Remove unneeded dependency on ListIterator in ConsPStack --- .../jvm/internal/pcollections/ConsPStack.java | 52 ++++--------------- .../internal/pcollections/IntTreePMap.java | 2 +- 2 files changed, 10 insertions(+), 44 deletions(-) diff --git a/core/runtime.jvm/src/kotlin/reflect/jvm/internal/pcollections/ConsPStack.java b/core/runtime.jvm/src/kotlin/reflect/jvm/internal/pcollections/ConsPStack.java index 93cb7996f30..91fef90dc82 100644 --- a/core/runtime.jvm/src/kotlin/reflect/jvm/internal/pcollections/ConsPStack.java +++ b/core/runtime.jvm/src/kotlin/reflect/jvm/internal/pcollections/ConsPStack.java @@ -1,7 +1,6 @@ package kotlin.reflect.jvm.internal.pcollections; import java.util.Iterator; -import java.util.ListIterator; import java.util.NoSuchElementException; /** @@ -11,7 +10,7 @@ import java.util.NoSuchElementException; * * @author harold */ -public final class ConsPStack implements Iterable { +final class ConsPStack implements Iterable { private static final ConsPStack EMPTY = new ConsPStack(); @SuppressWarnings("unchecked") @@ -36,8 +35,10 @@ public final class ConsPStack implements Iterable { } public E get(int index) { + if (index < 0 || index > size) throw new IndexOutOfBoundsException(); + try { - return listIterator(index).next(); + return iterator(index).next(); } catch (NoSuchElementException e) { throw new IndexOutOfBoundsException("Index: " + index); } @@ -45,18 +46,15 @@ public final class ConsPStack implements Iterable { @Override public Iterator iterator() { - return listIterator(0); + return iterator(0); } public int size() { return size; } - public ListIterator listIterator(final int index) { - if (index < 0 || index > size) throw new IndexOutOfBoundsException(); - - return new ListIterator() { - int i = index; + private Iterator iterator(final int index) { + return new Iterator() { ConsPStack next = subList(index); @Override @@ -64,21 +62,6 @@ public final class ConsPStack implements Iterable { return next.size > 0; } - @Override - public boolean hasPrevious() { - return i > 0; - } - - @Override - public int nextIndex() { - return index; - } - - @Override - public int previousIndex() { - return index - 1; - } - @Override public E next() { E e = next.first; @@ -86,27 +69,10 @@ public final class ConsPStack implements Iterable { return e; } - @Override - public E previous() { - System.err.println("ConsPStack.listIterator().previous() is inefficient, don't use it!"); - next = subList(index - 1); // go from beginning... - return next.first; - } - - @Override - public void add(E o) { - throw new UnsupportedOperationException(); - } - @Override public void remove() { throw new UnsupportedOperationException(); } - - @Override - public void set(E o) { - throw new UnsupportedOperationException(); - } }; } @@ -114,7 +80,7 @@ public final class ConsPStack implements Iterable { return new ConsPStack(e, this); } - public ConsPStack minus(Object e) { + private ConsPStack minus(Object e) { if (size == 0) return this; if (first.equals(e)) // found it return rest; // don't recurse (only remove one) @@ -128,7 +94,7 @@ public final class ConsPStack implements Iterable { return minus(get(i)); } - public ConsPStack subList(int start) { + private ConsPStack subList(int start) { if (start < 0 || start > size) throw new IndexOutOfBoundsException(); if (start == 0) diff --git a/core/runtime.jvm/src/kotlin/reflect/jvm/internal/pcollections/IntTreePMap.java b/core/runtime.jvm/src/kotlin/reflect/jvm/internal/pcollections/IntTreePMap.java index 169409aee9b..9a77bb2f5b8 100644 --- a/core/runtime.jvm/src/kotlin/reflect/jvm/internal/pcollections/IntTreePMap.java +++ b/core/runtime.jvm/src/kotlin/reflect/jvm/internal/pcollections/IntTreePMap.java @@ -19,7 +19,7 @@ package kotlin.reflect.jvm.internal.pcollections; * * @author harold */ -public final class IntTreePMap { +final class IntTreePMap { private static final IntTreePMap EMPTY = new IntTreePMap(IntTree.EMPTYNODE); @SuppressWarnings("unchecked")