File: TypeParamSubtype.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 (23 lines) | stat: -rw-r--r-- 729 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
import java.util.Collection;
import org.checkerframework.checker.regex.qual.Regex;

class TypeParamSubtype {
    // These are legal because null has type @Regex String
    // <T extends @Regex String> void nullRegexSubtype(Collection<T> col) {
    //     // :: error: (argument.type.incompatible)
    //     col.add(null);
    // }
    //
    // <T extends String> void nullSimpleSubtype(Collection<T> col) {
    //     // :: error: (argument.type.incompatible)
    //     col.add(null);
    // }

    <T extends @Regex String, U extends T> void nullRegexSubtype(Collection<T> col, U u) {
        col.add(u);
    }

    <T extends String, U extends T> void nullSimpleSubtype(Collection<T> col, U u) {
        col.add(u);
    }
}