class Class<T extends num> {
  Class(this.field1, this.field2);
  T field1;
  T field2;
}

expect(expected, actual) {}

extension Extension1<T extends num> on Class<T> {
  T genericMethod<S extends num>(S t) {}
  T get field {}
  T method() {}
  static String latestType;
  void set field(T value) {}
}

extension Extension2<T extends num> on Class<T> {
  T genericMethod<S extends num>(S t) => field2 + t;
  T get field => field2;
  T method() => field2;
  void set field(T value) {}
}

main() {}
