e655e9fd6c
Add `ClassBody.members` and `EnumBody.constants`/`members` so callers can access class and enum contents through the common body interfaces instead of pattern matching on `BlockClassBody` and `BlockEnumBody`. Implement empty node lists for empty class and enum bodies, update the public API, and migrate analyzer, analysis_server, analyzer_plugin, and linter code to use the new accessors directly. This removes the ad hoc `members2` helper extensions and a large amount of repeated `tryCast` and `switch` logic, making body traversal more uniform. Change-Id: I51d75f2253c7e6f75efecae84bf0443ff5eb6788 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/488263 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Paul Berry <paulberry@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
analysis_server
A long-running process that provides analysis results to other tools.
The analysis server is designed to provide on-going analysis of one or more code bases as those code bases are changing.
Using the server
The analysis server is not intended to be used stand-alone, and therefore does not have a human-friendly user interface.
Clients (typically tools, such as an editor) are expected to run the analysis
server in a separate process and communicate with it using a JSON protocol. The
original protocol is specified in the file analysis_server/doc/api.html
and Language Server Protocol support is documented in
tool/lsp_spec/README.md.
Features and bugs
Please file feature requests and bugs at the issue tracker.