These test cases cover the following scenarios:
- `is` and `is!` tests that do not appear inside an "if" statement.
- `== null` and `!= null` tests that do not appear inside an "if"
statement.
- `??=` assignment where the "write" type is nullable but the "read"
type is non-nullable (to make sure the implementation is using the
read type to decide whether to insert the null check).
- `??=` assignment where the LHS is a super call to the index operator.
- `??=` assignment where the LHS is accessed through an extension
(either explicitly or implicitly).
- `??=` assignment where the LHS is a null-aware indexed operator.
- Null-aware access to a getter.
- Null-aware access via a cascade.
- Null-aware access to a method/getter on Object (e.g. `toString()`).
- Null-aware access to a method/getter supplied by an extension that
extends a nullable type (either explicitly or implicitly).
Change-Id: I46aeb6ffc35fc776f48bcd838ff8e4acf7b39f05
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/162629
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>