Commit 3143e585 authored by Carlos Galindo's avatar Carlos Galindo
Browse files

Fix NodeHashSet: changed equality criterion and added removal capabilities to iterator.

parent c020ce1c
Loading
Loading
Loading
Loading
+26 −1
Original line number Diff line number Diff line
@@ -80,9 +80,34 @@ public abstract class CustomEqualityHashSet<T> extends AbstractSet<T> {
        return false;
    }

    @Override
    public void clear() {
        map.clear();
        size = 0;
    }

    @Override
    public Iterator<T> iterator() {
        return map.values().stream().flatMap(Collection::stream).iterator();
        Iterator<T> it = map.values().stream().flatMap(Collection::stream).iterator();
        return new Iterator<>() {
            T last = null;

            @Override
            public boolean hasNext() {
                return it.hasNext();
            }

            @Override
            public T next() {
                return last = it.next();
            }

            @Override
            public void remove() {
                if (last != null)
                    CustomEqualityHashSet.this.remove(last);
            }
        };
    }

    @Override
+1 −1
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ public class NodeHashSet<T extends Node> extends CustomEqualityHashSet<T> {

    @Override
    protected boolean objEquals(T a, Object b) {
        return ASTUtils.equalsWithRangeInCU(a, (Node) b);
        return ASTUtils.equalsWithRange(a, (Node) b);
    }

    @Override