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

class B<S, T> {
  const B();
}

class C<T extends num> {
  const C();
}

class D<S extends num, T extends S> {
  const D();
}

@A<int, num>()
@B<int>()
@C<String>()
@D<int, num>()
test() {}
@A()
@A<int>()
@B()
@B<int, String>()
@C()
@C<num>()
@C<int>()
@D()
@D<num, num>()
@D<num, int>()
main() {}
