| import java.util.Collection; |
| import org.checkerframework.checker.regex.qual.Regex; |
| |
| public class TypeParamSubtype { |
| // These are legal because null has type @Regex String |
| // <T extends @Regex String> void nullRegexSubtype(Collection<T> col) { |
| // // :: error: (argument) |
| // col.add(null); |
| // } |
| // |
| // <T extends String> void nullSimpleSubtype(Collection<T> col) { |
| // // :: error: (argument) |
| // 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); |
| } |
| } |