dart-sdk/pkg/analyzer_cli
Jonas Finnemann Jensen 43c8d637bd Refactor PubspecValidator
Unclear, if this was intentionally written as classes.
It just seemed confusing to me. Since the classes were essentially
functions that had some of their arguments passed in the constructor
and some of their arguments passed in a method call.

It also seemed impossible to reuse the actual objects.

Change-Id: I56b341ee4851d24b9d176857a53b96f7eb941335
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/317883
Commit-Queue: Jonas Jensen <jonasfj@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2023-08-16 12:31:30 +00:00
..
bin
lib Refactor PubspecValidator 2023-08-16 12:31:30 +00:00
test Update old linter site links to dart.dev 2023-08-04 19:45:23 +00:00
tool
.gitignore
analysis_options.yaml Enable new linter rules in analyzer packages 2022-11-21 23:02:38 +00:00
LICENSE
OWNERS
pubspec.yaml Enable language 3.0 for analyzer_cli/. 2023-04-06 19:04:38 +00:00
README.md Tweak dartanalyzer readme now that the package is only intended for internal use 2022-07-20 16:03:48 +00:00

SDK development code analysis

dartanalyzer used to be the tool for statically analyzing dart code at the command line. However, this tool has been replaced with dart analyze for this purpose in current SDKs and will no longer be published on pub.

Do not depend on the command line interface or other semantics in this directory as it is now an internal tool for SDK development, used as the dart2analyzer "compiler" for tools/test.py in the SDK. It is configured as part of the test runner, here.

SDK development usage

For SDK development, run analysis from the test tool to validate analysis conclusions on language samples in the testing directory. From the root of the SDK:

tools/test.py --build --use-sdk -c dart2analyzer co19_2 language_2

This will build the Dart VM and compile dartanalyzer into a snapshot, then use that snapshot while analyzing those directories under testing/. Without --use-sdk, test.py will use the source code version of the analyzer instead of the compiled one, which can be useful for debugging.