Skip to content

Commit

Permalink
Remove NTI code from the code base.
Browse files Browse the repository at this point in the history
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=195002824
  • Loading branch information
concavelenz authored and lauraharker committed May 2, 2018
1 parent b86e7fb commit 42da5a3
Show file tree
Hide file tree
Showing 70 changed files with 16 additions and 48,187 deletions.
6 changes: 0 additions & 6 deletions src/com/google/javascript/jscomp/AbstractCompiler.java
Expand Up @@ -142,7 +142,6 @@ public abstract class AbstractCompiler implements SourceExcerptProvider {
static enum MostRecentTypechecker {
NONE,
OTI,
NTI
}

/**
Expand Down Expand Up @@ -259,11 +258,6 @@ static enum MostRecentTypechecker {
*/
abstract Iterable<TypeMismatch> getImplicitInterfaceUses();

/**
* Global type registry used by NTI.
*/
abstract <T extends TypeIRegistry> T getGlobalTypeInfo();

abstract void setExternExports(String externExports);

/**
Expand Down
32 changes: 0 additions & 32 deletions src/com/google/javascript/jscomp/ClosureCodingConvention.java
Expand Up @@ -23,9 +23,6 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.errorprone.annotations.Immutable;
import com.google.javascript.jscomp.newtypes.DeclaredTypeRegistry;
import com.google.javascript.jscomp.newtypes.JSType;
import com.google.javascript.jscomp.newtypes.QualifiedName;
import com.google.javascript.rhino.FunctionTypeI;
import com.google.javascript.rhino.IR;
import com.google.javascript.rhino.Node;
Expand Down Expand Up @@ -513,28 +510,6 @@ public AssertInstanceofSpec(String functionName) {
}
return registry.getNativeType(JSTypeNative.UNKNOWN_TYPE);
}

@Override
public JSType getAssertedNewType(Node call, DeclaredTypeRegistry scope) {
if (call.getChildCount() > 2) {
Node constructor = call.getSecondChild().getNext();
if (constructor != null && constructor.isQualifiedName()) {
QualifiedName qname = QualifiedName.fromNode(constructor);
JSType functionType = scope.getDeclaredTypeOf(qname.getLeftmostName());
if (functionType != null) {
if (!qname.isIdentifier()) {
functionType = functionType.getProp(qname.getAllButLeftmost());
}
com.google.javascript.jscomp.newtypes.FunctionType ctorType =
functionType == null ? null : functionType.getFunTypeIfSingletonObj();
if (ctorType != null && ctorType.isUniqueConstructor()) {
return ctorType.getInstanceTypeOfCtor();
}
}
}
}
return scope.getCommonTypes().UNKNOWN;
}
}

/**
Expand All @@ -554,12 +529,5 @@ public AssertFunctionByTypeName(String functionName, String typeName) {
getAssertedOldType(Node call, JSTypeRegistry registry) {
return registry.getGlobalType(typeName);
}

@Override
public JSType getAssertedNewType(Node call, DeclaredTypeRegistry scope) {
JSType result = scope.getDeclaredTypeOf(typeName)
.getFunTypeIfSingletonObj().getInstanceTypeOfCtor();
return result;
}
}
}
15 changes: 2 additions & 13 deletions src/com/google/javascript/jscomp/CodingConvention.java
Expand Up @@ -17,14 +17,13 @@

import com.google.common.base.Preconditions;
import com.google.errorprone.annotations.Immutable;
import com.google.javascript.jscomp.newtypes.DeclaredTypeRegistry;
import com.google.javascript.jscomp.newtypes.JSType;
import com.google.javascript.rhino.FunctionTypeI;
import com.google.javascript.rhino.Node;
import com.google.javascript.rhino.NominalTypeBuilder;
import com.google.javascript.rhino.ObjectTypeI;
import com.google.javascript.rhino.StaticSourceFile;
import com.google.javascript.rhino.TypeIRegistry;
import com.google.javascript.rhino.jstype.JSType;
import com.google.javascript.rhino.jstype.JSTypeNative;
import com.google.javascript.rhino.jstype.JSTypeRegistry;
import java.io.Serializable;
Expand Down Expand Up @@ -516,18 +515,8 @@ public Node getAssertedParam(Node firstParam) {
* the function asserts that the node must not be null or undefined.
* @param call The asserting call
*/
public com.google.javascript.rhino.jstype.JSType
getAssertedOldType(Node call, JSTypeRegistry registry) {
public JSType getAssertedOldType(Node call, JSTypeRegistry registry) {
return assertedType != null ? registry.getNativeType(assertedType) : null;
}

/**
* Returns the new type system type for a type assertion.
* @param call The asserting call
*/
public JSType getAssertedNewType(Node call, DeclaredTypeRegistry scope) {
return assertedType != null
? scope.getCommonTypes().getNativeType(assertedType) : null;
}
}
}
23 changes: 0 additions & 23 deletions src/com/google/javascript/jscomp/Compiler.java
Expand Up @@ -233,9 +233,6 @@ public SourceFile loadSource(String filename) {
// Types that have been forward declared
private Set<String> forwardDeclaredTypes = new HashSet<>();

// Type registry used by new type inference.
private GlobalTypeInfo globalTypeInfo;

private MostRecentTypechecker mostRecentTypechecker = MostRecentTypechecker.NONE;

// This error reporter gets the messages from the current Rhino parser or TypeRegistry.
Expand Down Expand Up @@ -1501,8 +1498,6 @@ public TypeIRegistry getTypeIRegistry() {
return getTypeRegistry();
case OTI:
return getTypeRegistry();
case NTI:
return getGlobalTypeInfo();
default:
throw new RuntimeException("Unhandled typechecker " + mostRecentTypechecker);
}
Expand All @@ -1514,9 +1509,6 @@ public void clearTypeIRegistry() {
case OTI:
typeRegistry = null;
return;
case NTI:
globalTypeInfo = null;
return;
case NONE:
return;
default:
Expand Down Expand Up @@ -1647,8 +1639,6 @@ Iterable<TypeMismatch> getTypeMismatches() {
switch (this.mostRecentTypechecker) {
case OTI:
return getTypeValidator().getMismatches();
case NTI:
return getGlobalTypeInfo().getMismatches();
default:
throw new RuntimeException("Can't ask for type mismatches before type checking.");
}
Expand All @@ -1659,21 +1649,11 @@ Iterable<TypeMismatch> getImplicitInterfaceUses() {
switch (this.mostRecentTypechecker) {
case OTI:
return getTypeValidator().getImplicitInterfaceUses();
case NTI:
return getGlobalTypeInfo().getImplicitInterfaceUses();
default:
throw new RuntimeException("Can't ask for type mismatches before type checking.");
}
}

@Override
GlobalTypeInfo getGlobalTypeInfo() {
if (this.globalTypeInfo == null) {
this.globalTypeInfo = new GlobalTypeInfo(this, forwardDeclaredTypes);
}
return this.globalTypeInfo;
}

public void maybeSetTracker() {
if (options.getTracerMode().isOn()) {
PrintStream tracerOutput =
Expand Down Expand Up @@ -3532,7 +3512,6 @@ private static class CompilerState implements Serializable {
private final CompilerInput synthesizedExternsInputAtEnd;
private final Map<String, Node> injectedLibraries;
private final Node lastInjectedLibrary;
private final GlobalTypeInfo globalTypeInfo;
private final boolean hasRegExpGlobalReferences;
private final LifeCycleStage lifeCycleStage;
private final Set<String> externProperties;
Expand Down Expand Up @@ -3569,7 +3548,6 @@ private static class CompilerState implements Serializable {
this.synthesizedExternsInputAtEnd = compiler.synthesizedExternsInputAtEnd;
this.injectedLibraries = compiler.injectedLibraries;
this.lastInjectedLibrary = compiler.lastInjectedLibrary;
this.globalTypeInfo = compiler.globalTypeInfo;
this.hasRegExpGlobalReferences = compiler.hasRegExpGlobalReferences;
this.typeValidator = compiler.typeValidator;
this.lifeCycleStage = compiler.getLifeCycleStage();
Expand Down Expand Up @@ -3667,7 +3645,6 @@ public CompilerState call() throws Exception {
injectedLibraries.clear();
injectedLibraries.putAll(compilerState.injectedLibraries);
lastInjectedLibrary = compilerState.lastInjectedLibrary;
globalTypeInfo = compilerState.globalTypeInfo;
hasRegExpGlobalReferences = compilerState.hasRegExpGlobalReferences;
typeValidator = compilerState.typeValidator;
setLifeCycleStage(compilerState.lifeCycleStage);
Expand Down
111 changes: 13 additions & 98 deletions src/com/google/javascript/jscomp/DiagnosticGroups.java
Expand Up @@ -35,7 +35,6 @@
import com.google.javascript.jscomp.lint.CheckRequiresAndProvidesSorted;
import com.google.javascript.jscomp.lint.CheckUnusedLabels;
import com.google.javascript.jscomp.lint.CheckUselessBlocks;
import com.google.javascript.jscomp.newtypes.JSTypeCreatorFromJSDoc;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
Expand Down Expand Up @@ -205,8 +204,7 @@ public DiagnosticGroup forName(String name) {

public static final DiagnosticGroup INVALID_CASTS =
DiagnosticGroups.registerGroup("invalidCasts",
TypeValidator.INVALID_CAST,
NewTypeInference.INVALID_CAST);
TypeValidator.INVALID_CAST);

@Deprecated
public static final DiagnosticGroup FILEOVERVIEW_JSDOC =
Expand Down Expand Up @@ -250,9 +248,7 @@ public DiagnosticGroup forName(String name) {
DiagnosticGroups.registerGroup("missingProperties",
TypeCheck.INEXISTENT_PROPERTY,
TypeCheck.INEXISTENT_PROPERTY_WITH_SUGGESTION,
TypeCheck.POSSIBLE_INEXISTENT_PROPERTY,
NewTypeInference.INEXISTENT_PROPERTY,
NewTypeInference.POSSIBLY_INEXISTENT_PROPERTY);
TypeCheck.POSSIBLE_INEXISTENT_PROPERTY);

public static final DiagnosticGroup J2CL_CHECKS =
DiagnosticGroups.registerGroup("j2clChecks",
Expand Down Expand Up @@ -295,100 +291,26 @@ public DiagnosticGroup forName(String name) {
// Run the new type inference, but omit many warnings that are not
// found by the old type checker. This makes migration to NTI more manageable.
public static final DiagnosticGroup NEW_CHECK_TYPES_COMPATIBILITY_MODE =
DiagnosticGroups.registerGroup("newCheckTypesCompatibility", // undocumented
JSTypeCreatorFromJSDoc.COMPATIBLE_DIAGNOSTICS,
GlobalTypeInfoCollector.COMPATIBLE_DIAGNOSTICS,
NewTypeInference.COMPATIBLE_DIAGNOSTICS);
DiagnosticGroups.registerDeprecatedGroup("newCheckTypesCompatibility");

// no op
public static final DiagnosticGroup NEW_CHECK_TYPES_EXTRA_CHECKS =
DiagnosticGroups.registerGroup("newCheckTypesExtraChecks", // undocumented
JSTypeCreatorFromJSDoc.NEW_DIAGNOSTICS,
GlobalTypeInfoCollector.NEW_DIAGNOSTICS,
NewTypeInference.NEW_DIAGNOSTICS);
DiagnosticGroups.registerDeprecatedGroup("newCheckTypesExtraChecks");

// Part of the new type inference
public static final DiagnosticGroup NEW_CHECK_TYPES =
DiagnosticGroups.registerGroup("newCheckTypes",
NEW_CHECK_TYPES_COMPATIBILITY_MODE,
NEW_CHECK_TYPES_EXTRA_CHECKS);
DiagnosticGroups.registerDeprecatedGroup("newCheckTypes");

public static final DiagnosticGroup CHECK_TYPES =
DiagnosticGroups.registerGroup("checkTypes",
OLD_CHECK_TYPES,
NEW_CHECK_TYPES);
OLD_CHECK_TYPES);

public static final DiagnosticGroup NEW_CHECK_TYPES_ALL_CHECKS =
DiagnosticGroups.registerGroup("newCheckTypesAllChecks",
NewTypeInference.NULLABLE_DEREFERENCE);
DiagnosticGroups.registerDeprecatedGroup("newCheckTypesAllChecks");

static {
// Warnings that are absent in closure library
DiagnosticGroups.registerGroup("newCheckTypesClosureClean",
JSTypeCreatorFromJSDoc.CONFLICTING_EXTENDED_TYPE,
JSTypeCreatorFromJSDoc.CONFLICTING_IMPLEMENTED_TYPE,
JSTypeCreatorFromJSDoc.DICT_IMPLEMENTS_INTERF,
JSTypeCreatorFromJSDoc.EXTENDS_NON_OBJECT,
JSTypeCreatorFromJSDoc.EXTENDS_NOT_ON_CTOR_OR_INTERF,
JSTypeCreatorFromJSDoc.IMPLEMENTS_WITHOUT_CONSTRUCTOR,
JSTypeCreatorFromJSDoc.INHERITANCE_CYCLE,
JSTypeCreatorFromJSDoc.UNION_IS_UNINHABITABLE,
GlobalTypeInfoCollector.ABSTRACT_METHOD_IN_CONCRETE_CLASS,
GlobalTypeInfoCollector.ANCESTOR_TYPES_HAVE_INCOMPATIBLE_PROPERTIES,
GlobalTypeInfoCollector.ANONYMOUS_NOMINAL_TYPE,
GlobalTypeInfoCollector.CANNOT_INIT_TYPEDEF,
GlobalTypeInfoCollector.CANNOT_OVERRIDE_FINAL_METHOD,
GlobalTypeInfoCollector.CONST_WITHOUT_INITIALIZER,
GlobalTypeInfoCollector.COULD_NOT_INFER_CONST_TYPE,
GlobalTypeInfoCollector.CTOR_IN_DIFFERENT_SCOPE,
GlobalTypeInfoCollector.DICT_WITHOUT_CTOR,
GlobalTypeInfoCollector.DUPLICATE_JSDOC,
GlobalTypeInfoCollector.DUPLICATE_PROP_IN_ENUM,
GlobalTypeInfoCollector.EXPECTED_CONSTRUCTOR,
GlobalTypeInfoCollector.EXPECTED_INTERFACE,
GlobalTypeInfoCollector.INEXISTENT_PARAM,
GlobalTypeInfoCollector.INTERFACE_METHOD_NOT_IMPLEMENTED,
// GlobalTypeInfoCollector.INVALID_PROP_OVERRIDE,
GlobalTypeInfoCollector.LENDS_ON_BAD_TYPE,
GlobalTypeInfoCollector.MALFORMED_ENUM,
GlobalTypeInfoCollector.MISPLACED_CONST_ANNOTATION,
GlobalTypeInfoCollector.ONE_TYPE_FOR_MANY_VARS,
// GlobalTypeInfoCollector.REDECLARED_PROPERTY,
GlobalTypeInfoCollector.STRUCT_WITHOUT_CTOR_OR_INTERF,
GlobalTypeInfoCollector.UNKNOWN_OVERRIDE,
GlobalTypeInfoCollector.UNRECOGNIZED_TYPE_NAME,
NewTypeInference.ABSTRACT_SUPER_METHOD_NOT_CALLABLE,
NewTypeInference.ASSERT_FALSE,
NewTypeInference.CANNOT_BIND_CTOR,
NewTypeInference.CONST_REASSIGNED,
NewTypeInference.CONSTRUCTOR_NOT_CALLABLE,
NewTypeInference.CROSS_SCOPE_GOTCHA,
// NewTypeInference.FORIN_EXPECTS_OBJECT,
NewTypeInference.FORIN_EXPECTS_STRING_KEY,
// NewTypeInference.GLOBAL_THIS,
// NewTypeInference.GOOG_BIND_EXPECTS_FUNCTION,
NewTypeInference.ILLEGAL_OBJLIT_KEY,
NewTypeInference.ILLEGAL_PROPERTY_ACCESS,
NewTypeInference.ILLEGAL_PROPERTY_CREATION,
NewTypeInference.IN_USED_WITH_STRUCT,
// NewTypeInference.INEXISTENT_PROPERTY,
// NewTypeInference.INVALID_ARGUMENT_TYPE,
// NewTypeInference.INVALID_CAST,
// NewTypeInference.INVALID_INDEX_TYPE,
NewTypeInference.INVALID_INFERRED_RETURN_TYPE,
NewTypeInference.INVALID_OBJLIT_PROPERTY_TYPE,
// NewTypeInference.INVALID_OPERAND_TYPE,
NewTypeInference.INVALID_THIS_TYPE_IN_BIND,
NewTypeInference.MISSING_RETURN_STATEMENT,
// NewTypeInference.MISTYPED_ASSIGN_RHS,
NewTypeInference.NOT_A_CONSTRUCTOR,
NewTypeInference.NOT_CALLABLE,
// NewTypeInference.NOT_UNIQUE_INSTANTIATION,
// NewTypeInference.POSSIBLY_INEXISTENT_PROPERTY,
// NewTypeInference.PROPERTY_ACCESS_ON_NONOBJECT,
// NewTypeInference.RETURN_NONDECLARED_TYPE,
// NewTypeInference.WRONG_ARGUMENT_COUNT,
NewTypeInference.UNKNOWN_ASSERTION_TYPE,
NewTypeInference.UNKNOWN_TYPEOF_VALUE);
DiagnosticGroups.registerDeprecatedGroup("newCheckTypesClosureClean");
}

public static final DiagnosticGroup TOO_MANY_TYPE_PARAMS =
Expand Down Expand Up @@ -420,8 +342,7 @@ public DiagnosticGroup forName(String name) {

public static final DiagnosticGroup REPORT_UNKNOWN_TYPES =
DiagnosticGroups.registerGroup("reportUnknownTypes",
TypeCheck.UNKNOWN_EXPR_TYPE,
NewTypeInference.UNKNOWN_EXPR_TYPE);
TypeCheck.UNKNOWN_EXPR_TYPE);

public static final DiagnosticGroup CHECK_VARIABLES =
DiagnosticGroups.registerGroup("checkVars",
Expand All @@ -439,10 +360,7 @@ public DiagnosticGroup forName(String name) {
DiagnosticGroups.registerGroup("const",
CheckAccessControls.CONST_PROPERTY_DELETED,
CheckAccessControls.CONST_PROPERTY_REASSIGNED_VALUE,
ConstCheck.CONST_REASSIGNED_VALUE_ERROR,
NewTypeInference.CONST_REASSIGNED,
NewTypeInference.CONST_PROPERTY_REASSIGNED,
NewTypeInference.CONST_PROPERTY_DELETED);
ConstCheck.CONST_REASSIGNED_VALUE_ERROR);

static final DiagnosticGroup ACCESS_CONTROLS_CONST =
DiagnosticGroups.registerGroup("accessControlsConst",
Expand All @@ -452,9 +370,7 @@ public DiagnosticGroup forName(String name) {
public static final DiagnosticGroup CONSTANT_PROPERTY =
DiagnosticGroups.registerGroup("constantProperty",
CheckAccessControls.CONST_PROPERTY_DELETED,
CheckAccessControls.CONST_PROPERTY_REASSIGNED_VALUE,
NewTypeInference.CONST_PROPERTY_REASSIGNED,
NewTypeInference.CONST_PROPERTY_DELETED);
CheckAccessControls.CONST_PROPERTY_REASSIGNED_VALUE);

public static final DiagnosticGroup TYPE_INVALIDATION =
DiagnosticGroups.registerGroup("typeInvalidation",
Expand All @@ -468,8 +384,7 @@ public DiagnosticGroup forName(String name) {
TypeValidator.DUP_VAR_DECLARATION,
TypeValidator.DUP_VAR_DECLARATION_TYPE_MISMATCH,
TypeCheck.FUNCTION_MASKS_VARIABLE,
VariableReferenceCheck.REDECLARED_VARIABLE,
GlobalTypeInfoCollector.REDECLARED_PROPERTY);
VariableReferenceCheck.REDECLARED_VARIABLE);

public static final DiagnosticGroup ES3 =
DiagnosticGroups.registerGroup("es3",
Expand Down
5 changes: 0 additions & 5 deletions src/com/google/javascript/jscomp/ForwardingCompiler.java
Expand Up @@ -255,11 +255,6 @@ public Iterable<TypeMismatch> getImplicitInterfaceUses() {
return abstractCompiler.getImplicitInterfaceUses();
}

@Override
public <T extends TypeIRegistry> T getGlobalTypeInfo() {
return abstractCompiler.getGlobalTypeInfo();
}

@Override
public void setExternExports(String externExports) {
abstractCompiler.setExternExports(externExports);
Expand Down

0 comments on commit 42da5a3

Please sign in to comment.