blob: a554aa50a39ccf86c9e91d11cfb4f0fc70876271 [file] [log] [blame]
package nullness.generics;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import org.checkerframework.checker.nullness.qual.*;
// test related to issue 429: https://github.com/typetools/checker-framework/issues/429
public class KeyForPolyKeyFor {
// TODO: Figure out why diamond operator does not work:
// Map<@KeyFor("dict") String, String> dict = new HashMap<>();
Map<@KeyFor("dict") String, String> dict = new HashMap<@KeyFor("dict") String, String>();
void m() {
Set<@KeyFor("dict") String> s = nounSubset(dict.keySet());
for (@KeyFor("dict") String noun : nounSubset(dict.keySet())) {}
}
// This method's declaration uses no @KeyFor annotations because in addition to being used by the
// dictionary feature, it is also used by a spell checker that only stores sets of words and does
// not use the notions of dictionaries, maps or keys.
Set<@PolyKeyFor String> nounSubset(Set<@PolyKeyFor String> words) {
return words;
}
}