public static <T> Type<? super T> makeSuperWildcard(final Type<T> bound) { return new WildcardType<>( Types.Object, bound ); }
public static <T> Type<? super T> makeSuperWildcard(final Type<T> bound) { return new WildcardType<>( Types.Object, bound ); }
public static <T> Type<? super T> makeSuperWildcard(final Type<T> bound) { return new WildcardType<>( Types.Object, bound ); }
public static <T> Type<? extends T> makeExtendsWildcard(final Type<T> bound) { return new WildcardType<>( VerifyArgument.notNull(bound, "bound"), Bottom ); }
public static <T> Type<? extends T> makeExtendsWildcard(final Type<T> bound) { return new WildcardType<>( VerifyArgument.notNull(bound, "bound"), Bottom ); }
public static <T> Type<? extends T> makeExtendsWildcard(final Type<T> bound) { return new WildcardType<>( VerifyArgument.notNull(bound, "bound"), Bottom ); }
return new WildcardType(upperBound, lowerBound);
return new WildcardType(upperBound, lowerBound);
return new WildcardType(upperBound, lowerBound);
@Override public Type<?> visitWildcardType(final Type<?> type, final TypeBindings bindings) { final Type<?> oldLower = type.getSuperBound(); final Type<?> oldUpper = type.getExtendsBound(); final Type<?> newLower = visit(oldLower, bindings); final Type<?> newUpper = visit(oldUpper, bindings); if (newLower != oldLower || newUpper != oldUpper) { return new WildcardType<>(newUpper, newLower); } return type; }
@Override public Type<?> visitWildcardType(final Type<?> type, final TypeBindings bindings) { final Type<?> oldLower = type.getSuperBound(); final Type<?> oldUpper = type.getExtendsBound(); final Type<?> newLower = visit(oldLower, bindings); final Type<?> newUpper = visit(oldUpper, bindings); if (newLower != oldLower || newUpper != oldUpper) { return new WildcardType<>(newUpper, newLower); } return type; }
@Override public Type<?> visitWildcardType(final Type<?> type, final TypeBindings bindings) { final Type<?> oldLower = type.getSuperBound(); final Type<?> oldUpper = type.getExtendsBound(); final Type<?> newLower = visit(oldLower, bindings); final Type<?> newUpper = visit(oldUpper, bindings); if (newLower != oldLower || newUpper != oldUpper) { return new WildcardType<>(newUpper, newLower); } return type; }
return new WildcardType(upperBound, lowerBound);
return new WildcardType(upperBound, lowerBound);
return new WildcardType(upperBound, lowerBound);
Type<?> s = rewriteSupers(orig); if (s.hasSuperBound() && !s.hasExtendsBound()) { s = new WildcardType<>( Types.Object, Type.Bottom s = new WildcardType<>( upperBound(s), Type.Bottom
Type<?> s = rewriteSupers(orig); if (s.hasSuperBound() && !s.hasExtendsBound()) { s = new WildcardType<>( Types.Object, Type.Bottom s = new WildcardType<>( upperBound(s), Type.Bottom
Type<?> s = rewriteSupers(orig); if (s.hasSuperBound() && !s.hasExtendsBound()) { s = new WildcardType<>( Types.Object, Type.Bottom s = new WildcardType<>( upperBound(s), Type.Bottom