File: Class2.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 (27 lines) | stat: -rw-r--r-- 1,187 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
/*
 * @test
 * @summary Test case for Issue 824 https://github.com/typetools/checker-framework/issues/824
 * The defaults for type variable upper bounds with type Object changed since
 * the issue was filed.  So, this test case has been changed so that
 * annotations on type variable bounds in stub files is still tested.
 * @compile -XDrawDiagnostics -Xlint:unchecked ../issue824lib/Class1.java
 * @compile/fail/ref=Class2.out -XDrawDiagnostics -Xlint:unchecked -processor org.checkerframework.checker.nullness.NullnessChecker -Anomsgtext Class2.java -Astubs=Class1.astub -AstubWarnIfNotFound
 * @compile -XDrawDiagnostics -Xlint:unchecked -processor org.checkerframework.checker.nullness.NullnessChecker -Anomsgtext Class2.java
 */

import org.checkerframework.checker.nullness.qual.Nullable;

public class Class2<X> extends Class1<X> {
    void call(Class1<@Nullable X> class1, Gen<@Nullable X> gen) {
        class1.methodTypeParam(null); // False negative #979
        class1.classTypeParam(null);

        class1.wildcardExtends(gen);
        class1.wildcardSuper(gen);
    }

    @Override
    public <T> T methodTypeParam(T t) {
        return super.methodTypeParam(t);
    }
}