@Override public Boolean visitArrayType(final ArrayType t, final TypeReference s) { return s.isArray() && containsTypeEquivalent(getElementType(t), getElementType(s)); }
@Override public Boolean visitArrayType(final ArrayType t, final TypeReference s) { return s.isArray() && containsTypeEquivalent(getElementType(t), getElementType(s)); }
@Override public Boolean visitArrayType(final ArrayType t, final TypeReference s) { return s.isArray() && containsTypeEquivalent(getElementType(t), getElementType(s)); }
@Override public TypeReference visitArrayType(final ArrayType t, final Boolean recurse) { final TypeReference elementType = getElementType(t); final TypeReference erasedElementType = erase(getElementType(t), recurse); return erasedElementType == elementType ? t : erasedElementType.makeArrayType(); }
@Override public Void visitArrayType(final ArrayType source, final TypeReference target) { if (target.isArray()) { adaptRecursive(getElementType(source), getElementType(target)); } return null; }
@Override public Void visitArrayType(final ArrayType source, final TypeReference target) { if (target.isArray()) { adaptRecursive(getElementType(source), getElementType(target)); } return null; }
@Override public TypeReference visitArrayType(final ArrayType t, final Boolean recurse) { final TypeReference elementType = getElementType(t); final TypeReference erasedElementType = erase(getElementType(t), recurse); return erasedElementType == elementType ? t : erasedElementType.makeArrayType(); }
@Override public TypeReference visitArrayType(final ArrayType t, final Boolean recurse) { final TypeReference elementType = getElementType(t); final TypeReference erasedElementType = erase(getElementType(t), recurse); return erasedElementType == elementType ? t : erasedElementType.makeArrayType(); }
@Override public Void visitArrayType(final ArrayType source, final TypeReference target) { if (target.isArray()) { adaptRecursive(getElementType(source), getElementType(target)); } return null; }
@Override public TypeReference visitArrayType(final ArrayType t, final Void ignored) { final TypeReference et = getElementType(t); if (et.isPrimitive() || isSameType(et, BuiltinTypes.Object)) { return arraySuperType(et); } final TypeReference superType = getSuperType(et); return superType != null ? superType.makeArrayType() : null; }
public static TypeReference getElementType(final TypeReference t) { if (t.isArray()) { return t.getElementType(); } if (t.isWildcardType()) { return getElementType(getUpperBound(t)); } return null; }
public static TypeReference getElementType(final TypeReference t) { if (t.isArray()) { return t.getElementType(); } if (t.isWildcardType()) { return getElementType(getUpperBound(t)); } return null; }
public static TypeReference getElementType(final TypeReference t) { if (t.isArray()) { return t.getElementType(); } if (t.isWildcardType()) { return getElementType(getUpperBound(t)); } return null; }
@Override public TypeReference visitArrayType(final ArrayType t, final Void ignored) { final TypeReference et = getElementType(t); assert et != null; if (et.isPrimitive() || isSameType(et, BuiltinTypes.Object)) { return arraySuperType(et); } final TypeReference superType = getSuperType(et); return superType != null ? superType.makeArrayType() : null; }
@Override public TypeReference visitArrayType(final ArrayType t, final Void ignored) { final TypeReference et = getElementType(t); if (et.isPrimitive() || isSameType(et, BuiltinTypes.Object)) { return arraySuperType(et); } final TypeReference superType = getSuperType(et); return superType != null ? superType.makeArrayType() : null; }
@Override public Boolean visitArrayType(final ArrayType t, final TypeReference s) { if (s.isArray()) { final TypeReference et = getElementType(t); final TypeReference es = getElementType(s); if (et.isPrimitive()) { return isSameType(et, es); } return isSubTypeNoCapture(et, es); } final String sName = s.getInternalName(); return StringUtilities.equals(sName, "java/lang/Object") || StringUtilities.equals(sName, "java/lang/Cloneable") || StringUtilities.equals(sName, "java/io/Serializable"); }
@Override public Boolean visitArrayType(final ArrayType t, final TypeReference s) { if (s.isArray()) { final TypeReference et = getElementType(t); final TypeReference es = getElementType(s); if (et.isPrimitive()) { return isSameType(et, es); } return isSubTypeNoCapture(et, es); } final String sName = s.getInternalName(); return StringUtilities.equals(sName, "java/lang/Object") || StringUtilities.equals(sName, "java/lang/Cloneable") || StringUtilities.equals(sName, "java/io/Serializable"); }
@Override public Boolean visitArrayType(final ArrayType t, final TypeReference s) { if (s.isArray()) { final TypeReference et = getElementType(t); final TypeReference es = getElementType(s); assert et != null && es != null; if (et.isPrimitive()) { return isSameType(et, es); } return isSubTypeNoCapture(et, es); } final String sName = s.getInternalName(); return StringUtilities.equals(sName, "java/lang/Object") || StringUtilities.equals(sName, "java/lang/Cloneable") || StringUtilities.equals(sName, "java/io/Serializable"); }
private static boolean isSubtypeUncheckedInternal(final TypeReference t, final TypeReference s) { if (t == s) { return true; } if (t == null || s == null) { return false; } if (t.isArray() && s.isArray()) { if (t.getElementType().isPrimitive()) { return isSameType(getElementType(t), getElementType(s)); } else { return isSubTypeUnchecked(getElementType(t), getElementType(s)); } } else if (isSubType(t, s)) { return true; } else if (t.isGenericParameter() && t.hasExtendsBound()) { return isSubTypeUnchecked(getUpperBound(t), s); } else if (!isRawType(s)) { final TypeReference t2 = asSuper(s, t); if (t2 != null && isRawType(t2)) { return true; } } return false; }
private static boolean isSubtypeUncheckedInternal(final TypeReference t, final TypeReference s) { if (t == s) { return true; } if (t == null || s == null) { return false; } if (t.isArray() && s.isArray()) { if (t.getElementType().isPrimitive()) { return isSameType(getElementType(t), getElementType(s)); } else { return isSubTypeUnchecked(getElementType(t), getElementType(s)); } } else if (isSubType(t, s)) { return true; } else if (t.isGenericParameter() && t.hasExtendsBound()) { return isSubTypeUnchecked(getUpperBound(t), s); } else if (!isRawType(s)) { final TypeReference t2 = asSuper(s, t); if (t2 != null && isRawType(t2)) { return true; } } return false; }