class A<T> {
  const A(o);
}

class Class<T extends void Function<@A<void>() S>(S)> {}

main() {}
typedef F = void Function<@A<bool>() T>(T);
typedef void G<@A<dynamic>() T>(T t);
void Function<@A<int>() T>(T)? f;
void method1<@A<String>() T>(T t) {}
void method2(void Function<@A<num>() T>(T) f) {}
