File: Issue1697.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-- 780 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 1697:
// https://github.com/typetools/checker-framework/issues/1697

class Issue1697 {

    interface G<A> {
        A h(byte[] l);
    }

    interface F {}

    interface E extends F {
        interface M extends F {}
    }

    abstract static class D<A extends D<A, B>, B extends D.M<A, B>> implements E {
        abstract static class M<A extends D<A, B>, B extends M<A, B>> implements E.M {}
    }

    abstract static class C<A extends C<A, B>, B extends C.M<A, B>> extends D<A, B> {
        abstract static class M<A extends C<A, B>, B extends M<A, B>> extends D.M<A, B> {}
    }

    static class W<T extends C<T, ?>> {
        private W(T proto) {}
    }

    <T extends C<T, ?>> W<T> i(G<T> j, byte[] k) {
        return new W<>(j.h(k));
    }
}