class Class1 {
  Class1 get nonNullable1 => property1;
  Class1 get property1 => new Class1();
  Class1 nonNullable1Method() => nonNullable1;
  Class1? get nullable1 => property1;
  Class1? get property => null;
  Class1? operator +(int value) => nullable1;
  Class1? operator -() => nullable1;
  Class1? operator [](Class1? key) => nullable1;
  Class2 get nonNullable2 => property2;
  Class2 get property2 => new Class2();
  void operator []=(Class1? key, Class1? value) {}
  void set nullable1(Class1? value) {}
  void set property(Class1? value) {}
}

class Class2 {
  Class2 get nonNullable2 => property;
  Class2 get property => this;
  Class2 nonNullable2Method() => nonNullable2;
  Class2 operator +(int value) => property;
  Class2 operator -() => property;
  Class2 operator [](Class2? key) => property;
  void operator []=(Class2? key, Class2? value) => property;
  void set nonNullable2(Class2 value) {}
  void set property(Class2 value) {}
}

class Class3 {
  Class2? get property => null;
  Class2? operator [](Class3? key) => property;
}

main() {}
void ifNull(Class1? n1) {}
void indexAccess(Class1? n1, Class2? n2, Class3? n3) {}
void operatorAccess(Class1? n1, Class2? n2) {}
void propertyAccess(Class1? n1) {}
void throws(void Function() f) {}
