[flow analysis] Update the spec to match implementation of ==
.
#4284
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In fully sound null safety mode, flow analysis should know that a test like
expr == null
is guaranteed to evaluate tofalse
if the static type ofexpr
is non-nullable. But in unsound null safety mode, no such guarantee can be made.Since support for unsound null safety was only recently removed from the CFE (see
dart-lang/sdk@0060b0f), flow analysis still conservatively assumes that an expression with a non-nullable static type might, nonetheless, still be
null
.This change updates the spec to match the implementation in this regard, and adds a reference to
#3100, where we are discussing the possibility of changing the behavior.
Contribution guidelines:
dart format
.Note that many Dart repos have a weekly cadence for reviewing PRs - please allow for some latency before initial review feedback.