jif.visit

## Class JifInitChecker

- java.lang.Object
- - polyglot.visit.NodeVisitor
  - - polyglot.visit.HaltingVisitor
    - - polyglot.visit.ErrorHandlingVisitor
      - - polyglot.visit.DataFlow<polyglot.visit.DefiniteAssignmentChecker.FlowItem>
        - - polyglot.visit.DefiniteAssignmentChecker
          - - jif.visit.JifInitChecker

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

      public class JifInitChecker
      extends polyglot.visit.DefiniteAssignmentChecker

  Override the init checker, since type nodes may now mention local variables.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class polyglot.visit.DefiniteAssignmentChecker

      `polyglot.visit.DefiniteAssignmentChecker.AssignmentStatus, polyglot.visit.DefiniteAssignmentChecker.ClassBodyInfo, polyglot.visit.DefiniteAssignmentChecker.FlowItem`

    - ### Nested classes/interfaces inherited from class polyglot.visit.DataFlow

      `polyglot.visit.DataFlow.BoolItem<FlowItem extends polyglot.visit.DataFlow.Item>, polyglot.visit.DataFlow.ConditionNavigator<FlowItem extends polyglot.visit.DataFlow.Item>, polyglot.visit.DataFlow.FlowGraphSource<FlowItem extends polyglot.visit.DataFlow.Item>, polyglot.visit.DataFlow.Frame<FlowItem extends polyglot.visit.DataFlow.Item>, polyglot.visit.DataFlow.Item`

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

      `polyglot.util.Copy.Util`

  - ### Field Summary

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

      `BOTTOM, currCBI`

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

      `dataflowOnEntry, detectBackEdges, flowCounter, flowgraphStack, forward, postordering`

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

      `error, job, nf, ts`

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

      `bypass, bypassParent`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JifInitChecker(polyglot.frontend.Job job, polyglot.types.TypeSystem ts, polyglot.ast.NodeFactory nf)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `checkOther(polyglot.visit.FlowGraph<polyglot.visit.DefiniteAssignmentChecker.FlowItem> graph, polyglot.ast.Node n, polyglot.visit.DefiniteAssignmentChecker.FlowItem dfIn)`
    `protected boolean` | `superClassCouldAccessFinals(polyglot.types.ClassType ct)`

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

      `check, checkClassBody, checkField, checkFieldAssign, checkLocal, checkLocalAssign, checkLocalInstanceInit, checkLocalsUsedByInnerClass, checkNonStaticFinalFieldsInit, checkStaticFinalFieldsInit, confluence, confluence, createCFGBuilder, createInitialItem, dataflow, enterCall, finishConstructorDecl, finishFieldDecl, finishInitializer, flow, flow, flowConstructorCall, flowFieldAssign, flowFormal, flowLocalAssign, flowLocalDecl, flowOther, initGraph, isFieldsTargetAppropriate, leaveCall, setupClassBody`

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

      `check, constructItemsFromCondition, createFrame, createInitialItem, currentFlowGraph, dataflow, dataflow, dataflow, dumpFlowGraph, enterCall, filterItems, filterItemsExceptionSubclass, filterItemsNonError, filterItemsNonException, findSCCs, flow, flow, flow, flowBooleanConditions, flowToBooleanFlow, hasTrueFalseBranches, initGraph, itemsToMap, itemToMap, lang, leave, post, safeConfluence, safeConfluence, safeConfluence`

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

      `begin, catchErrors, enter, 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, enter, finish, finish, leave, override, toString, visitEdge, visitEdgeNoOverride`

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

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

- - ### Constructor Detail

    - #### JifInitChecker

          public JifInitChecker(polyglot.frontend.Job job,
                                polyglot.types.TypeSystem ts,
                                polyglot.ast.NodeFactory nf)

  - ### Method Detail

    - #### checkOther

          protected void checkOther(polyglot.visit.FlowGraph<polyglot.visit.DefiniteAssignmentChecker.FlowItem> graph,
                                    polyglot.ast.Node n,
                                    polyglot.visit.DefiniteAssignmentChecker.FlowItem dfIn)
                             throws polyglot.types.SemanticException

      Overrides:
        `checkOther` in class `polyglot.visit.DefiniteAssignmentChecker`
      Throws:
        `polyglot.types.SemanticException`

    - #### superClassCouldAccessFinals

          protected boolean superClassCouldAccessFinals(polyglot.types.ClassType ct)