// Test case for Issue 877:
// https://github.com/typetools/checker-framework/issues/877
// @skip-test until the issue is fixed.

import java.util.HashMap;
import java.util.Map;
import org.checkerframework.checker.nullness.qual.*;

class KeyForStaticField {
    @SuppressWarnings("keyfor")
    public static final @KeyFor("this.map") String STATIC_KEY = "some text";

    private Map<String, Integer> map;

    public KeyForStaticField() {
        map = new HashMap<>();
        put(STATIC_KEY, 0);
    }

    /** Returns the value for the given key, which must be present in the map. */
    public Integer getValue(@KeyFor("this.map") String key) {
        assert map.containsKey(key) : "Map does not contain key " + key;
        return map.get(key);
    }

    public void m(KeyForStaticField other) {
        getValue(STATIC_KEY);
        this.getValue(STATIC_KEY);
        other.getValue(STATIC_KEY);
    }
}
