| // 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) |
| getThing(key) |
| : null; |
| } |
| |
| @Nullable R m2b(@Nullable String key) { |
| return (key != null) |
| ? null |
| : |
| // :: error: (argument) |
| getThing(key); |
| } |
| } |