jif.extension
Class JifFieldDeclExt_c

java.lang.Object
  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:
FieldDecl

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
copy
 

Constructor Detail

JifFieldDeclExt_c

public JifFieldDeclExt_c(ToJavaExt toJava)
Method Detail

labelCheckField

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

Specified by:
labelCheckField in interface JifFieldDeclExt
Throws:
polyglot.types.SemanticException

labelCheck

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
Overrides:
labelCheck in class Jif_c
Throws:
polyglot.types.SemanticException