blob: a310fca88143703a05a420db23d40f02519fcab5 [file] [log] [blame]
library test;
abstract class Base<T, U> {
T getValue(String s);
T operator [](String s) => getValue(s);
void operator []=(String s, U v) => setValue(s, v);
void setValue(String s, U v);
}
abstract class Base2<T, U> {
T? getValue(String s);
T? operator [](String s) => getValue(s);
void operator []=(String s, U? v) => setValue(s, v);
void setValue(String s, U? v);
}
abstract class Test1a extends Base<int, int> {
void test() {}
}
abstract class Test1b extends Base2<int, int> {
void test() {}
}
abstract class Test2a extends Base<int, num> {
void test() {}
}
abstract class Test2b extends Base2<int, num> {
void test() {}
}
abstract class Test3a extends Base<int, double> {
void test() {}
}
abstract class Test3b extends Base2<int, double> {
void test() {}
}
abstract class Test4a extends Base<num, int> {
void test() {}
}
abstract class Test4b extends Base2<num, int> {
void test() {}
}
abstract class Test5a extends Base<num, num> {
void test() {}
}
abstract class Test5b extends Base2<num, num> {
void test() {}
}
abstract class Test6a extends Base<num, double> {
void test() {}
}
abstract class Test6b extends Base2<num, double> {
void test() {}
}
abstract class Test7a extends Base<double, int> {
void test() {}
}
abstract class Test7b extends Base2<double, int> {
void test() {}
}
abstract class Test8a extends Base<double, num> {
void test() {}
}
abstract class Test8b extends Base2<double, num> {
void test() {}
}
abstract class Test9a extends Base<double, double> {
void test() {}
}
abstract class Test9b extends Base2<double, double> {
void test() {}
}
double getDouble() => 0.0;
int getInt() => 0;
main() {}
num getNum() => 0;