class A {
  int zero;
  int? zeroOrNull;
  A(this.zero, [this.zeroOrNull]);
}

int? test1(A? a) => a?.zero!;
int? test2(A? a) => a?.zeroOrNull!;
bool? test3(A? a) => a?.zero!.isEven;
bool? test4(A? a) => a?.zeroOrNull!.isEven;

class Foo {
  Bar? bar;
  Foo(this.bar);
  Bar? operator [](int? index) => index != null ? new Bar(index) : null;
}

class Bar {
  int baz;
  Bar(this.baz);
  int operator [](int index) => index;
  bool operator ==(Object other) => other is Bar && baz == other.baz;
}

Bar? test5(Foo? foo) => foo?.bar!;
int? test6(Foo? foo) => foo?.bar!.baz;
int? test7(Foo? foo, int baz) => foo?.bar![baz];
Bar? test8(Foo? foo, int? bar) => foo?[bar]!;
int? test9(Foo? foo, int? bar) => foo?[bar]!.baz;
test10(Foo? foo, int? bar, int baz) => foo?[bar]![baz];
main() {}
expect(expected, actual) {}
throws(void Function() f) {}
