return out;
}
- public static ReachState factory(ReachTuple rt) {
- assert rt != null;
- assert rt.isCanonical();
+ public static ReachState factory(ReachTuple... rts) {
ReachState out = new ReachState();
- out.reachTuples.add(rt);
+ for( ReachTuple rt : rts ) {
+ assert rt != null;
+ assert rt.isCanonical();
+ out.reachTuples.add(rt);
+ }
out = (ReachState) Canonical.makeCanonical(out);
return out;
}
}
- public Iterator iterator() {
+ public Iterator<ReachTuple> iterator() {
return reachTuples.iterator();
}
if( hrnID.equals(rt.getHrnID() ) &&
isOutOfContext == rt.isOutOfContext()
) {
- return rt;
+ return rt;
}
}
}
+ public int hashCodeNoPreds() {
+ return reachTuples.hashCode();
+ }
+
+
public boolean equalsIgnorePreds(Object o) {
if( o == null ) {
return false;
public String toStringPreds() {
return reachTuples+":"+preds;
}
+
+ public String toString( boolean hidePreds ) {
+ if( hidePreds ) {
+ return toString();
+ }
+ return toStringPreds();
+ }
+
+
+ public long numNonzeroTuples() {
+ return reachTuples.size();
+ }
}