Class JifFieldDeclExt_c

  extended by polyglot.ast.Ext_c
      extended by jif.ast.Jif_c
          extended by jif.extension.JifFieldDeclExt_c
All Implemented Interfaces:
java.lang.Cloneable, Jif, JifFieldDeclExt, polyglot.ast.Ext, polyglot.util.Copy

public class JifFieldDeclExt_c
extends Jif_c
implements JifFieldDeclExt

The Jif extension of the FieldDecl node.

See Also:

Nested Class Summary
protected static class JifFieldDeclExt_c.InvarianceLabelChecker
          Checker to ensure that labels do not use covariant labels in the wrong places
protected static class JifFieldDeclExt_c.InvarianceLabelSubstr
          Visitor to ensure that labels do not use covariant labels in the wrong places
protected static class JifFieldDeclExt_c.StaticFieldLabelChecker
          Checker to ensure that labels of static fields do not use the This label, or any parameters
Field Summary
Fields inherited from class jif.ast.Jif_c
toJava, X
Fields inherited from class polyglot.ast.Ext_c
ext, node
Constructor Summary
JifFieldDeclExt_c(ToJavaExt toJava)
Method Summary
 polyglot.ast.Node labelCheck(LabelChecker lc)
          Label check field initializers.
 void labelCheckField(LabelChecker lc, JifClassType ct)
          Extracts the declared label of this field.
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 jif.ast.Jif
integerBoundsCalculated, toJava, toJava, X, X
Methods inherited from interface polyglot.ast.Ext
dump, ext, ext, init, node
Methods inherited from interface polyglot.util.Copy

Constructor Detail


public JifFieldDeclExt_c(ToJavaExt toJava)
Method Detail


public void labelCheckField(LabelChecker lc,
                            JifClassType ct)
                     throws polyglot.types.SemanticException
Extracts the declared label of this field.

Specified by:
labelCheckField in interface JifFieldDeclExt


public polyglot.ast.Node labelCheck(LabelChecker lc)
                             throws polyglot.types.SemanticException
Label check field initializers. the PC of field initializer is the bottom label, because the initializer is always executed after invoking super constructor and before invoking the constructor of this class. (like the single path rule)

Specified by:
labelCheck in interface Jif
labelCheck in class Jif_c