// Test case for Issue 269
// https://github.com/typetools/checker-framework/issues/269
class Repro {
// Implicitly G has bound @Nullable Object
interface Callback<G> {
public boolean handler(G arg);
}
void method1(Callback callback) {
// Allow this call.
//:: warning: [unchecked] unchecked call to handler(G) as a member of the raw type Repro.Callback
callback.handler(this);
}
// Implicitly H has bound @NonNull Object
interface CallbackNN<H extends Object> {
public boolean handler(H arg);
}
void method2(CallbackNN callback) {
// Forbid this call, because the bound is not respected.
//:: error: (argument.type.incompatible) :: warning: [unchecked] unchecked call to handler(H) as a member of the raw type Repro.CallbackNN
callback.handler(null);
}
}