Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Lock "unreachable via this" tests to language version 3.1.
When these tests were written (https://dart-review.googlesource.com/c/sdk/+/178880), Dart did not support field promotion. I was getting ready to add "why not promoted" logic to flow analysis so that if a user tried and failed to promote a field, and received an assignability error as a result, they would receive a helpful error message explaining that field promotion was not supported. In order to generate this error message, flow analysis would have to start keeping track of some *counterfactual* promoted types, indicating what the type of certain expressions *would have been* if field promotion had been supported. It was important to make sure that these counterfactual promoted types were only used for error message generation, and didn't actually change Dart semantics. So I wrote these tests to help lock down the existing (non-promotion) behavior. When field promotion was actually implemented in Dart 3.2, these tests should have been given `@dart=3.1` annotations, since their purpose was to validate the correct behavior of the implementation in situations where field promotion *wasn't* enabled. I should have been prompted to do this by a test failure, because when I enabled field promotion by default in Dart 3.2, the behavior of the tests should have changed. However, because of dart-lang/language#4127, the behavior didn't change, so I didn't notice that these tests needed updating. Now, I'm getting ready to fix dart-lang/language#4127, so in order to prepare for that, I need to give these tests the proper `@dart=3.1` annotations. Bug: dart-lang/language#4127 Change-Id: I59ad1eef7b01ccedcc8fb99e070a05273ac365e6 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/389781 Reviewed-by: Kallen Tu <[email protected]> Commit-Queue: Paul Berry <[email protected]>
- Loading branch information