// @dart = 2.9

class MapLike<K, V> {
  V get(Object key) => _map[key];
  V put(K key, V value) => _map[key] = value;
  final Map<K, V> _map = {};
}

expect(expected, actual) {}

explicitInferredTypeArguments() {}

explicitWithTypeArguments() {}

extension Extension<K, V> on MapLike<K, V> {
  V operator [](Object key) => get(key);
  void operator []=(K key, V value) => put(key, value);
}

implicit() {}

main() {}
