| package flowexpression; |
| |
| import java.util.Collection; |
| import java.util.HashMap; |
| import java.util.List; |
| import java.util.Map; |
| import org.checkerframework.framework.testchecker.flowexpression.qual.FlowExp; |
| |
| public class Complex { |
| class DocCategory { |
| public Map<String, String> fields = new HashMap<>(); |
| } |
| |
| protected DocCategory[] categories = new DocCategory[2]; |
| |
| void test() { |
| for (int c = 0; c < categories.length; c++) { |
| |
| for (@FlowExp("categories[c].fields") String field : sortedKeySet(categories[c].fields)) { |
| @FlowExp("categories[c].fields") String f = field; |
| } |
| } |
| } |
| |
| public static <K extends Comparable<? super K>, V> Collection<@FlowExp("#1") K> sortedKeySet( |
| Map<K, V> m) { |
| throw new RuntimeException(); |
| } |
| |
| private static Map<Integer, List<@FlowExp("succs1") Integer>> succs1 = new HashMap<>(); |
| |
| void method() { |
| Map<Integer, List<Integer>> dom1post = dominators(succs1); |
| } |
| |
| public static <T> Map<T, List<T>> dominators(Map<T, List<@FlowExp("#1") T>> predecessors) { |
| throw new RuntimeException(); |
| } |
| } |