public class JifConstructorDeclExt extends JifProcedureDeclExt_c
JifConstructorDecl
node.ConstructorDecl
,
JifConstructorDecl
,
Serialized FormJifProcedureDeclExt_c.ConstraintVarianceLabelChecker
jif_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, constrainLabelEnv
checkAndRemoveThrowType, checkThrowTypes, copy, dump, getPathMap, init, integerBoundsCalculated, 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
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 JifConstructorDeclExt(ToJavaExt toJava)
public polyglot.ast.Node labelCheck(LabelChecker lc) throws polyglot.types.SemanticException
JifExt
labelCheck
in interface JifExt
labelCheck
in class JifExt_c
polyglot.types.SemanticException
protected 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.SemanticException
protected 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