class I<T> {} | |
class J<T> extends I<T> {} | |
class A<T> extends J<T> {} | |
int counter = 0; | |
extension<T> on I<T> { | |
num get member {} | |
} | |
num method1(I<num> i) => switch (i) { | |
I<num>(:var member) when member < 0 => member, | |
I<int>(:var member) when member < 0 => member, | |
I<num>(:var member) => -member, | |
}; | |
num method2(A<num> i) => switch (i) { | |
I<num>(:int member) => member, | |
J<num>(:double member) => member, | |
}; | |
main() {} | |
expect(expected, actual) {} |