5a65ed7243
Update the documentation for TypeAnalyzer and related classes so that they explain the behavior of each method in terms of its effect on a stack. (The test logic already contained an implementation of such a stack; production clients may or may not need to keep a stack depending on their requirements). This should make it more straightforward to write clients of TypeAnalyzer. Also, beef up the test logic in flow_analysis_mini_ast.dart and so that: - In the event of a test error, a source location is shown, so that it's easy to debug and/or update the test. This source location is obtained by parsing `StackTrace.current`, an approach which I wouldn't recommend for production code, but which is servicable for these low-level tests. - Items that are popped off the stack are checked to make sure they have the expected kind. The kind-checking caught a minor flaw in the previous test logic: it was failing to distinguish expressions from expression statements. This as been corrected, and as a result, a few test expectations in type_inference_test.dart needed to be updated. Change-Id: I0a2b257f6e970478c0c8e1b663dd5a367e7f24ec Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257486 Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>