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;