Consider the following program:
import 'dart:async';
class C<X> {}
typedef A<X extends FutureOr<C<X?>>> = C<X>;
void main() => A();
The front end (dart from 04e7766) accepts the above program with no errors. However, A is inferred as A<FutureOr<C<Object?>>> which is a super-bounded type, so A() should be flagged as an error.