File: CallOverrides.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 (33 lines) | stat: -rw-r--r-- 566 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
import org.checkerframework.common.util.report.qual.*;

class CallOverrides {
    class A {
        void m() {}
    }

    class B extends A {
        @ReportCall
        void m() {}
    }

    class C extends B {}

    void test() {
        C c = new C();

        // :: error: (methodcall)
        c.m();

        B b = c;

        // :: error: (methodcall)
        b.m();

        A a = c;

        // This call is not reported, because we statically
        // don't know that one of the subtypes has the ReportCall
        // annotation.
        a.m();
    }
}