class GenericNull {
/**
* In most type systems, null's type will be bottom and therefore the generic return type T will
* be a supertype of null's type. However, in nullness and lock type systems, null's type is not
* bottom, so they exclude this test. For the Lock Checker, null's type is bottom for
* the @GuardedByUnknown hierarchy but not for the @LockPossiblyHeld hierarchy.
*/
@SuppressWarnings({"nullness", "lock"})
<T> T f() {
return null;
}
}