package flowexpression; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import testlib.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(); } }