class Class<T> {}

class Class1<T1, T2, T3, T4, T5, T6, T7, T8, S1, S2, S3, S4, S5, S6, S7, S8> {
  Class1();
  factory Class1.fact() => new Class1();
  factory Class1.redirect() = Class1;
}

class Class2 {
  void instanceMethod<T1, T2, T3, T4, T5, T6, T7, T8, S1, S2, S3, S4, S5, S6,
      S7, S8>() {}
}

class ConcreteClass implements Class<ConcreteClass> {}

class G<X extends Class<X>> {}

main() {}
test() {}
typedef F<X extends Class<X>> = X;
typedef H<X> = Class2;
void staticMethod<T1, T2, T3, T4, T5, T6, T7, T8, S1, S2, S3, S4, S5, S6, S7,
    S8>() {}
