);
}
+
} else {
- // otherwise the ith symbol becomes shadowed
- Integer I = as.getAge( rt.getHrnID() );
- assert I != null;
-
+ // otherwise age is in range [0, k]
+ Integer I = as.getAge( rt.getHrnID() );
+ assert I != null;
assert !rt.isMultiObject();
+ assert rt.getArity() == ReachTuple.ARITY_ONE;
+
+ if( rt.isOutOfContext() ) {
+ // becomes the in-context version
+ baseState = Canonical.union( baseState,
+ ReachTuple.factory( rt.getHrnID(),
+ false, // multi
+ ReachTuple.ARITY_ONE,
+ false // out-of-context
+ )
+ );
- baseState = Canonical.union( baseState,
- ReachTuple.factory( -rt.getHrnID(),
- false, // multi
- rt.getArity(),
- false // out-of-context
- )
- );
+ } else {
+ // otherwise the ith symbol becomes shadowed
+ baseState = Canonical.union( baseState,
+ ReachTuple.factory( -rt.getHrnID(),
+ false, // multi
+ ReachTuple.ARITY_ONE,
+ false // out-of-context
+ )
+ );
+ }
}
}
Iterator<AllocSite> asItr = allocSites.iterator();
while( asItr.hasNext() ) {
AllocSite as = asItr.next();
- rsCaller = Canonical.toCallerContext( rs, as );
- }
+ rsCaller = Canonical.toCallerContext( rsCaller, as );
+ }
// then before adding each derived, now caller-context
// states to the output, attach the appropriate pred
);
}
}
- }
-
+ }
+
assert out.isCanonical();
return out;
}