public final class TypeCheck extends Object implements NodeTraversal.Callback, CompilerPass
Checks the types of JS expressions against any declared type information.
Modifier and Type | Field and Description |
---|---|
static DiagnosticType |
INEXISTENT_PROPERTY |
protected static DiagnosticType |
NOT_A_CONSTRUCTOR |
protected static String |
OVERRIDING_PROTOTYPE_WITH_NON_OBJECT |
Constructor and Description |
---|
TypeCheck(AbstractCompiler compiler,
ReverseAbstractInterpreter reverseInterpreter,
JSTypeRegistry typeRegistry,
CheckLevel reportMissingOverride) |
TypeCheck(AbstractCompiler compiler,
ReverseAbstractInterpreter reverseInterpreter,
JSTypeRegistry typeRegistry,
TypedScope topScope,
com.google.javascript.jscomp.MemoizedScopeCreator scopeCreator,
CheckLevel reportMissingOverride) |
Modifier and Type | Method and Description |
---|---|
void |
process(Node externsRoot,
Node jsRoot)
Main entry point for this phase of processing.
|
TypedScope |
processForTesting(Node externsRoot,
Node jsRoot)
Main entry point of this phase for testing code.
|
boolean |
shouldTraverse(NodeTraversal t,
Node n,
Node parent)
Visits a node in pre order (before visiting its children) and decides
whether this node's children should be traversed.
|
void |
visit(NodeTraversal t,
Node n,
Node parent)
This is the meat of the type checking.
|
protected static final String OVERRIDING_PROTOTYPE_WITH_NON_OBJECT
public static final DiagnosticType INEXISTENT_PROPERTY
protected static final DiagnosticType NOT_A_CONSTRUCTOR
public TypeCheck(AbstractCompiler compiler, ReverseAbstractInterpreter reverseInterpreter, JSTypeRegistry typeRegistry, TypedScope topScope, com.google.javascript.jscomp.MemoizedScopeCreator scopeCreator, CheckLevel reportMissingOverride)
public TypeCheck(AbstractCompiler compiler, ReverseAbstractInterpreter reverseInterpreter, JSTypeRegistry typeRegistry, CheckLevel reportMissingOverride)
public void process(Node externsRoot, Node jsRoot)
process
in interface CompilerPass
externsRoot
- The root of the externs parse tree.jsRoot
- The root of the input parse tree to be checked.public TypedScope processForTesting(Node externsRoot, Node jsRoot)
public boolean shouldTraverse(NodeTraversal t, Node n, Node parent)
NodeTraversal.Callback
Visits a node in pre order (before visiting its children) and decides
whether this node's children should be traversed. If children are
traversed, they will be visited by
NodeTraversal.Callback.visit(NodeTraversal, Node, Node)
in postorder.
Implementations can have side effects (e.g. modifying the parse tree).
shouldTraverse
in interface NodeTraversal.Callback
public void visit(NodeTraversal t, Node n, Node parent)
visit
in interface NodeTraversal.Callback
t
- The node traversal object that supplies context, such as the
scope chain to use in name lookups as well as error reporting.n
- The node being visited.parent
- The parent of the node n.Copyright © 2009–2023 Google. All rights reserved.