90ec6f2531
The creation of the shorting stop expression was done lazily in NullAwareExpressionInferenceResult.expression. Since the shorting calls flow analysis to stop null promotion doing this out of order let to inconsistent flow analysis state. This CL introduces an `inferNullAwareExpression` the allows to caller to continue the shorting (if in an opt-in library). The inferExpression method, used everywhere else, stops any shorting currently in progress. Closes #43275 Change-Id: I448163e29bdb0de8e493e5c62aa0474d0c9a593f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173729 Reviewed-by: Dmitry Stefantsov <dmitryas@google.com> Commit-Queue: Johnni Winther <johnniwinther@google.com>
FE/analyzer shared code
This package contains logic that is shared between the front_end and analyzer packages. It is intended solely to facilitate development of the Dart SDK, and is not intended for use by end users. In particular, this package has no public API, so no guarantee is made of compatibility between one version of the package and the next.
End users should consider using the analyzer package to analyze Dart source code.