// @dart = 2.9
library test;

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

abstract class Base<T, U> {
  T operator [](String s) => getValue(s);
  void operator []=(String s, U v) => setValue(s, v);
  T getValue(String s);
  void setValue(String s, U v);
}

abstract class Test1 extends Base<int, int> {
  void test() {}
}

abstract class Test2 extends Base<int, num> {
  void test() {}
}

abstract class Test3 extends Base<int, double> {
  void test() {}
}

abstract class Test4 extends Base<num, int> {
  void test() {}
}

abstract class Test5 extends Base<num, num> {
  void test() {}
}

abstract class Test6 extends Base<num, double> {
  void test() {}
}

abstract class Test7 extends Base<double, int> {
  void test() {}
}

abstract class Test8 extends Base<double, num> {
  void test() {}
}

abstract class Test9 extends Base<double, double> {
  void test() {}
}

main() {}
