class GlobalTypeInfo extends java.lang.Object implements CompilerPass
Used by the new type inference. See go/jscompiler-new-type-checker for the latest updates.
Modifier and Type | Class and Description |
---|---|
private class |
GlobalTypeInfo.CollectNamedTypes
Collects names of classes, interfaces, namespaces, typedefs and enums.
|
private class |
GlobalTypeInfo.ProcessScope |
private static class |
GlobalTypeInfo.PropertyDef |
private static class |
GlobalTypeInfo.PropertyType |
Constructor and Description |
---|
GlobalTypeInfo(AbstractCompiler compiler) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
addUnknownTypeName(java.lang.String name) |
private void |
checkAndFinalizeNominalType(RawNominalType rawType) |
private void |
checkSuperProperty(RawNominalType current,
NominalType superType,
java.lang.String pname,
com.google.common.collect.Multimap<java.lang.String,DeclaredFunctionType> propMethodTypesToProcess,
com.google.common.collect.Multimap<java.lang.String,JSType> propTypesToProcess) |
private static Node |
fromDefsiteToName(Node defSite) |
(package private) JSType |
getCastType(Node n) |
private DeclaredFunctionType |
getDeclaredFunctionTypeOfCalleeIfAny(Node fn,
NTIScope currentScope) |
private JSType |
getDeclaredTypeOfNode(JSDocInfo jsdoc,
NTIScope s) |
(package private) java.lang.String |
getFunInternalName(Node n) |
(package private) NTIScope |
getGlobalScope() |
(package private) JSType |
getPropDeclaredType(Node n) |
private GlobalTypeInfo.PropertyDef |
getPropDefFromClass(NominalType nominalType,
java.lang.String pname) |
private java.util.Collection<GlobalTypeInfo.PropertyDef> |
getPropDefsFromInterface(NominalType nominalType,
java.lang.String pname) |
(package private) java.util.Collection<NTIScope> |
getScopes() |
private static boolean |
getsTypeInfoFromParentMethod(GlobalTypeInfo.PropertyDef pd) |
(package private) JSTypes |
getTypesUtilObject() |
private JSType |
getVarTypeFromAnnotation(Node nameNode,
NTIScope currentScope) |
private static boolean |
isAnnotatedAsConst(Node defSite) |
private static boolean |
isClassPropertyDeclaration(Node n,
NTIScope s) |
private boolean |
isConst(Node defSite) |
private static boolean |
isCtorDefinedByCall(Node qnameNode) |
private static boolean |
isPrototypeProperty(Node getProp) |
private static boolean |
isPrototypePropertyDeclaration(Node n) |
private boolean |
isValidOverride(JSType localPropType,
JSType inheritedPropType) |
void |
process(Node externs,
Node root)
Process the JS with root node root.
|
static final DiagnosticType DUPLICATE_JSDOC
static final DiagnosticType REDECLARED_PROPERTY
static final DiagnosticType INVALID_PROP_OVERRIDE
static final DiagnosticType CTOR_IN_DIFFERENT_SCOPE
static final DiagnosticType UNRECOGNIZED_TYPE_NAME
static final DiagnosticType STRUCTDICT_WITHOUT_CTOR
static final DiagnosticType EXPECTED_CONSTRUCTOR
static final DiagnosticType EXPECTED_INTERFACE
static final DiagnosticType INEXISTENT_PARAM
static final DiagnosticType CONST_WITHOUT_INITIALIZER
static final DiagnosticType COULD_NOT_INFER_CONST_TYPE
static final DiagnosticType MISPLACED_CONST_ANNOTATION
static final DiagnosticType CANNOT_OVERRIDE_FINAL_METHOD
static final DiagnosticType CANNOT_INIT_TYPEDEF
static final DiagnosticType ANONYMOUS_NOMINAL_TYPE
static final DiagnosticType MALFORMED_ENUM
static final DiagnosticType DUPLICATE_PROP_IN_ENUM
static final DiagnosticType UNDECLARED_NAMESPACE
static final DiagnosticType LENDS_ON_BAD_TYPE
static final DiagnosticType FUNCTION_CONSTRUCTOR_NOT_DEFINED
static final DiagnosticType INVALID_INTERFACE_PROP_INITIALIZER
static final DiagnosticType SETTER_WITH_RETURN
static final DiagnosticType WRONG_PARAMETER_COUNT
static final DiagnosticType CANNOT_ADD_PROPERTIES_TO_TYPEDEF
static final DiagnosticType SUPER_INTERFACES_HAVE_INCOMPATIBLE_PROPERTIES
static final DiagnosticType ONE_TYPE_FOR_MANY_VARS
static final DiagnosticType UNKNOWN_OVERRIDE
static final DiagnosticType INTERFACE_METHOD_NOT_IMPLEMENTED
static final DiagnosticType INTERFACE_METHOD_NOT_EMPTY
static final DiagnosticGroup ALL_DIAGNOSTICS
private final java.util.List<NTIScope> scopes
private NTIScope globalScope
private NewTypeInference.WarningReporter warnings
private JSTypeCreatorFromJSDoc typeParser
private final AbstractCompiler compiler
private final CodingConvention convention
private final java.util.Map<Node,java.lang.String> anonFunNames
private static final java.lang.String ANON_FUN_PREFIX
private static final java.lang.String WINDOW_INSTANCE
private static final java.lang.String WINDOW_CLASS
private DefaultNameGenerator funNameGen
private UniqueNameGenerator varNameGen
private java.util.Map<Node,RawNominalType> nominaltypesByNode
private com.google.common.collect.HashBasedTable<RawNominalType,java.lang.String,GlobalTypeInfo.PropertyDef> propertyDefs
private JSTypes commonTypes
private java.util.Set<java.lang.String> unknownTypeNames
GlobalTypeInfo(AbstractCompiler compiler)
java.util.Collection<NTIScope> getScopes()
NTIScope getGlobalScope()
JSTypes getTypesUtilObject()
void addUnknownTypeName(java.lang.String name)
java.lang.String getFunInternalName(Node n)
public void process(Node externs, Node root)
CompilerPass
process
in interface CompilerPass
externs
- Top of external JS treeroot
- Top of JS treeprivate java.util.Collection<GlobalTypeInfo.PropertyDef> getPropDefsFromInterface(NominalType nominalType, java.lang.String pname)
private GlobalTypeInfo.PropertyDef getPropDefFromClass(NominalType nominalType, java.lang.String pname)
private void checkAndFinalizeNominalType(RawNominalType rawType)
private void checkSuperProperty(RawNominalType current, NominalType superType, java.lang.String pname, com.google.common.collect.Multimap<java.lang.String,DeclaredFunctionType> propMethodTypesToProcess, com.google.common.collect.Multimap<java.lang.String,JSType> propTypesToProcess)
private static boolean getsTypeInfoFromParentMethod(GlobalTypeInfo.PropertyDef pd)
private JSType getVarTypeFromAnnotation(Node nameNode, NTIScope currentScope)
private DeclaredFunctionType getDeclaredFunctionTypeOfCalleeIfAny(Node fn, NTIScope currentScope)
private static boolean isPrototypeProperty(Node getProp)
private static boolean isPrototypePropertyDeclaration(Node n)
private static boolean isAnnotatedAsConst(Node defSite)
private boolean isConst(Node defSite)
private static boolean isCtorDefinedByCall(Node qnameNode)