public abstract class MeetPolicy_c<P extends Policy> extends Policy_c implements MeetPolicy<P>
Constructor and Description |
---|
MeetPolicy_c(java.util.Set<P> components,
JifTypeSystem ts,
polyglot.util.Position pos) |
Modifier and Type | Method and Description |
---|---|
protected abstract Policy |
constructMeetPolicy(java.util.Set<P> components,
polyglot.util.Position pos) |
boolean |
equalsImpl(polyglot.types.TypeObject o) |
int |
hashCode() |
boolean |
hasVariables() |
boolean |
hasWritersToReaders() |
boolean |
isBottom() |
boolean |
isCanonical() |
boolean |
isRuntimeRepresentable() |
boolean |
isSingleton() |
boolean |
isTop() |
PathMap |
labelCheck(JifContext A,
LabelChecker lc) |
protected boolean |
leq_(Policy p,
LabelEnv env,
LabelEnv.SearchState state) |
java.util.Collection<P> |
meetComponents() |
protected Policy |
simplifyImpl() |
Policy |
subst(LabelSubstitution substitution) |
java.util.List<polyglot.types.Type> |
throwTypes(polyglot.types.TypeSystem ts) |
java.lang.String |
toString(java.util.Set<Label> printedLabels) |
protected void |
updateContextForComp(LabelChecker lc,
JifContext A,
PathMap Xprev)
Utility method for updating the context for checking a meet component.
|
public MeetPolicy_c(java.util.Set<P> components, JifTypeSystem ts, polyglot.util.Position pos)
public boolean isSingleton()
isSingleton
in interface Policy
public boolean isCanonical()
isCanonical
in interface Policy
isCanonical
in interface polyglot.types.TypeObject
public boolean isRuntimeRepresentable()
isRuntimeRepresentable
in interface Policy
public boolean equalsImpl(polyglot.types.TypeObject o)
equalsImpl
in interface polyglot.types.TypeObject
equalsImpl
in class Policy_c
public int hashCode()
hashCode
in class polyglot.types.TypeObject_c
public java.lang.String toString(java.util.Set<Label> printedLabels)
protected boolean leq_(Policy p, LabelEnv env, LabelEnv.SearchState state)
public java.util.Collection<P> meetComponents()
meetComponents
in interface MeetPolicy<P extends Policy>
protected Policy simplifyImpl()
simplifyImpl
in class Policy_c
protected abstract Policy constructMeetPolicy(java.util.Set<P> components, polyglot.util.Position pos)
public java.util.List<polyglot.types.Type> throwTypes(polyglot.types.TypeSystem ts)
throwTypes
in interface Policy
public Policy subst(LabelSubstitution substitution) throws polyglot.types.SemanticException
public boolean hasWritersToReaders()
hasWritersToReaders
in interface Policy
hasWritersToReaders
in class Policy_c
public boolean hasVariables()
hasVariables
in interface Policy
hasVariables
in class Policy_c
public PathMap labelCheck(JifContext A, LabelChecker lc)
labelCheck
in interface Policy
protected void updateContextForComp(LabelChecker lc, JifContext A, PathMap Xprev)