private class ScopedAliases.Traversal extends NodeTraversal.AbstractPostOrderCallback implements NodeTraversal.ScopedCallback
Modifier and Type | Field and Description |
---|---|
private java.util.List<Node> |
aliasDefinitionsInOrder |
private java.util.Map<java.lang.String,Var> |
aliases |
private java.util.List<ScopedAliases.AliasUsage> |
aliasUsages |
private java.util.Set<java.lang.String> |
forbiddenLocals |
private boolean |
hasErrors |
private boolean |
hasNamespaceShadows |
private java.util.Set<Node> |
injectedDecls |
private java.util.List<Node> |
scopeCalls |
private Node |
scopeFunctionBody |
private CompilerOptions.AliasTransformation |
transformation |
Modifier | Constructor and Description |
---|---|
private |
Traversal() |
Modifier and Type | Method and Description |
---|---|
void |
enterScope(NodeTraversal t)
Called immediately after entering a new scope.
|
void |
exitScope(NodeTraversal t)
Called immediately before exiting a scope.
|
private void |
findAliases(NodeTraversal t,
Scope scope) |
private void |
findNamespaceShadows(NodeTraversal t)
Find out if there are any local shadows of namespaces.
|
private Node |
findScopeMethodCall(Node scopeRoot) |
private void |
fixTypeNode(Node typeNode) |
(package private) java.util.Collection<Node> |
getAliasDefinitionsInOrder() |
private java.util.List<ScopedAliases.AliasUsage> |
getAliasUsages() |
(package private) java.util.List<Node> |
getScopeCalls() |
private SourcePosition<CompilerOptions.AliasTransformation> |
getSourceRegion(Node n) |
(package private) boolean |
hasErrors() |
private boolean |
inGoogScopeBody()
Returns true if this NodeTraversal is currently within a goog.scope function body
|
private boolean |
isCallToScopeMethod(Node n) |
private boolean |
isGoogScopeFunctionBody(Node n)
Returns true if n is the goog.scope function body
|
private void |
recordAlias(Var aliasVar) |
private void |
renameNamespaceShadows(NodeTraversal t)
Rename any local shadows of namespaces.
|
private void |
report(NodeTraversal t,
Node n,
DiagnosticType error,
java.lang.String... arguments) |
private void |
reportInvalidVariables(NodeTraversal t) |
private void |
validateScopeCall(NodeTraversal t,
Node n,
Node parent) |
void |
visit(NodeTraversal t,
Node n,
Node parent)
Visits a node in postorder (after its children have been visited).
|
shouldTraverse
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
shouldTraverse
private final java.util.List<Node> aliasDefinitionsInOrder
private final java.util.List<Node> scopeCalls
private final java.util.List<ScopedAliases.AliasUsage> aliasUsages
private final java.util.Map<java.lang.String,Var> aliases
private final java.util.Set<Node> injectedDecls
private final java.util.Set<java.lang.String> forbiddenLocals
private boolean hasNamespaceShadows
private boolean hasErrors
private CompilerOptions.AliasTransformation transformation
private Node scopeFunctionBody
java.util.Collection<Node> getAliasDefinitionsInOrder()
private java.util.List<ScopedAliases.AliasUsage> getAliasUsages()
java.util.List<Node> getScopeCalls()
boolean hasErrors()
private boolean inGoogScopeBody()
private boolean isGoogScopeFunctionBody(Node n)
private boolean isCallToScopeMethod(Node n)
private Node findScopeMethodCall(Node scopeRoot)
scopeRoot
- the Node which is the root of the current scopepublic void enterScope(NodeTraversal t)
NodeTraversal.ScopedCallback
enterScope
in interface NodeTraversal.ScopedCallback
public void exitScope(NodeTraversal t)
NodeTraversal.ScopedCallback
exitScope
in interface NodeTraversal.ScopedCallback
private void reportInvalidVariables(NodeTraversal t)
private SourcePosition<CompilerOptions.AliasTransformation> getSourceRegion(Node n)
private void report(NodeTraversal t, Node n, DiagnosticType error, java.lang.String... arguments)
private void findAliases(NodeTraversal t, Scope scope)
private void recordAlias(Var aliasVar)
private void findNamespaceShadows(NodeTraversal t)
private void renameNamespaceShadows(NodeTraversal t)
private void validateScopeCall(NodeTraversal t, Node n, Node parent)
public void visit(NodeTraversal t, Node n, Node parent)
NodeTraversal.Callback
Visits a node in postorder (after its children have been visited).
A node is visited only if all its parents should be traversed
(NodeTraversal.Callback.shouldTraverse(NodeTraversal, Node, Node)
).
Implementations can have side effects (e.g. modifying the parse tree).
visit
in interface NodeTraversal.Callback
private void fixTypeNode(Node typeNode)