import "dart:collection";

bool get hasUnsoundNullSafety => const <Null>[] is List<Object>;

String unsoundResult =
    "containsKey(key1);" "[key1];" "containsKey(key2);" "[key2];";

String soundResult = "[key1];" "[key2];";

class MyMap<K, V> extends MapBase<K, V> {
  Map<K, V> _inner;
  String log = "";
  MyMap(this._inner);
  @override
  operator [](Object? key) {}
  @override
  void operator []=(key, value) {}
  @override
  void clear() {}
  @override
  Iterable<K> get keys {}
  @override
  remove(Object? key) {}
  @override
  int get length {}
  @override
  bool containsKey(Object? key) {}
  void clearLog() {}
}

String test1(Object o) {}

String test2(Object o) => switch (o) {
      <String, int>{"key1": 1, "key2": 3} => "match-2",
      <String, int>{"key1": 1, "key2": 2} => "match-3",
      _ => "no match"
    };

main() {}

expect(expected, actual) {}
