public class JifProcedureDeclExt_c extends JifExt_c implements JifProcedureDeclExt
ProcedureDecl
node.ProcedureDecl
,
JifProcedureInstance
,
Serialized FormModifier and Type | Class and Description |
---|---|
protected static class |
JifProcedureDeclExt_c.ConstraintVarianceLabelChecker
Checker to ensure that labels do not use
covariant labels in the wrong places
|
Modifier and Type | Field and Description |
---|---|
protected static java.lang.String |
jif_verbose |
Constructor and Description |
---|
JifProcedureDeclExt_c(ToJavaExt toJava) |
Modifier and Type | Method and Description |
---|---|
protected static void |
addCallers(JifProcedureInstance mi,
java.util.Set<Principal> auth)
Adds the caller's authorities into
auth |
protected void |
addReturnConstraints(Label Li,
PathMap X,
JifProcedureInstance mi,
LabelChecker lc,
polyglot.types.Type returnType)
This method corresponds to most of the check-body predicate in the
thesis (Figure 4.40).
|
protected void |
checkActsForAuthority(Principal p,
JifContext A,
LabelChecker lc)
Check that there is a p' in the old "auth" set such that p' actsFor p.
|
protected Label |
checkAutoEndorseConstrainPC(JifProcedureInstance mi,
LabelChecker lc) |
protected void |
checkConstraintVariance(JifProcedureInstance mi,
LabelChecker lc)
Check that covariant labels do not appear in contravariant positions
|
protected Label |
checkEnforceSignature(JifProcedureInstance mi,
LabelChecker lc)
This methods corresponds to the check-arguments predicate in the
thesis (Figure 4.37).
|
protected java.util.List<polyglot.ast.Formal> |
checkFormals(java.util.List<polyglot.ast.Formal> formals,
JifProcedureInstance ci,
LabelChecker lc)
Label check the formals.
|
protected void |
checkProviderAuthority(JifProcedureInstance mi,
LabelChecker lc) |
protected java.util.Set<Principal> |
constrainAuth(JifProcedureInstance mi,
JifContext A)
This method corresponds to the constraint-authority predicate in the
thesis (Figure 4.39).
|
static void |
constrainLabelEnv(JifProcedureInstance mi,
JifContext A,
CallHelper ch)
This method corresponds to the constraint-ph predicate in the thesis
(Figure 4.39).
|
checkAndRemoveThrowType, checkThrowTypes, copy, dump, getPathMap, init, integerBoundsCalculated, labelCheck, toJava, toJava, updatePathMap, X, X
addDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, ext, ext, extRewrite, extRewriteEnter, extRewriteOverride, initPred, lang, node, pred, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, print, printBlock, printSubStmt, superLang, throwTypes, toString, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitList
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
integerBoundsCalculated, labelCheck, toJava, toJava, X, X
addDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, extRewrite, extRewriteEnter, extRewriteOverride, lang, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitList
public JifProcedureDeclExt_c(ToJavaExt toJava)
protected java.util.List<polyglot.ast.Formal> checkFormals(java.util.List<polyglot.ast.Formal> formals, JifProcedureInstance ci, LabelChecker lc) throws polyglot.types.SemanticException
polyglot.types.SemanticException
protected Label checkEnforceSignature(JifProcedureInstance mi, LabelChecker lc) throws polyglot.types.SemanticException
polyglot.types.SemanticException
protected void checkProviderAuthority(JifProcedureInstance mi, LabelChecker lc) throws polyglot.types.SemanticException
polyglot.types.SemanticException
protected Label checkAutoEndorseConstrainPC(JifProcedureInstance mi, LabelChecker lc) throws polyglot.types.SemanticException
polyglot.types.SemanticException
protected java.util.Set<Principal> constrainAuth(JifProcedureInstance mi, JifContext A)
protected static void addCallers(JifProcedureInstance mi, java.util.Set<Principal> auth)
auth
protected void checkActsForAuthority(Principal p, JifContext A, LabelChecker lc) throws polyglot.types.SemanticException
polyglot.types.SemanticException
public static void constrainLabelEnv(JifProcedureInstance mi, JifContext A, CallHelper ch) throws polyglot.types.SemanticException
polyglot.types.SemanticException
protected void addReturnConstraints(Label Li, PathMap X, JifProcedureInstance mi, LabelChecker lc, polyglot.types.Type returnType) throws polyglot.types.SemanticException
polyglot.types.SemanticException
protected void checkConstraintVariance(JifProcedureInstance mi, LabelChecker lc) throws polyglot.types.SemanticException
mi
- lc
- polyglot.types.SemanticException