| // @dart = 2.9 |
| class A<T> {} |
| |
| class B<T> extends A<Function(T)> {} |
| |
| class Bc<T> extends A<ContravariantUse<T>> {} |
| |
| class Bi<T> extends A<InvariantUse<T>> {} |
| |
| class C<T> implements A<Function(T)> {} |
| |
| class Cc<T> implements A<ContravariantUse<T>> {} |
| |
| class Ci<T> implements A<InvariantUse<T>> {} |
| |
| class D<T> = Object with A<Function(T)>; |
| class Dc<T> = Object with A<ContravariantUse<T>>; |
| class Di<T> = Object with A<InvariantUse<T>>; |
| class E<T> = A<Function(T)> with Empty; |
| class Ec<T> = A<ContravariantUse<T>> with Empty; |
| class Ei<T> = A<InvariantUse<T>> with Empty; |
| |
| class Empty {} |
| |
| class F<T> extends Object with A<Function(T)> {} |
| |
| class Fc<T> extends Object with A<ContravariantUse<T>> {} |
| |
| class Fi<T> extends Object with A<InvariantUse<T>> {} |
| |
| class G<T> extends A<Function(T)> with Empty {} |
| |
| class Gc<T> extends A<ContravariantUse<T>> with Empty {} |
| |
| class Gi<T> extends A<InvariantUse<T>> with Empty {} |
| |
| class Hcc<T> extends A<ContravariantUse<ContravariantUse<T>>> {} |
| |
| class Hcf<T> extends A<ContravariantUse<Function(T)>> {} |
| |
| class Hfc<T> extends A<Function(ContravariantUse<T>)> {} |
| |
| class Hff<T> extends A<Function(Function(T))> {} |
| |
| class Hii<T> extends A<InvariantUse<InvariantUse<T>>> {} |
| |
| class Iacf<T> extends A<A<ContravariantUse<Function(T)>>> {} |
| |
| class Iafc<T> extends A<A<Function(ContravariantUse<T>)>> {} |
| |
| class Icaf<T> extends A<ContravariantUse<A<Function(T)>>> {} |
| |
| class Icfa<T> extends A<ContravariantUse<Function(A<T>)>> {} |
| |
| class Ifac<T> extends A<Function(A<ContravariantUse<T>>)> {} |
| |
| class Ifca<T> extends A<Function(ContravariantUse<A<T>>)> {} |
| |
| class Jccc<T> |
| extends A<ContravariantUse<ContravariantUse<ContravariantUse<T>>>> {} |
| |
| class Jccf<T> extends A<ContravariantUse<ContravariantUse<Function(T)>>> {} |
| |
| class Jcfc<T> extends A<ContravariantUse<Function(ContravariantUse<T>)>> {} |
| |
| class Jcff<T> extends A<ContravariantUse<Function(Function(T))>> {} |
| |
| class Jfcc<T> extends A<Function(ContravariantUse<ContravariantUse<T>>)> {} |
| |
| class Jfcf<T> extends A<Function(ContravariantUse<Function(T)>)> {} |
| |
| class Jffc<T> extends A<Function(Function(ContravariantUse<T>))> {} |
| |
| class Jfff<T> extends A<Function(Function(Function(T)))> {} |
| |
| main() {} |
| typedef ContravariantUse<T> = Function(T); |
| typedef InvariantUse<T> = T Function(T); |