public BitSetIterator iterator() { return value.iterator(); }
private void dfsg_visit(TypeVariableBV var) { BitVector parents = var.parents(); for (BitSetIterator i = parents.iterator(); i.hasNext();) { TypeVariableBV parent = resolver.typeVariableForId(i.next()); if (!black.contains(parent)) { black.add(parent); dfsg_visit(parent); } } finished.add(0, var); }
private void dfsgt_visit(TypeVariableBV var) { current_tree.add(var); BitVector children = var.children(); for (BitSetIterator i = children.iterator(); i.hasNext();) { TypeVariableBV child = resolver.typeVariableForId(i.next()); if (!black.contains(child)) { black.add(child); dfsgt_visit(child); } } } }
finished = new LinkedList<TypeVariableBV>(); for (BitSetIterator i = variables.iterator(); i.hasNext();) { TypeVariableBV var = resolver.typeVariableForId(i.next());
/** Calls v's visit method on all nodes in this set. */ public final boolean forall(P2SetVisitor v) { for (BitSetIterator it = bits.iterator(); it.hasNext();) { v.visit((Node) pag.getAllocNodeNumberer().get(it.next())); } return v.getReturnValue(); }
public void removeIndirectRelations() { if (rep != this) { ecr().removeIndirectRelations(); return; } if (indirectAncestors == null) { fixAncestors(); } BitVector parentsToRemove = new BitVector(); for (BitSetIterator parentIt = parents.iterator(); parentIt.hasNext();) { final int parent = parentIt.next(); if (indirectAncestors.get(parent)) { parentsToRemove.set(parent); } } for (BitSetIterator i = parentsToRemove.iterator(); i.hasNext();) { removeParent(resolver.typeVariableForId(i.next())); } }
private void remove_transitive_constraints() throws TypeException { refresh_solved(); BitVector list = new BitVector(); list.or(solved); list.or(unsolved); for (BitSetIterator varIt = list.iterator(); varIt.hasNext();) { final TypeVariableBV var = typeVariableForId(varIt.next()); var.removeIndirectRelations(); } }
/** Calls v's visit method on all nodes in this set. */ public final boolean forall(P2SetVisitor v) { if (bits == null) { for (Node node : nodes) { if (node == null) { return v.getReturnValue(); } v.visit(node); } } else { for (BitSetIterator it = bits.iterator(); it.hasNext();) { v.visit(pag.getAllocNodeNumberer().get(it.next())); } } return v.getReturnValue(); }
for (BitSetIterator i = parents.iterator(); i.hasNext();) { TypeVariableBV parent = resolver.typeVariableForId(i.next()).ecr();
BitSetIterator i = single_child_not_null.iterator(); while (i.hasNext()) { TypeVariableBV var = typeVariableForId(i.next()); TypeVariableBV child = typeVariableForId(var.children().iterator().next()); BitSetIterator i = single_soft_parent.iterator(); while (i.hasNext()) { TypeVariableBV var = typeVariableForId(i.next()); TypeVariableBV parent = typeVariableForId(var.parents().iterator().next()); BitSetIterator i = single_hard_parent.iterator(); while (i.hasNext()) { TypeVariableBV var = typeVariableForId(i.next()); TypeVariableBV parent = typeVariableForId(var.parents().iterator().next()); BitSetIterator i = single_null_child.iterator(); while (i.hasNext()) { TypeVariableBV var = typeVariableForId(i.next()); TypeVariableBV child = typeVariableForId(var.children().iterator().next()); multiple_children: for (BitSetIterator varIt = multiple_children.iterator(); varIt.hasNext();) { final TypeVariableBV var = typeVariableForId(varIt.next()); TypeNode lca = null; BitVector children_to_remove = new BitVector();
private void refresh_solved() throws TypeException { unsolved = new BitVector(); // solved stays the same for (BitSetIterator varIt = unsolved.iterator(); varIt.hasNext();) { final TypeVariableBV var = typeVariableForId(varIt.next()); if (var.depth() == 0) { if (var.type() == null) { unsolved.set(var.id()); } else { solved.set(var.id()); } } } // validate(); }
private void fixAncestors() { BitVector ancestors = new BitVector(0); BitVector indirectAncestors = new BitVector(0); fixParents(); for (BitSetIterator i = parents.iterator(); i.hasNext();) { TypeVariableBV parent = resolver.typeVariableForId(i.next()).ecr(); if (parent.ancestors == null) { parent.fixAncestors(); } ancestors.set(parent.id); ancestors.or(parent.ancestors); indirectAncestors.or(parent.ancestors); } this.ancestors = ancestors; this.indirectAncestors = indirectAncestors; }
BitSetIterator varIt = solved.iterator(); while (varIt.hasNext()) { TypeVariableBV var = typeVariableForId(varIt.next()); if (parents.length() != 0) { finished = false; for (BitSetIterator j = parents.iterator(); j.hasNext();) { if (DEBUG) { logger.debug("."); if (children.length() != 0) { finished = false; for (BitSetIterator j = children.iterator(); j.hasNext();) { if (DEBUG) { logger.debug(".");
private void fixParents() { if (rep != this) { ecr().fixParents(); } BitVector invalid = new BitVector(); invalid.or(parents); invalid.and(resolver.invalidIds()); for (BitSetIterator i = invalid.iterator(); i.hasNext();) { parents.set(resolver.typeVariableForId(i.next()).id()); } parents.clear(this.id); parents.clear(this.id()); parents.andNot(invalid); }
multiple_children = new BitVector(); for (BitSetIterator i = unsolved.iterator(); i.hasNext();) { TypeVariableBV var = typeVariableForId(i.next()); single_soft_parent.set(var.id()); } else if (size == 1) { TypeVariableBV parent = typeVariableForId(parents.iterator().next()); single_null_child.set(var.id()); } else if (size == 1) { TypeVariableBV child = typeVariableForId(children.iterator().next());
BitSetIterator( NumberedSet set ) { iter = set.bits.iterator(); } public final boolean hasNext() { return iter.hasNext(); }
private void remove_transitive_constraints() throws TypeException { refresh_solved(); BitVector list = new BitVector(); list.or(solved); list.or(unsolved); for( BitSetIterator varIt = list.iterator(); varIt.hasNext(); ) { final TypeVariableBV var = typeVariableForId(varIt.next()); var.removeIndirectRelations(); } }