// This stub file is used by the Nullness Checker when
// the user supplies the `-AassumeKeyFor` command-line option.

package java.util;

public interface Map<K, V> {
    // No `@Nullable` on the return type.
    V get(Map<K, V> this, Object key);
}
