JWildcardType type2Wild = type2.isWildcard();
if (type2Wild != null) {
return typesMatch(type1, type2Wild.getUpperBound(), constraints);
}
JRawType type1Raw = type1.isRawType();
if (type1Raw != null) {
return typesMatch(type1Raw.asParameterizedByWildcards(), type2,
constraints);
}
JRawType type2Raw = type2.isRawType();
if (type2Raw != null) {
return typesMatch(type1, type2Raw.asParameterizedByWildcards(),
constraints);
}
// The following assertions are known to be true, given the tests above.
// assert (type1Generic == null);