jif.visit

## Class FieldLabelResolver

- java.lang.Object
- - polyglot.visit.NodeVisitor
  - - polyglot.visit.HaltingVisitor
    - - polyglot.visit.ErrorHandlingVisitor
      - - polyglot.visit.ContextVisitor
        - - jif.visit.FieldLabelResolver

- All Implemented Interfaces:
    java.lang.Cloneable, polyglot.util.Copy<polyglot.visit.NodeVisitor>

      public class FieldLabelResolver
      extends polyglot.visit.ContextVisitor

  A visitor used to resolving field labels. We want to resolve field labels of all the classes before the label checking pass, because these field labels might be included in other labels, and thus need to be resolved first. This visitor also adds dependencies so that the label checking pass for this job will not run until the FieldLabelResolver for all jobs it is dependent on has run.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface polyglot.util.Copy

      `polyglot.util.Copy.Util`

  - ### Field Summary

    - ### Fields inherited from class polyglot.visit.ContextVisitor

      `context, outer, prune, rethrowMissingDependencies`

    - ### Fields inherited from class polyglot.visit.ErrorHandlingVisitor

      `error, job, nf`

    - ### Fields inherited from class polyglot.visit.HaltingVisitor

      `bypass, bypassParent`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FieldLabelResolver(polyglot.frontend.Job job, JifTypeSystem ts, polyglot.ast.NodeFactory nf)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `polyglot.visit.NodeVisitor` | `enterCall(polyglot.ast.Node n)`
    `polyglot.ast.Node` | `leaveCall(polyglot.ast.Node old, polyglot.ast.Node n, polyglot.visit.NodeVisitor v)`

    - ### Methods inherited from class polyglot.visit.ContextVisitor

      `addDecls, addDecls, begin, context, context, enter, enter, enterScope, leave, rethrowMissingDependencies, superEnter`

    - ### Methods inherited from class polyglot.visit.ErrorHandlingVisitor

      `catchErrors, enterCall, enterError, errorQueue, hasErrors, job, leaveCall, leaveCall, nodeFactory, typeSystem`

    - ### Methods inherited from class polyglot.visit.HaltingVisitor

      `bypass, bypass, bypassChildren, override, visitChildren`

    - ### Methods inherited from class polyglot.visit.NodeVisitor

      `copy, finish, finish, lang, leave, override, toString, visitEdge, visitEdgeNoOverride`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### FieldLabelResolver

          public FieldLabelResolver(polyglot.frontend.Job job,
                                    JifTypeSystem ts,
                                    polyglot.ast.NodeFactory nf)

  - ### Method Detail

    - #### enterCall

          public polyglot.visit.NodeVisitor enterCall(polyglot.ast.Node n)
                                               throws polyglot.types.SemanticException

      Overrides:
        `enterCall` in class `polyglot.visit.ErrorHandlingVisitor`
      Throws:
        `polyglot.types.SemanticException`

    - #### leaveCall

          public polyglot.ast.Node leaveCall(polyglot.ast.Node old,
                                             polyglot.ast.Node n,
                                             polyglot.visit.NodeVisitor v)
                                      throws polyglot.types.SemanticException

      Overrides:
        `leaveCall` in class `polyglot.visit.ErrorHandlingVisitor`
      Throws:
        `polyglot.types.SemanticException`