File: NullableGeneric.java

package info (click to toggle)
checker-framework-java 3.2.0%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 23,104 kB
  • sloc: java: 145,916; xml: 839; sh: 518; makefile: 404; perl: 26
file content (37 lines) | stat: -rw-r--r-- 1,083 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
import org.checkerframework.checker.nullness.qual.*;

public class NullableGeneric<T> {

    public static class NullablePair<T1 extends @Nullable Object, T2 extends @Nullable Object> {
        public @Nullable T1 a;
        public @Nullable T2 b;
        public @NonNull T1 nna;
        public @NonNull T2 nnb;

        public NullablePair(T1 a, T2 b) {
            this.a = a;
            this.b = b;
            // :: error: (assignment.type.incompatible)
            this.nna = a;
            // :: error: (assignment.type.incompatible)
            this.nnb = b;
        }
    }

    @Nullable T next1 = null, next2 = null;

    private NullablePair<@Nullable T, @Nullable T> return1() {
        NullablePair<@Nullable T, @Nullable T> result =
                new NullablePair<@Nullable T, @Nullable T>(next1, null);
        // setnext1();
        return result;
    }

    public static <T3> @NonNull T3 checkNotNull(@Nullable T3 object) {
        if (object == null) {
            throw new NullPointerException();
        } else {
            return object;
        }
    }
}