| import org.checkerframework.checker.fenum.qual.Fenum; |
| import org.checkerframework.framework.testchecker.lib.UncheckedByteCode; |
| |
| public class UpperBoundsInByteCode { |
| UncheckedByteCode<@Fenum("Foo") String> foo; |
| UncheckedByteCode<@Fenum("Bar") Object> bar; |
| |
| void typeVarWithNonObjectUpperBound(@Fenum("A") int a) { |
| // :: error: (type.argument) |
| UncheckedByteCode.methodWithTypeVarBoundedByNumber(a); |
| UncheckedByteCode.methodWithTypeVarBoundedByNumber(1); |
| } |
| |
| void wildcardsInByteCode() { |
| UncheckedByteCode.unboundedWildcardParam(foo); |
| UncheckedByteCode.lowerboundedWildcardParam(bar); |
| // :: error: (argument) |
| UncheckedByteCode.upperboundedWildcardParam(foo); |
| } |
| |
| // :: error: (type.argument) |
| SourceCode<@Fenum("Foo") String> foo2; |
| |
| class SourceCode<T extends Object> {} |
| } |