// @dart = 2.9
class EmptyClass {}

var emptyClass = new EmptyClass();

class ClassWithProperty {
  EmptyClass property;
}

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() {}
