The following code passes using NullAway 0.13.1 in JSpecify mode.
@NullMarked
interface Foo {
<T extends @Nullable Object> void bar( T arg );
}
@NullMarked
class Baz implements Foo {
@Override
public <T> void bar( T arg ) {}
}
This looks like a false negative: the override narrows the method type variable bound from <T extends @Nullable Object> to <T>, even though T is used in parameter position. No diagnostic is reported.
The following code passes using NullAway 0.13.1 in JSpecify mode.
This looks like a false negative: the override narrows the method type variable bound from
<T extends @Nullable Object>to<T>, even thoughTis used in parameter position. No diagnostic is reported.