public class JifConstructorDeclExt extends JifProcedureDeclExt_c
JifConstructorDecl node.ConstructorDecl,
JifConstructorDecl,
Serialized FormJifProcedureDeclExt_c.ConstraintVarianceLabelCheckerjif_verbose| Constructor and Description |
|---|
JifConstructorDeclExt(ToJavaExt toJava) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
checkFinalFieldAssignment(polyglot.ast.Stmt s_,
java.util.Set<JifFieldInstance> uninitFinalVars,
JifContext A)
Check if the stmt is an assignment to a final field.
|
protected polyglot.ast.Block |
checkInitsAndBody(Label Li,
JifConstructorInstance ci,
polyglot.ast.Block body,
LabelChecker lc)
This method implements the check-inits predicate of the thesis
(Figures 4.41-45).
|
polyglot.ast.Node |
labelCheck(LabelChecker lc)
Label check the node to which this extension is attached.
|
protected void |
setEndOfInitChecking(LabelChecker lc,
JifConstructorInstance ci) |
protected static java.util.Set<JifFieldInstance> |
uninitFinalFields(polyglot.types.ReferenceType type)
Utility method to get the set of field instances of final fields of
the given
ReferenceType that do not have an initializer. |
protected void |
updateContextForNextStmt(LabelChecker lc,
JifContext A,
PathMap Xprev)
Utility method for updating the context for checking the next statement
in the block.
|
addCallers, addReturnConstraints, checkActsForAuthority, checkAutoEndorseConstrainPC, checkConstraintVariance, checkEnforceSignature, checkFormals, checkProviderAuthority, constrainAuth, constrainLabelEnvcheckAndRemoveThrowType, checkThrowTypes, copy, dump, getPathMap, init, integerBoundsCalculated, toJava, toJava, updatePathMap, X, XaddDecls, 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, visitListclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddDecls, 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, visitListpublic JifConstructorDeclExt(ToJavaExt toJava)
public polyglot.ast.Node labelCheck(LabelChecker lc) throws polyglot.types.SemanticException
JifExtlabelCheck in interface JifExtlabelCheck in class JifExt_cpolyglot.types.SemanticExceptionprotected static java.util.Set<JifFieldInstance> uninitFinalFields(polyglot.types.ReferenceType type)
ReferenceType that do not have an initializer.protected polyglot.ast.Block checkInitsAndBody(Label Li, JifConstructorInstance ci, polyglot.ast.Block body, LabelChecker lc) throws polyglot.types.SemanticException
polyglot.types.SemanticExceptionprotected void updateContextForNextStmt(LabelChecker lc, JifContext A, PathMap Xprev)
protected void setEndOfInitChecking(LabelChecker lc, JifConstructorInstance ci)
protected void checkFinalFieldAssignment(polyglot.ast.Stmt s_,
java.util.Set<JifFieldInstance> uninitFinalVars,
JifContext A)
throws polyglot.types.SemanticException
polyglot.types.SemanticException