Closed
Description
It is a static error to use a generic function as a type argument, or as a bound to a generic.
- Issue for specification
- Issue for analyzer implementation
Example:
typedef F = T Function<T>(T x);
typedef G<T> = T Function(T x);
class A<T extends F> {} // error
class B<T extends G<int>> {} // ok
void f<T extends F>() {} // errror
void g<T extends G<int>> {} // ok
void main() {
var a1 = <F>[]; // error
var a2 = <G>[]; // ok, G<dynamic>
var a3 = <G<int>>[]; // ok
var a4 = g<F>(); // error
var a5 = g<G>(); // ok G<dynamic>
}