Two changes: - Rather than remember to call `FlowAnalysis.finish` at the end of each test, we now have a `_Harness.run` method that calls it automatically. - Variables are created using `_Harness.addVar` and their declarations are reported to flow analysis using `_Harness.declare`. This allows us to more easily test scenarios where a variable might be referenced before its declaration site is encountered (which might occur due to analyzer error recovery). Change-Id: I0eff619840aeb057dcce8d64b6c6d23a265f81bd Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/115421 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Paul Berry <paulberry@google.com>
Front end for Dart
This package provides a low-level API for use by compiler back ends that wish to implement the Dart language. It is intended for eventual use by dev_compiler, dart2js, and the Dart VM. In addition, it will share implementation details with the analyzer package--this will be accomplished by having the analyzer package import (and re-export) parts of this package's private implementation.
End-users should use the [dartanalyzer][analyzercli] command-line tool to analyze their Dart code.
Integrators that want to write tools that analyze Dart code should use the [analyzer] package.
Note: The APIs in this package are in an early state; developers should be careful about depending on this package. In particular, there is no semver contract for release versions of this package. Please depend directly on individual versions.