library test;

abstract class Test1a {
  int operator [](String s);
  void operator []=(String s, int v);
  void test() {}
}

abstract class Test1b {
  int? operator [](String s);
  void operator []=(String s, int? v);
  void test() {}
}

abstract class Test2a {
  int operator [](String s);
  void operator []=(String s, num v);
  void test() {}
}

abstract class Test2b {
  int? operator [](String s);
  void operator []=(String s, num? v);
  void test() {}
}

abstract class Test3a {
  int operator [](String s);
  void operator []=(String s, double v);
  void test() {}
}

abstract class Test3b {
  int? operator [](String s);
  void operator []=(String s, double? v);
  void test() {}
}

abstract class Test4a {
  num operator [](String s);
  void operator []=(String s, int v);
  void test() {}
}

abstract class Test4b {
  num? operator [](String s);
  void operator []=(String s, int? v);
  void test() {}
}

abstract class Test5a {
  num operator [](String s);
  void operator []=(String s, num v);
  void test() {}
}

abstract class Test5b {
  num? operator [](String s);
  void operator []=(String s, num? v);
  void test() {}
}

abstract class Test6a {
  num operator [](String s);
  void operator []=(String s, double v);
  void test() {}
}

abstract class Test6b {
  num? operator [](String s);
  void operator []=(String s, double? v);
  void test() {}
}

abstract class Test7a {
  double operator [](String s);
  void operator []=(String s, int v);
  void test() {}
}

abstract class Test7b {
  double? operator [](String s);
  void operator []=(String s, int? v);
  void test() {}
}

abstract class Test8a {
  double operator [](String s);
  void operator []=(String s, num v);
  void test() {}
}

abstract class Test8b {
  double? operator [](String s);
  void operator []=(String s, num? v);
  void test() {}
}

abstract class Test9a {
  double operator [](String s);
  void operator []=(String s, double v);
  void test() {}
}

abstract class Test9b {
  double? operator [](String s);
  void operator []=(String s, double? v);
  void test() {}
}

double getDouble() => 0.0;
int getInt() => 0;
main() {}
num getNum() => 0;
