import java.util.AbstractMap;
import java.util.HashMap;
import java.util.Map;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.checkerframework.dataflow.qual.Pure;

public abstract class WeakHasherMapNullable<K, V> extends AbstractMap<K, V> implements Map<K, V> {
  private Map<Object, V> hash = new HashMap<>();

  @Pure
  public boolean containsKey(@Nullable Object key) {
    // :: warning: [unchecked] unchecked cast
    K kkey = (K) key;
    // :: error: (argument)
    hash.containsKey(null);
    // :: error: (contracts.conditional.postcondition)
    return true;
  }
}
