jif.visit
Class JifInitChecker

java.lang.Object
  extended by polyglot.visit.NodeVisitor
      extended by polyglot.visit.HaltingVisitor
          extended by polyglot.visit.ErrorHandlingVisitor
              extended by polyglot.visit.DataFlow
                  extended by polyglot.visit.InitChecker
                      extended by jif.visit.JifInitChecker
All Implemented Interfaces:
java.lang.Cloneable, polyglot.util.Copy

public class JifInitChecker
extends polyglot.visit.InitChecker

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


Nested Class Summary
 
Nested classes/interfaces inherited from class polyglot.visit.InitChecker
polyglot.visit.InitChecker.BottomItem, polyglot.visit.InitChecker.ClassBodyInfo, polyglot.visit.InitChecker.DataFlowItem, polyglot.visit.InitChecker.InitCount, polyglot.visit.InitChecker.MinMaxInitCount
 
Nested classes/interfaces inherited from class polyglot.visit.DataFlow
polyglot.visit.DataFlow.BoolItem, polyglot.visit.DataFlow.ConditionNavigator, polyglot.visit.DataFlow.FlowGraphSource, polyglot.visit.DataFlow.Item
 
Field Summary
 
Fields inherited from class polyglot.visit.InitChecker
BOTTOM, currCBI
 
Fields inherited from class polyglot.visit.DataFlow
dataflowOnEntry, flowCounter, flowgraphStack, forward
 
Fields inherited from class polyglot.visit.ErrorHandlingVisitor
error, job, nf, ts
 
Fields inherited from class polyglot.visit.HaltingVisitor
bypass, bypassParent
 
Constructor Summary
JifInitChecker(polyglot.frontend.Job job, polyglot.types.TypeSystem ts, polyglot.ast.NodeFactory nf)
           
 
Method Summary
protected  void checkOther(polyglot.visit.FlowGraph graph, polyglot.ast.Node n, polyglot.visit.InitChecker.DataFlowItem dfIn, polyglot.visit.InitChecker.DataFlowItem dfOut)
           
 
Methods inherited from class polyglot.visit.InitChecker
check, checkClassBody, checkFieldAssign, checkLocal, checkLocalAssign, checkLocalInstanceInit, checkLocalsUsedByInnerClass, checkNonStaticFinalFieldsInit, checkStaticFinalFieldsInit, confluence, confluence, createInitialItem, dataflow, enterCall, finishConstructorDecl, finishInitializer, flow, flow, flowConstructorCall, flowFieldAssign, flowFormal, flowLocalAssign, flowLocalDecl, flowOther, initGraph, isFieldsTargetAppropriate, leaveCall, setupClassBody
 
Methods inherited from class polyglot.visit.DataFlow
constructItemsFromCondition, createCFGBuilder, currentFlowGraph, dataflow, dataflow, dataflow, dumpFlowGraph, enterCall, filterItems, filterItemsExceptionSubclass, filterItemsNonError, filterItemsNonException, findSCCs, flow, flowBooleanConditions, flowToBooleanFlow, hasTrueFalseBranches, initGraph, itemsToMap, itemToMap, 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 graph,
                          polyglot.ast.Node n,
                          polyglot.visit.InitChecker.DataFlowItem dfIn,
                          polyglot.visit.InitChecker.DataFlowItem dfOut)
                   throws polyglot.types.SemanticException
Overrides:
checkOther in class polyglot.visit.InitChecker
Throws:
polyglot.types.SemanticException