// Test case for Issue 337:
// https://github.com/typetools/checker-framework/issues/337
import javax.annotation.Nullable;
abstract class Issue337<R> {
abstract R getThing(String key);
@Nullable R m1(@Nullable String key) {
return (key == null) ? null : getThing(key);
}
@Nullable R m1b(@Nullable String key) {
return (key != null) ? getThing(key) : null;
}
@Nullable R m2(@Nullable String key) {
return (key == null)
?
//:: error: (argument.type.incompatible)
getThing(key)
: null;
}
@Nullable R m2b(@Nullable String key) {
return (key != null)
? null
:
//:: error: (argument.type.incompatible)
getThing(key);
}
}