blob: 1a1859f07972be3feedd998415f6a872c989c07e [file] [log] [blame]
// Test case for Issue #2088:
// https://github.com/typetools/checker-framework/issues/2088
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
@SuppressWarnings({"unchecked", "all"}) // Check for crashes only
abstract class Issue2088 {
interface A<K extends Comparable<K>> {}
interface B extends A<Long> {}
interface C<P extends B, E extends B> {
interface F<T extends C<?, ?>> {}
}
interface D {}
static class Key<T> {
static Key<?> get(Type type) {
return null;
}
}
abstract ParameterizedType n(Type o, Class<?> r, Type... a);
<X extends B, Y extends C<?, X>, Z extends Y> void f(Class<Y> c) {
Key<C.F<Z>> f = (Key<C.F<Z>>) Key.get(n(C.class, C.F.class, c));
}
}