class Class {
  int nonNullableField = 0;
  int? nullableField;
  int operator [](int key) => key;
  void operator []=(int key, int value) {}
  Class get nonNullableClass => this;
  Class call() => this;
  NullableIndexClass get nonNullableNullableIndexClass => NullableIndexClass();
}

class NullableIndexClass {
  int? operator [](int key) => key;
  void operator []=(int key, int value) {}
}

main() {}

errors(Class? nullableClass, Class nonNullableClass, int? nullableInt,
    int nonNullableInt, NullableIndexClass? nullableNullableIndexClass) {}
