Files
sdk/pkg/analyzer/doc/implementation/experiment_flags.md
T
Johnni Winther eb8156415c [cfe] Remove use of 'fasta' in (file)names
Change-Id: Iac3850696fb5e48dff847d17f7110644e8b8bd03
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/395920
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2024-11-20 14:22:56 +00:00

1.1 KiB

Experiment flags

If you're implementing a language feature, then it needs to have an accompanying experiment flag. (Or multiple experiments if it's going to be enabled over the course of multiple releases.)

Adding an experiment flag

Experiment flags are shared across all of the tools, so they are defined in a single location. To add a new flag, edit experimental_features.yaml. The initial commit is only required to define the name and to include a help: key.

To generate the declarations used by the analyzer, run dart pkg/analyzer/tool/experiments/generate.dart.

To generate the declarations used by the front-end, run dart pkg/front_end/tool/cfe.dart generate-experimental-flags.

Summary representation

The set of (the indexes of) enabled experiments is used to build the hash for summary files. If defining the new experiment flag changes the indexes of existing experiment flags, then the value of the static field AnalysisDriver.DATA_VERSION needs to be incremented.