final class NTIScope extends java.lang.Object implements DeclaredTypeRegistry
Modifier and Type | Field and Description |
---|---|
private JSTypes |
commonTypes |
private java.util.Set<java.lang.String> |
constVars |
private DeclaredFunctionType |
declaredType |
private java.util.Set<java.lang.String> |
escapedVars |
private java.util.Map<java.lang.String,JSType> |
externs |
private java.util.List<java.lang.String> |
formals |
private boolean |
isFinalized |
private java.util.Set<EnumType> |
localEnums |
private java.util.Map<java.lang.String,NTIScope> |
localFunDefs |
private java.util.Map<java.lang.String,Namespace> |
localNamespaces |
private java.util.Map<java.lang.String,JSType> |
locals |
private java.util.Map<java.lang.String,Typedef> |
localTypedefs |
private java.lang.String |
name |
private java.util.Set<java.lang.String> |
outerVars |
private NTIScope |
parent |
private Node |
root |
private com.google.common.collect.ImmutableSet<java.lang.String> |
unknownTypeNames |
Constructor and Description |
---|
NTIScope(Node root,
NTIScope parent,
java.util.List<java.lang.String> formals,
JSTypes commonTypes) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
addFunNamespace(Node qnameNode) |
(package private) void |
addLocal(java.lang.String name,
JSType declType,
boolean isConstant,
boolean isFromExterns) |
(package private) void |
addLocalFunDef(java.lang.String name,
NTIScope scope) |
(package private) void |
addNamespace(Node qnameNode,
Namespace ns) |
(package private) void |
addNamespaceLit(Node qnameNode) |
(package private) void |
addOuterVar(java.lang.String name) |
(package private) void |
addTypedef(Node qnameNode,
Typedef td) |
(package private) void |
addUnknownTypeNames(java.util.Set<java.lang.String> names) |
private static void |
copyOuterVarsTransitively(NTIScope s) |
(package private) void |
finalizeScope() |
(package private) Node |
getBody() |
JSTypes |
getCommonTypes() |
Declaration |
getDeclaration(QualifiedName qname,
boolean includeTypes)
Returns the declaration of the given qualified name,
or null if the name is not defined.
|
Declaration |
getDeclaration(java.lang.String name,
boolean includeTypes) |
DeclaredFunctionType |
getDeclaredFunctionType()
Get the type of the function that the declared type registry represents.
|
JSType |
getDeclaredTypeOf(java.lang.String name)
Returns the declared JSType of the given identifier,
or null if the identifier is not defined.
|
(package private) EnumType |
getEnum(QualifiedName qname) |
(package private) java.util.Set<java.lang.String> |
getExterns() |
(package private) java.util.List<java.lang.String> |
getFormals() |
private Declaration |
getLocalDeclaration(java.lang.String name,
boolean includeTypes) |
(package private) java.util.Set<java.lang.String> |
getLocalFunDefs() |
(package private) java.util.Set<java.lang.String> |
getLocals() |
(package private) java.lang.String |
getName() |
(package private) Namespace |
getNamespace(QualifiedName qname) |
(package private) Namespace |
getNamespace(java.lang.String name) |
(package private) RawNominalType |
getNominalType(QualifiedName qname) |
(package private) java.util.Set<java.lang.String> |
getOuterVars() |
(package private) NTIScope |
getParent() |
(package private) java.lang.String |
getReadableName()
Used only for error messages; null for top scope
|
(package private) Node |
getRoot() |
(package private) NTIScope |
getScope(java.lang.String fnName) |
private NTIScope |
getScopeHelper(QualifiedName qname) |
(package private) Typedef |
getTypedef(java.lang.String name) |
(package private) boolean |
hasThis() |
(package private) boolean |
hasUndeclaredFormalsOrOuters() |
(package private) boolean |
isConstructor() |
(package private) boolean |
isConstVar(java.lang.String name) |
(package private) boolean |
isDefined(Node qnameNode) |
(package private) boolean |
isDefinedLocally(java.lang.String name,
boolean includeTypes) |
(package private) boolean |
isEscapedVar(java.lang.String name) |
(package private) boolean |
isExternalFunction(java.lang.String fnName) |
(package private) boolean |
isFormalParam(java.lang.String name) |
(package private) boolean |
isFunction() |
(package private) boolean |
isFunctionNamespace(java.lang.String name) |
(package private) boolean |
isGlobalVar(java.lang.String varName) |
(package private) boolean |
isKnownFunction(QualifiedName qname) |
(package private) boolean |
isKnownFunction(java.lang.String fnName) |
(package private) boolean |
isLocalFunDef(java.lang.String name) |
(package private) boolean |
isNamespace(Node expr) |
(package private) boolean |
isNamespace(QualifiedName qname) |
(package private) boolean |
isNamespace(java.lang.String name) |
(package private) boolean |
isOuterVar(java.lang.String name) |
(package private) boolean |
isOuterVarEarly(java.lang.String name) |
(package private) boolean |
isPrototypeMethod() |
(package private) boolean |
isTopLevel() |
(package private) boolean |
isUndeclaredFormal(java.lang.String name) |
(package private) boolean |
isUndeclaredOuterVar(java.lang.String name) |
(package private) boolean |
isVisibleInScope(java.lang.String name) |
private Declaration |
maybeGetForwardDeclaration(java.lang.String qname) |
(package private) static void |
mayRecordEscapedVar(NTIScope s,
java.lang.String name) |
(package private) void |
resolveEnums(JSTypeCreatorFromJSDoc typeParser) |
(package private) void |
resolveTypedefs(JSTypeCreatorFromJSDoc typeParser) |
(package private) void |
setDeclaredType(DeclaredFunctionType declaredType) |
java.lang.String |
toString() |
(package private) void |
updateType(java.lang.String name,
JSType newDeclType) |
private final NTIScope parent
private final Node root
private final java.lang.String name
private final JSTypes commonTypes
private boolean isFinalized
private final java.util.Map<java.lang.String,JSType> locals
private final java.util.Map<java.lang.String,JSType> externs
private final java.util.Set<java.lang.String> constVars
private final java.util.List<java.lang.String> formals
private java.util.Set<java.lang.String> escapedVars
private final java.util.Set<java.lang.String> outerVars
private final java.util.Map<java.lang.String,NTIScope> localFunDefs
private com.google.common.collect.ImmutableSet<java.lang.String> unknownTypeNames
private java.util.Map<java.lang.String,Typedef> localTypedefs
private java.util.Map<java.lang.String,Namespace> localNamespaces
private java.util.Set<EnumType> localEnums
private DeclaredFunctionType declaredType
Node getRoot()
NTIScope getParent()
Node getBody()
java.lang.String getReadableName()
java.lang.String getName()
void setDeclaredType(DeclaredFunctionType declaredType)
public DeclaredFunctionType getDeclaredFunctionType()
DeclaredTypeRegistry
getDeclaredFunctionType
in interface DeclaredTypeRegistry
boolean isFunction()
boolean isTopLevel()
boolean isConstructor()
boolean isPrototypeMethod()
void addUnknownTypeNames(java.util.Set<java.lang.String> names)
void addLocalFunDef(java.lang.String name, NTIScope scope)
boolean isFormalParam(java.lang.String name)
boolean isLocalFunDef(java.lang.String name)
boolean isFunctionNamespace(java.lang.String name)
boolean isDefinedLocally(java.lang.String name, boolean includeTypes)
boolean isDefined(Node qnameNode)
boolean isNamespace(Node expr)
boolean isNamespace(QualifiedName qname)
boolean isNamespace(java.lang.String name)
boolean isVisibleInScope(java.lang.String name)
boolean isConstVar(java.lang.String name)
boolean isOuterVarEarly(java.lang.String name)
boolean isGlobalVar(java.lang.String varName)
boolean isUndeclaredFormal(java.lang.String name)
java.util.List<java.lang.String> getFormals()
java.util.Set<java.lang.String> getOuterVars()
java.util.Set<java.lang.String> getLocalFunDefs()
boolean isOuterVar(java.lang.String name)
boolean isUndeclaredOuterVar(java.lang.String name)
boolean isEscapedVar(java.lang.String name)
boolean hasThis()
public JSTypes getCommonTypes()
getCommonTypes
in interface DeclaredTypeRegistry
public JSType getDeclaredTypeOf(java.lang.String name)
DeclaredTypeRegistry
getDeclaredTypeOf
in interface DeclaredTypeRegistry
boolean hasUndeclaredFormalsOrOuters()
private NTIScope getScopeHelper(QualifiedName qname)
boolean isKnownFunction(java.lang.String fnName)
boolean isKnownFunction(QualifiedName qname)
boolean isExternalFunction(java.lang.String fnName)
NTIScope getScope(java.lang.String fnName)
java.util.Set<java.lang.String> getLocals()
java.util.Set<java.lang.String> getExterns()
void addLocal(java.lang.String name, JSType declType, boolean isConstant, boolean isFromExterns)
static void mayRecordEscapedVar(NTIScope s, java.lang.String name)
RawNominalType getNominalType(QualifiedName qname)
Typedef getTypedef(java.lang.String name)
EnumType getEnum(QualifiedName qname)
Namespace getNamespace(java.lang.String name)
void addFunNamespace(Node qnameNode)
void addNamespaceLit(Node qnameNode)
void updateType(java.lang.String name, JSType newDeclType)
void addOuterVar(java.lang.String name)
Namespace getNamespace(QualifiedName qname)
private Declaration getLocalDeclaration(java.lang.String name, boolean includeTypes)
public Declaration getDeclaration(QualifiedName qname, boolean includeTypes)
DeclaredTypeRegistry
includeTypes
is true, include definitions that are not in code,
such as @template parameters and forward declarations.getDeclaration
in interface DeclaredTypeRegistry
private Declaration maybeGetForwardDeclaration(java.lang.String qname)
public Declaration getDeclaration(java.lang.String name, boolean includeTypes)
void resolveTypedefs(JSTypeCreatorFromJSDoc typeParser)
void resolveEnums(JSTypeCreatorFromJSDoc typeParser)
void finalizeScope()
private static void copyOuterVarsTransitively(NTIScope s)
public java.lang.String toString()
toString
in class java.lang.Object