library test;

void expectTypeError(void callback()) {}

void expect(Object value, Object expected) {}

class B {
  int get x {}
  void set x(int value) {}
  int get y {}
  void set y(int value) {}
}

abstract class I<T> {
  T get x;
  void set x(T value);
  Object get y;
  void set y(covariant Object value);
}

mixin M {
  int x = 0;
  int y = 0;
}

class C = B with M implements I<int>;

void test(I<Object> i) {}

void main() {}
