class EmptyClass {}

var emptyClass = new EmptyClass();

class ClassWithProperty {
  EmptyClass property = new EmptyClass();
}

var classWithProperty = new ClassWithProperty();

class ClassWithIndexSet {
  operator []=(int index, int value) {}
}

var classWithIndexSet = new ClassWithIndexSet();

class ClassWithIndexGet {
  int? operator [](int index) => 42;
}

var classWithIndexGet = new ClassWithIndexGet();
var missingBinary = classWithProperty.property += 2;
var missingIndexGet = classWithIndexSet[0] ??= 2;
var missingIndexSet = classWithIndexGet[0] ??= 2;
var missingPropertyGet = emptyClass.property;
var missingPropertySet = emptyClass.property = 42;
main() {}
