jif.visit
Class FieldLabelResolver

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

public class FieldLabelResolver
extends polyglot.visit.ContextVisitor

A visitor used to resolving field labels. We want to resolving field labels of all the classes before the label checking pass, because these field labels might be included in other labels, thus need to resolve first.


Field Summary
 
Fields inherited from class polyglot.visit.ContextVisitor
context, outer, prune, rethrowMissingDependencies
 
Fields inherited from class polyglot.visit.ErrorHandlingVisitor
error, nf
 
Fields inherited from class polyglot.visit.HaltingVisitor
bypass, bypassParent
 
Constructor Summary
FieldLabelResolver(polyglot.frontend.Job job, JifTypeSystem ts, polyglot.ast.NodeFactory nf)
           
 
Method Summary
 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, 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, 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