File: Enums.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 (48 lines) | stat: -rw-r--r-- 1,122 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.lang.annotation.ElementType;

class MyEnumSet<E extends Enum<E>> {}

class Enumeration {
    public enum VarFlags {
        IS_PARAM,
        NO_DUPS
    };

    public MyEnumSet<VarFlags> var_flags = new MyEnumSet<>();

    VarFlags f1 = VarFlags.IS_PARAM;

    void foo1(MyEnumSet<VarFlags> p) {}

    void foo2(MyEnumSet<ElementType> p) {}

    <E extends Enum<E>> void mtv(Class<E> p) {}

    <T extends Object> T checkNotNull(T ref) {
        return ref;
    }

    <T extends Object, S extends Object> T checkNotNull2(T ref, S ref2) {
        return ref;
    }

    class Test<T extends Enum<T>> {
        void m(Class<T> p) {
            checkNotNull(p);
        }

        public <SSS extends Object> SSS firstNonNull(SSS first, SSS second) {
            @SuppressWarnings("nullness:known.nonnull")
            SSS res = first != null ? first : checkNotNull(second);
            return res;
        }
    }

    class Unbound<X extends Object> {}

    class Test2<T extends Unbound<S>, S extends Unbound<T>> {
        void m(Class<T> p, Class<S> q) {
            checkNotNull2(p, q);
        }
    }
}