class C<T> extends S<T> {
  C.constr1(super.n, String s, super.t);
  C.constr2(int i, super.n, String s, super.t) : super();
  C.constr3(int i, super.t, String s, super.n) : super.named();
}

class S<T> {
  S(this.n, this.t);
  S.named(this.t, this.n);
  T t;
  num n;
}

main() {}
