blob: bd30c426cd80618963494ed5d6897efdeae80497 [file] [log] [blame]
// Based on a false positive encountered in Daikon related to common CFGs
// by the KeyFor checker.
import java.util.*;
import org.checkerframework.checker.nullness.qual.*;
class DaikonEnhancedFor {
@SuppressWarnings("nullness")
Map<Object, Set<@KeyFor("cmap") Object>> cmap = null;
@SuppressWarnings("nullness")
Object[] getObjects() {
return null;
}
void process(@KeyFor("this.cmap") Object super_c) {
@SuppressWarnings("keyfor") // the loop below makes all these keys to cmap
@KeyFor("this.cmap") Object[] clazzes = getObjects();
// go through all of the classes and intialize the map
for (Object cd : clazzes) {
cmap.put(cd, new TreeSet<@KeyFor("cmap") Object>());
}
// go through the list again and put in the derived class information
for (Object cd : clazzes) {
Set<@KeyFor("this.cmap") Object> derived = cmap.get(super_c);
derived.add(cd);
}
}
}