class A {
  A(this.bar);
  A bar;
  int? foo;
}

class B {}

extension Extension on B {
  B get barExtension => new B();
  int? get fooExtension => null;
  void set fooExtension(int? value) {}
}

main() {}
test<T extends A?>(A? a, T t, dynamic d, int x) {}
testExtension<T extends B?>(B? b, T t, int x) {}
