Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## jif.extension
Class JifMethodDeclExt

    java.lang.Object
      polyglot.ast.Ext_c
          jif.ast.Jif_c
              jif.extension.JifProcedureDeclExt_c
                  jif.extension.JifMethodDeclExt

All Implemented Interfaces:
  java.lang.Cloneable, Jif, JifProcedureDeclExt, polyglot.ast.Ext, polyglot.util.Copy

    public class JifMethodDeclExt

extends JifProcedureDeclExt_c

The Jif extension of the `JifMethodDecl` node.

See Also:
  `JifMethodDecl`

Nested Class Summary
`protected static class` | `JifMethodDeclExt.CovariantLabelChecker` Checker to ensure that no covariant label occurs in the label

Nested classes/interfaces inherited from class jif.extension.JifProcedureDeclExt_c
`JifProcedureDeclExt_c.ConstraintVarianceLabelChecker`

Field Summary

Fields inherited from class jif.ast.Jif_c
`toJava, X`

Fields inherited from class polyglot.ast.Ext_c
`ext, node`

Constructor Summary
`JifMethodDeclExt(ToJavaExt toJava)`

Method Summary
`protected void` | `checkCovariance(JifMethodInstance mi, LabelChecker lc)` This method checks that covariant labels are not used in contravariant positions.
`polyglot.ast.Node` | `labelCheck(LabelChecker lc)` Label check the node to which this extension is attached.
`protected void` | `overrideMethodLabelCheck(LabelChecker lc, JifMethodInstance mi)` Check that this method instance conforms to the signatures of any methods in the superclasses or interfaces that it is overriding.

Methods inherited from class jif.extension.JifProcedureDeclExt_c
`addCallers, addReturnConstraints, checkActsForAuthority, checkAutoEndorseConstrainPC, checkConstraintVariance, checkEnforceSignature, checkFormals, constrainAuth, constrainLabelEnv`

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

### JifMethodDeclExt

    public JifMethodDeclExt(ToJavaExt toJava)

Method Detail

### 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`

### checkCovariance

    protected void checkCovariance(JifMethodInstance mi,
                                   LabelChecker lc)
                            throws SemanticDetailedException

  This method checks that covariant labels are not used in contravariant positions.

  Throws:
    `SemanticDetailedException`

### overrideMethodLabelCheck

    protected void overrideMethodLabelCheck(LabelChecker lc,
                                            JifMethodInstance mi)
                                     throws polyglot.types.SemanticException

  Check that this method instance conforms to the signatures of any methods in the superclasses or interfaces that it is overriding. In particular, argument labels and pc bounds are contravariant, return labels, return value labels and labels on exception types are covariant.

  Throws:
    `polyglot.types.SemanticException`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD