jif.extension
Class JifConstructorDeclExt
java.lang.Object
polyglot.ast.Ext_c
jif.ast.Jif_c
jif.extension.JifProcedureDeclExt_c
jif.extension.JifConstructorDeclExt
- All Implemented Interfaces:
- java.lang.Cloneable, Jif, JifProcedureDeclExt, polyglot.ast.Ext, polyglot.util.Copy
public class JifConstructorDeclExt
- extends JifProcedureDeclExt_c
The Jif extension of the JifConstructorDecl
node.
- See Also:
ConstructorDecl
,
JifConstructorDecl
Fields inherited from class polyglot.ast.Ext_c |
ext, node |
Method Summary |
protected void |
checkFinalFieldAssignment(polyglot.ast.Stmt s,
java.util.Set 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 static java.util.Set |
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. |
Methods inherited from class jif.ast.Jif_c |
checkAndRemoveThrowType, checkThrowTypes, copy, getPathMap, init, integerBoundsCalculated, toJava, toJava, updatePathMap, X, X |
Methods inherited from class polyglot.ast.Ext_c |
dump, ext, ext, node, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface polyglot.ast.Ext |
dump, ext, ext, init, node |
Methods inherited from interface polyglot.util.Copy |
copy |
JifConstructorDeclExt
public JifConstructorDeclExt(ToJavaExt toJava)
labelCheck
public polyglot.ast.Node labelCheck(LabelChecker lc)
throws polyglot.types.SemanticException
- Description copied from interface:
Jif
- Label check the node to which this extension is attached.
- Specified by:
labelCheck
in interface Jif
- Overrides:
labelCheck
in class Jif_c
- Throws:
polyglot.types.SemanticException
uninitFinalFields
protected static java.util.Set 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.
checkInitsAndBody
protected polyglot.ast.Block checkInitsAndBody(Label Li,
JifConstructorInstance ci,
polyglot.ast.Block body,
LabelChecker lc)
throws polyglot.types.SemanticException
- This method implements the check-inits predicate of the thesis
(Figures 4.41-45).
- Throws:
polyglot.types.SemanticException
checkFinalFieldAssignment
protected void checkFinalFieldAssignment(polyglot.ast.Stmt s,
java.util.Set uninitFinalVars,
JifContext A)
throws polyglot.types.SemanticException
- Check if the stmt is an assignment to a final field. Moreover, if
the final field is a label, and it is being initialized from a final
label, share the uids of the fields.
- Throws:
polyglot.types.SemanticException