class ChainableReverseAbstractInterpreter {
public JSType caseObjectType(ObjectType type) {
return type;
}
}
class ChainableReverseAbstractInterpreter {
public JSType caseObjectType(ObjectType type) {
return type;
}
}
class ChainableReverseAbstractInterpreter.RestrictByTrueTypeOfResultVisitor {
public JSType caseObjectType(ObjectType type) {
return null;
}
}
class ChainableReverseAbstractInterpreter.RestrictByFalseTypeOfResultVisitor {
public JSType caseObjectType(ObjectType type) {
return type;
}
}
class ChainableReverseAbstractInterpreter.RestrictByOneTypeOfResultVisitor {
public JSType caseObjectType(ObjectType type) {
if (value.equals("function")) {
JSType ctorType = getNativeType(U2U_CONSTRUCTOR_TYPE);
return resultEqualsValue && ctorType.isSubtype(type) ? ctorType : null;
}
return matchesExpectation("object") ? type : null;
}
}
|