File: Issue2088.java

package info (click to toggle)
checker-framework-java 3.2.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 22,840 kB
  • sloc: java: 145,910; xml: 839; sh: 518; makefile: 401; perl: 26
file content (31 lines) | stat: -rw-r--r-- 779 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 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", ""}) // 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));
    }
}