All Methods Static Methods Instance Methods Concrete Methods
Modifier and Type |
Method and Description |
private NewTypeInference.EnvTypePair |
analyzeAddBwd(Node expr,
TypeEnv outEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeAddFwd(Node expr,
TypeEnv inEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeArrayLitBwd(Node expr,
TypeEnv outEnv) |
private NewTypeInference.EnvTypePair |
analyzeArrayLitFwd(Node expr,
TypeEnv inEnv) |
private NewTypeInference.EnvTypePair |
analyzeAssertionCall(Node callNode,
TypeEnv env,
CodingConvention.AssertionFunctionSpec assertionFunctionSpec) |
private NewTypeInference.EnvTypePair |
analyzeAssignAddBwd(Node expr,
TypeEnv outEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeAssignAddFwd(Node expr,
TypeEnv inEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeAssignBwd(Node expr,
TypeEnv outEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeAssignFwd(Node expr,
TypeEnv inEnv,
JSType requiredType,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzeAssignNumericOpBwd(Node expr,
TypeEnv outEnv) |
private NewTypeInference.EnvTypePair |
analyzeAssignNumericOpFwd(Node expr,
TypeEnv inEnv) |
private NewTypeInference.EnvTypePair |
analyzeBinaryNumericOpBwd(Node expr,
TypeEnv outEnv) |
private NewTypeInference.EnvTypePair |
analyzeBinaryNumericOpFwd(Node expr,
TypeEnv inEnv) |
private NewTypeInference.EnvTypePair |
analyzeCallNewBwd(Node expr,
TypeEnv outEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeCallNewFwd(Node expr,
TypeEnv inEnv,
JSType requiredType,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzeCallNodeArgsFwdWhenError(Node callNode,
TypeEnv inEnv) |
private NewTypeInference.EnvTypePair |
analyzeCallNodeArgumentsBwd(Node callNode,
TypeEnv outEnv) |
private TypeEnv |
analyzeCallNodeArgumentsFwd(Node call,
Node firstArg,
FunctionType funType,
java.util.List<JSType> argTypesForDeferredCheck,
TypeEnv inEnv) |
private NewTypeInference.EnvTypePair |
analyzeCastFwd(Node expr,
TypeEnv inEnv) |
private void |
analyzeConditionalStmFwd(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> stm,
Node cond,
TypeEnv inEnv) |
private NewTypeInference.EnvTypePair |
analyzeEnumObjLitBwd(Node objLit,
TypeEnv outEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeEnumObjLitFwd(Node objLit,
TypeEnv inEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeEqNeBwd(Node expr,
TypeEnv outEnv) |
private NewTypeInference.EnvTypePair |
analyzeExprBwd(Node expr,
TypeEnv outEnv) |
private NewTypeInference.EnvTypePair |
analyzeExprBwd(Node expr,
TypeEnv outEnv,
JSType requiredType)
For now, we won't emit any warnings bwd.
|
private NewTypeInference.EnvTypePair |
analyzeExprFwd(Node expr,
TypeEnv inEnv) |
private NewTypeInference.EnvTypePair |
analyzeExprFwd(Node expr,
TypeEnv inEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeExprFwd(Node expr,
TypeEnv inEnv,
JSType requiredType,
JSType specializedType) |
private void |
analyzeFunction(NTIScope scope) |
private NewTypeInference.EnvTypePair |
analyzeFunctionBindFwd(Node call,
TypeEnv inEnv) |
private void |
analyzeFunctionBwd(java.util.List<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> workset) |
private void |
analyzeFunctionFwd(java.util.List<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> workset) |
private NewTypeInference.EnvTypePair |
analyzeGetElemBwd(Node expr,
TypeEnv outEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeGetElemFwd(Node expr,
TypeEnv inEnv,
JSType requiredType,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzeGoogTypeof(Node typeof,
Node typeString,
TypeEnv inEnv,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzeHookBwd(Node expr,
TypeEnv outEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeHookFwd(Node expr,
TypeEnv inEnv,
JSType requiredType,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzeInBwd(Node expr,
TypeEnv outEnv) |
private NewTypeInference.EnvTypePair |
analyzeIncDecFwd(Node expr,
TypeEnv inEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeInFwd(Node expr,
TypeEnv inEnv,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzeInstanceofFwd(Node expr,
TypeEnv inEnv,
JSType specializedType) |
private NewTypeInference.LValueResultFwd |
analyzeIObjectElmLvalFwd(Node prop,
NewTypeInference.LValueResultFwd recvLvalue,
JSType indexType) |
private NewTypeInference.EnvTypePair |
analyzeLogicalOpBwd(Node expr,
TypeEnv outEnv) |
private NewTypeInference.EnvTypePair |
analyzeLogicalOpFwd(Node expr,
TypeEnv inEnv,
JSType requiredType,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzeLooseCallNodeBwd(Node callNode,
TypeEnv outEnv,
JSType retType) |
private NewTypeInference.EnvTypePair |
analyzeLooseCallNodeFwd(Node callNode,
TypeEnv inEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeLtGtBwd(Node expr,
TypeEnv outEnv) |
private NewTypeInference.EnvTypePair |
analyzeLtGtFwd(Node expr,
TypeEnv inEnv) |
private NewTypeInference.LValueResultBwd |
analyzeLValueBwd(Node expr,
TypeEnv outEnv,
JSType type,
boolean doSlicing) |
private NewTypeInference.LValueResultBwd |
analyzeLValueBwd(Node expr,
TypeEnv outEnv,
JSType type,
boolean doSlicing,
boolean insideQualifiedName)
When doSlicing is set, remove the lvalue from the returned env
|
private NewTypeInference.LValueResultFwd |
analyzeLValueFwd(Node expr,
TypeEnv inEnv,
JSType type) |
private NewTypeInference.LValueResultFwd |
analyzeLValueFwd(Node expr,
TypeEnv inEnv,
JSType type,
boolean insideQualifiedName) |
private NewTypeInference.EnvTypePair |
analyzeNameBwd(Node expr,
TypeEnv outEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeNameFwd(Node expr,
TypeEnv inEnv,
JSType requiredType,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzeNonStrictComparisonFwd(Node expr,
TypeEnv inEnv,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzeObjLitBwd(Node objLit,
TypeEnv outEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzeObjLitFwd(Node objLit,
TypeEnv inEnv,
JSType requiredType,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzePropAccessBwd(Node receiver,
java.lang.String pname,
TypeEnv outEnv,
JSType requiredType) |
private NewTypeInference.EnvTypePair |
analyzePropAccessFwd(Node receiver,
java.lang.String pname,
TypeEnv inEnv,
JSType requiredType,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzePropertyTestCallFwd(Node call,
TypeEnv inEnv,
JSType specializedType) |
private NewTypeInference.LValueResultBwd |
analyzePropLValBwd(Node obj,
QualifiedName pname,
TypeEnv outEnv,
JSType type,
boolean doSlicing) |
private NewTypeInference.LValueResultFwd |
analyzePropLValFwd(Node obj,
QualifiedName pname,
NewTypeInference.LValueResultFwd recvLvalue,
JSType requiredType,
boolean insideQualifiedName) |
private NewTypeInference.LValueResultFwd |
analyzeReceiverLvalFwd(Node obj,
QualifiedName pname,
TypeEnv inEnv,
JSType propType) |
private NewTypeInference.EnvTypePair |
analyzeSpecializedTypeof(Node typeof,
Node typeString,
int comparisonOp,
TypeEnv inEnv,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzeStrictComparisonFwd(int comparisonOp,
Node lhs,
Node rhs,
TypeEnv inEnv,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzeTypePredicate(Node call,
java.lang.String typeHint,
TypeEnv inEnv,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
analyzeUnaryNumFwd(Node expr,
TypeEnv inEnv) |
private void |
buildWorkset(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> dn,
java.util.List<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> workset) |
private void |
buildWorksetHelper(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> dn,
java.util.List<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> workset,
java.util.Set<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> seen) |
private com.google.common.collect.ImmutableMap<java.lang.String,JSType> |
calcTypeInstantiation(Node callNode,
Node receiver,
Node firstArg,
FunctionType funType,
TypeEnv typeEnv,
boolean isFwd)
We don't use the requiredType of the context to unify with the return
type.
|
private java.util.Map<java.lang.String,JSType> |
calcTypeInstantiationBwd(Node callNode,
FunctionType funType,
TypeEnv typeEnv) |
private java.util.Map<java.lang.String,JSType> |
calcTypeInstantiationFwd(Node callNode,
Node receiver,
Node firstArg,
FunctionType funType,
TypeEnv typeEnv) |
private JSType |
changeTypeIfFunctionNamespace(NTIScope fnScope,
JSType fnType) |
private void |
checkInvalidTypename(Node typeString) |
private TypeEnv |
collectTypesForFreeVarsFwd(Node n,
TypeEnv env) |
private NewTypeInference.EnvTypePair |
combineLhsAndRhsForLogicalOps(int logicalOp,
JSType lhsUnspecializedType,
NewTypeInference.EnvTypePair lhsPair,
NewTypeInference.EnvTypePair rhsPair) |
private void |
createDeferredCheckBwd(Node expr,
JSType requiredType) |
private void |
createSummary(NTIScope fn) |
private static JSType |
envGetType(TypeEnv env,
java.lang.String pname) |
private static TypeEnv |
envPutType(TypeEnv env,
java.lang.String varName,
JSType type) |
(package private) TypeEnv |
getEntryTypeEnv() |
private TypeEnv |
getInEnv(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> dn) |
private TypeEnv |
getOutEnv(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> dn) |
private java.lang.String |
getPropNameForErrorMsg(Node propAccessNode) |
private static java.lang.String |
getReadableCalleeName(Node expr) |
private JSType |
getSummaryOfLocalFunDef(java.lang.String name) |
private JSType |
getTypeAfterFwd(java.lang.String varName,
TypeEnv entryEnv,
TypeEnv exitEnv) |
private TypeEnv |
getTypeEnvFromDeclaredTypes() |
private JSType |
getTypeFromString(Node typeString) |
private static boolean |
hasPathWithNoReturn(ControlFlowGraph<Node> cfg) |
private void |
initEdgeEnvsFwd(TypeEnv entryEnv) |
private static boolean |
isAllowedToNotReturn(NTIScope methodScope) |
private boolean |
isFunctionBind(Node expr,
TypeEnv env,
boolean isFwd) |
private boolean |
isGoogTypeof(Node expr) |
private static boolean |
isImpreciseType(JSType t) |
private boolean |
isPropertyAbsentTest(Node propAccessNode) |
private boolean |
isPropertyTestCall(Node expr) |
private JSType |
markAndGetTypeOfPreanalyzedNode(Node qnameNode,
TypeEnv env,
boolean isFwd) |
private boolean |
maybeIsNamespace(java.lang.String varName,
JSType inferredType) |
private void |
maybeSetTypeI(Node n,
JSType t) |
private boolean |
mayWarnAboutBadIObjectIndex(Node n,
JSType iobjectType,
JSType foundIndexType,
JSType requiredIndexType) |
private boolean |
mayWarnAboutConst(Node n) |
private boolean |
mayWarnAboutConstProp(Node propAccess,
JSType recvType,
QualifiedName pname) |
private boolean |
mayWarnAboutDictPropAccess(Node obj,
JSType type) |
private boolean |
mayWarnAboutGlobalThis(Node thisExpr,
NTIScope currentScope) |
private boolean |
mayWarnAboutInexistentProp(Node propAccessNode,
JSType recvType,
QualifiedName propQname,
TypeEnv env) |
private boolean |
mayWarnAboutNonObject(Node receiver,
JSType recvType,
JSType specializedType) |
private NewTypeInference.EnvTypePair |
mayWarnAboutNullableReferenceAndTighten(Node obj,
JSType recvType,
JSType maybeSpecType,
TypeEnv inEnv) |
private boolean |
mayWarnAboutPropCreation(QualifiedName pname,
Node getProp,
JSType recvType) |
private boolean |
mayWarnAboutStructPropAccess(Node obj,
JSType type) |
private static JSType |
pickReqObjType(Node expr) |
private JSType |
predicateTransformType(java.lang.String typeHint,
JSType booleanContext,
JSType beforeType) |
private static void |
println(java.lang.Object... objs) |
void |
process(Node externs,
Node root)
Process the JS with root node root.
|
NTIScope |
processForTesting(Node externs,
Node root) |
private TypeEnv |
processVarDeclaration(Node nameNode,
TypeEnv inEnv)
Processes a single variable declaration in a VAR statement.
|
private static JSType |
scalarValueToType(int token) |
private TypeEnv |
setOutEnv(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> dn,
TypeEnv e) |
private static JSType |
specializeKeep2ndWhenBottom(JSType toBeSpecialized,
JSType fallback) |
private boolean |
tightenTypeAndDontWarn(java.lang.String varName,
Node n,
JSType declared,
JSType inferred,
JSType required) |
private void |
unifyWithSubtypeWarnIfFail(JSType genericType,
JSType concreteType,
java.util.List<java.lang.String> typeParameters,
com.google.common.collect.Multimap<java.lang.String,JSType> typeMultimap,
Node toWarnOn,
boolean isFwd) |
private TypeEnv |
updateLvalueTypeInEnv(TypeEnv env,
Node lvalue,
QualifiedName qname,
JSType type) |
(package private) static void |
updatePeakMem() |
private void |
warnInvalidOperand(Node expr,
int operatorType,
java.lang.Object expected,
java.lang.Object actual) |