Files
sdk/pkg/analyzer_cli
Konstantin Shcheglov bd103ebc50 Store unlinked data with unlinked salt.
Before this change we used the whole AnalysisOptions.signature as salt.
This means that if two packages have different set of lints, they have
different options signatures, and so we have to parse and compute
unlinked data for SDK and all shared packages separately. But unlinked
data depends only on very small set of options, practically only on
parser options.

This improves performance on workspaces with many modules and empty
cache:

Before:
<= --- Analyzing in 36122 ms.
<= Computed implemented in: 50138 ms.

<= --- Analyzing in 47905 ms.
<= Computed implemented in: 55339 ms.

<= --- Analyzing in 45141 ms.
<= Computed implemented in: 60169 ms.


After:
<= --- Analyzing in 27957 ms.
<= Computed implemented in: 11645 ms.

<= --- Analyzing in 21378 ms.
<= Computed implemented in: 9439 ms.

<= --- Analyzing in 21719 ms.
<= Computed implemented in: 10546 ms.


Here "computed implemented" is computing subtypes of classes in the
open file - it required unlinked data for all files in all available
packages.


It also helps for full cache:
  analysis: 6300 vs. 5700 ms.
  implemented: 5700 vs. 3700 ms.



R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I10dbc6d062617466ad5f35ae77bd1e58a6bb606c
Reviewed-on: https://dart-review.googlesource.com/75128
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-09-16 17:42:23 +00:00
..
2018-08-30 12:32:52 +00:00
2017-02-10 12:47:06 -08:00
2015-11-19 14:52:54 -08:00
2018-09-04 21:10:57 +00:00
2017-02-22 14:09:41 -08:00

dartanalyzer

Use dartanalyzer to statically analyze your code at the command line, checking for errors and warnings that are specified in the Dart Language Specification. DartPad, code editors, and IDEs such as WebStorm use the same analysis engine that dartanalyzer uses.

Basic usage

Run the analyzer from the top directory of the package. Here's an example of testing a Dart file.

dartanalyzer bin/test.dart

Options

The following are the most commonly used options for dartanalyzer:

  • --packages=
    Specify the path to the package resolution configuration file. For more information see Package Resolution Configuration File. This option cannot be used with --package-root.

  • --package-warnings
    Show warnings not only for code in the specified .dart file and others in its library, but also for libraries imported with package:.

  • --options=
    Specify the path to an analysis options file.

  • --lints
    Show the results from the linter.

  • --no-hints
    Don't show hints for improving the code.

  • --ignore-unrecognized-flags
    Rather than printing the help message, ignore any unrecognized command-line flags.

  • --version
    Show the analyzer version.

  • -h or --help
    Show all the command-line options.

The following are advanced options to use with dartanalyzer:

  • -b or --batch
    Run in batch mode.

  • --dart-sdk=
    Specify the directory that contains the Dart SDK.

  • --fatal-warnings
    Except for type warnings, treat warnings as fatal.

  • --format=machine
    Produce output in a format suitable for parsing.

  • --url-mapping=libraryUri,/path/to/library.dart
    Tells the analyzer to use the specified library as the source for that particular import.

The following options are deprecated:

  • --package-root=
    Deprecated. Specify the directory to search for any libraries that are imported using package:. This option is replaced as of Dart 1.12 with --packages.