// @dart = 2.6
import 'nsm_from_opt_in_lib.dart';

abstract class A2 implements A {
  @override
  noSuchMethod(Invocation invocation) {}
}

abstract class B2 extends A implements C2 {
  @override
  noSuchMethod(Invocation invocation) {}
}

abstract class C2 {
  T genericMethod1<T>(T t);
  T genericMethod2<T extends Object>(T t);
  T genericMethod3<T extends Object>(T t);
  int method(int i, {optional});
}

main() {}
