private static class SideEffectsAnalysis.VisibilityLocationAbstraction.VisibilityBasedEffectLocation extends java.lang.Object implements SideEffectsAnalysis.EffectLocation
SideEffectsAnalysis.VisibilityLocationAbstraction
for deeper description
of this abstraction.
The effect locations are stored as bits set on an integer, so
intersect, join, etc. are the standard bitwise operations.Modifier and Type | Field and Description |
---|---|
(package private) int |
visibilityMask |
Constructor and Description |
---|
VisibilityBasedEffectLocation(int visibilityMask) |
Modifier and Type | Method and Description |
---|---|
boolean |
intersectsLocation(SideEffectsAnalysis.EffectLocation otherLocation)
Does the receiver's effect location intersect a given effect location?
That is, could any of the concrete storage locations (fields, variables,
etc.) represented by the receiver be contained in the set of concrete
storage locations represented by the given abstract effect location.
|
boolean |
isEmpty()
Does the effect location represent any possible concrete locations?
|
SideEffectsAnalysis.EffectLocation |
join(SideEffectsAnalysis.EffectLocation otherLocation)
Returns the result of merging the given effect location with
the receiver.
|
public VisibilityBasedEffectLocation(int visibilityMask)
public boolean intersectsLocation(SideEffectsAnalysis.EffectLocation otherLocation)
SideEffectsAnalysis.EffectLocation
intersectsLocation
in interface SideEffectsAnalysis.EffectLocation
public boolean isEmpty()
SideEffectsAnalysis.EffectLocation
isEmpty
in interface SideEffectsAnalysis.EffectLocation
public SideEffectsAnalysis.EffectLocation join(SideEffectsAnalysis.EffectLocation otherLocation)
SideEffectsAnalysis.EffectLocation
join
in interface SideEffectsAnalysis.EffectLocation