333ba4d754
Rework the methods `checkIR`, `checkSchema`, and `checkType`, so that rather wrap the `CollectionElement`, `Expression`, or `Statement` node in a new node that performs the check, they return the existing node, and store the value to be checked in a private field. The checks are now performed as a side effect of `dispatchCollectionElement`, `dispatchExpression`, or `dispatchStatement`. The major advantage of this change is that previously, adding one of these checks to an expression in a "mini_ast" test caused an extra call to be made to `analyzeParenthesizedExpression`, so that flow analysis information would be propagated from the wrapped node to the node that performs the check. At the moment, extra calls to `analyzeParenthesizedExpression` don't have any effect other than forwarding flow analysis information, so this is benign. But in a follow-up CL, I plan to add null-shorting support to "mini_ast" tests, and this will mean that a side effect of `analyzeParentehsizedExpression` is to terminate null shorting. Re-working the checks now will ensure that when null-shorting support is added, the checks won't terminate null shorting as an accidental side-effect. Change-Id: I484f29b3ce63e15ab19100462d6a4b5c6b875d34 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/399025 Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>