| // Test case for Issue 1406 |
| // https://github.com/typetools/checker-framework/issues/1406 |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| import org.checkerframework.checker.nullness.qual.EnsuresNonNull; |
| import org.checkerframework.dataflow.qual.Pure; |
| |
| @SuppressWarnings({"purity", "contracts.postcondition"}) // Only test parsing |
| public class Issue1406 { |
| |
| public static void main(String[] args) {} |
| |
| @Pure |
| @EnsuresNonNull("myMethod(#1).get(0)") |
| List<String> myMethod(int arg) { |
| List<String> result = new ArrayList<>(); |
| result.add("non-null value"); |
| return result; |
| } |
| |
| String client(int arg) { |
| return myMethod(arg).get(0); |
| } |
| |
| @Pure |
| @EnsuresNonNull("myMethod2().get(0)") |
| List<String> myMethod2() { |
| List<String> result = new ArrayList<>(); |
| result.add("non-null value"); |
| return result; |
| } |
| |
| String client2() { |
| return myMethod2().get(0); |
| } |
| } |