File: Issue269.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 (29 lines) | stat: -rw-r--r-- 943 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
// Test case for Issue 269
// https://github.com/typetools/checker-framework/issues/269
class Repro {
    // Implicitly G has bound @Nullable Object
    interface Callback<G> {
        public boolean handler(G arg);
    }

    void method1(Callback callback) {
        // Allow this call.
        // :: warning: [unchecked] unchecked call to handler(G) as a member of the raw type
        // Repro.Callback
        callback.handler(this);
    }

    // Implicitly H has bound @NonNull Object
    interface CallbackNN<H extends Object> {
        public boolean handler(H arg);
    }

    void method2(CallbackNN callback) {
        // Forbid this call, because the bound is not respected.
        // TODO: false negative. See #635.
        //// :: error: (argument.type.incompatible)
        // :: warning: [unchecked] unchecked call to handler(H) as a member of the raw type
        // Repro.CallbackNN
        callback.handler(null);
    }
}