Type? _capturedTypeArgument;
X captureTypeArgument<X>() {}

class A<X extends A<X>> {}

typedef C<X extends A<X>> = A<X>;
void topLevel1<X extends A<X>>(A<X> Function() g) => g();
void topLevel2<X extends C<X>>(C<X> Function() g) => g();

class Class {
  void instance1<X extends A<X>>(A<X> Function() g) => g();
  void instance2<X extends C<X>>(C<X> Function() g) => g();
  void test() {}
}

class Subclass extends Class {
  void test() {}
}

main() {}
