public void clear(int bit) { acquire(); value.clear(bit); }
private void merge(TypeVariableBV var) throws TypeException { if (depth != 0 || var.depth != 0) { throw new InternalTypingException(); } // Merge types if (type == null) { type = var.type; } else if (var.type != null) { error("Type Error(1): Attempt to merge two types."); } parents.or(var.parents); parents.clear(var.ownId()); parents.clear(this.ownId()); children.or(var.children); children.clear(var.ownId()); children.clear(this.ownId()); }
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); }
public TypeVariableBV union(TypeVariableBV var) throws TypeException { if (rep != this) { return ecr().union(var); } TypeVariableBV y = var.ecr(); if (this == y) { parents.clear(var.ownId()); children.clear(var.ownId()); return this; } if (rank > y.rank) { resolver.invalidateId(y.id()); y.rep = this; merge(y); y.clear(); return this; } resolver.invalidateId(this.id()); rep = y; if (rank == y.rank) { y.rank++; } y.merge(this); clear(); return y; }
public void clear(int bit) { acquire(); value.clear(bit); } public boolean get(int bit) {
public void clear(int bit) { acquire(); value.clear(bit); } public boolean get(int bit) {
private void merge(TypeVariableBV var) throws TypeException { if(depth != 0 || var.depth != 0) { throw new InternalTypingException(); } // Merge types if(type == null) { type = var.type; } else if(var.type != null) { error("Type Error(1): Attempt to merge two types."); } parents.or(var.parents); parents.clear(var.ownId()); parents.clear(this.ownId()); children.or(var.children); children.clear(var.ownId()); children.clear(this.ownId()); }
private void merge(TypeVariableBV var) throws TypeException { if(depth != 0 || var.depth != 0) { throw new InternalTypingException(); } // Merge types if(type == null) { type = var.type; } else if(var.type != null) { error("Type Error(1): Attempt to merge two types."); } parents.or(var.parents); parents.clear(var.ownId()); parents.clear(this.ownId()); children.or(var.children); children.clear(var.ownId()); children.clear(this.ownId()); }
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); }
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); }