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() {}
