Removes JTypeOracle.isJsType and isJsFunction. These two are redundant after JType introduced this functions. Also patches makes some related simplifications in CFA. Change-Id: I3a9e6ba8111157e67295f16c8429316bc5398dfd
diff --git a/dev/core/src/com/google/gwt/dev/jjs/ast/JTypeOracle.java b/dev/core/src/com/google/gwt/dev/jjs/ast/JTypeOracle.java index 3ff2567..4a0bf15 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/ast/JTypeOracle.java +++ b/dev/core/src/com/google/gwt/dev/jjs/ast/JTypeOracle.java
@@ -1009,13 +1009,6 @@ } /** - * Whether the type is a JS interface (does not check supertypes). - */ - public boolean isJsType(JType type) { - return type instanceof JDeclaredType && ((JDeclaredType) type).isJsType(); - } - - /** * Whether the type or any supertypes is a JS type, optionally, only return true if * one of the types has a js prototype. */ @@ -1024,13 +1017,6 @@ } /** - * Whether the type is a JsFunction interface. - */ - public boolean isJsFunction(JType type) { - return type instanceof JInterfaceType && ((JInterfaceType) type).isJsFunction(); - } - - /** * Returns true if possibleSubType is a subclass of type, directly or indirectly. */ public boolean isSubClass(JClassType type, JClassType possibleSubType) {
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/ControlFlowAnalyzer.java b/dev/core/src/com/google/gwt/dev/jjs/impl/ControlFlowAnalyzer.java index 296a694..956a33f 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/impl/ControlFlowAnalyzer.java +++ b/dev/core/src/com/google/gwt/dev/jjs/impl/ControlFlowAnalyzer.java
@@ -31,7 +31,6 @@ import com.google.gwt.dev.jjs.ast.JExpression; import com.google.gwt.dev.jjs.ast.JField; import com.google.gwt.dev.jjs.ast.JFieldRef; -import com.google.gwt.dev.jjs.ast.JInstanceOf; import com.google.gwt.dev.jjs.ast.JInterfaceType; import com.google.gwt.dev.jjs.ast.JLocal; import com.google.gwt.dev.jjs.ast.JLocalRef; @@ -310,16 +309,6 @@ } @Override - public boolean visit(JInstanceOf x, Context ctx) { - JReferenceType targetType = x.getTestType(); - if (program.typeOracle.isJsType(targetType) || program.typeOracle.isJsFunction(targetType)) { - // keep alive JsType used in instanceof so it is not pruned and re-written as null check. - rescue(targetType, true); - } - return true; - } - - @Override public boolean visit(JInterfaceType type, Context ctx) { boolean isReferenced = referencedTypes.contains(type); boolean isInstantiated = instantiatedTypes.contains(type); @@ -659,8 +648,7 @@ return; } JArrayType arrayType = (JArrayType) type; - if (program.typeOracle.isJsType(arrayType.getLeafType()) || - program.typeOracle.isJsFunction(arrayType.getLeafType())) { + if (arrayType.isJsType()) { rescue(arrayType, true); maybeRescueJsTypeArray(arrayType.getElementType()); } @@ -693,7 +681,7 @@ accept(type); - if (!program.typeOracle.isJsType(type) && !program.typeOracle.isJsFunction(type)) { + if (!(type instanceof JDeclaredType)) { return; }
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/TypeCategory.java b/dev/core/src/com/google/gwt/dev/jjs/impl/TypeCategory.java index 0242b35..55cf8bc 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/impl/TypeCategory.java +++ b/dev/core/src/com/google/gwt/dev/jjs/impl/TypeCategory.java
@@ -53,13 +53,12 @@ } else if (program.typeOracle.willCrossCastLikeJso(type)) { return TypeCategory.TYPE_JSO; } else if (program.typeOracle.isDualJsoInterface(type) || - program.typeOracle.hasLiveImplementors(type) && program.typeOracle.isOrExtendsJsType(type, false) && !program.typeOracle.isOrExtendsJsType(type, true)) { return TypeCategory.TYPE_JAVA_OBJECT_OR_JSO; } else if (program.typeOracle.isOrExtendsJsType(type, true)) { return TypeCategory.TYPE_JS_INTERFACE; - } else if (program.typeOracle.isJsFunction(type)) { + } else if (type.isJsFunction()) { return TypeCategory.TYPE_JS_FUNCTION; } return TypeCategory.TYPE_JAVA_OBJECT;