File: InferNullType.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 (36 lines) | stat: -rw-r--r-- 982 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
// Version of framework/tests/all-systems/InferNullType.java with expected Nullness Checker warnings
class InferNullType {

    <T extends Object> T toInfer(T input) {
        return input;
    }

    <T> T toInfer2(T input) {
        return input;
    }

    <T, S extends T> T toInfer3(T input, S p2) {
        return input;
    }

    <T extends Number, S extends T> T toInfer4(T input, S p2) {
        return input;
    }

    void x() {
        // :: error: (type.argument.type.incompatible)
        Object m = toInfer(null);
        Object m2 = toInfer2(null);

        Object m3 = toInfer3(null, null);
        Object m4 = toInfer3(1, null);
        Object m5 = toInfer3(null, 1);

        // :: error: (type.argument.type.incompatible)
        Object m6 = toInfer4(null, null);
        // :: error: (type.argument.type.incompatible)
        Object m7 = toInfer4(1, null);
        // :: error: (type.argument.type.incompatible)
        Object m8 = toInfer4(null, 1);
    }
}