import 'field_promotion_and_no_such_method_lib.dart' as otherLib;

abstract class C {
  C(int? i)
      : _f1 = i,
        _f2 = i;
  final int? _f1;
  final int? _f2;
}

abstract class D {
  D(int? i) : _f1 = i;
  final int? _f1;
}

class E implements D {
  @override
  dynamic noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
}

class F implements otherLib.C {
  @override
  dynamic noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
}

void acceptsInt(int x) {}

void testConflictsWithNoSuchMethodForwarder(C c) {}

void testNoConflictWithNoSuchMethodForwarderForDifferentLib(C c) {}
