The Dart SDK often contains experimental features, which you can try by passing flags to Dart tools.
Using experiment flags with command-line tools
To use an experiment with Dart SDK command line tools,
pass the corresponding flag to the tool.
For example, to enable the experiments
super-mixins
and no-slow-checks
,
add those flags to the dart
command:
$ dart run --enable-experiment=super-mixins,no-slow-checks bin/main.dart
Using experiment flags with the Dart analyzer (command-line and IDE)
To enable experiments affecting analysis,
use the enable-experiment
key in the analysis options file.
Here’s an example of enabling the experiments
super-mixins
and no-slow-checks
in analysis_options.yaml
:
analyzer:
enable-experiment:
- super-mixins
- no-slow-checks
Using experiment flags with IDEs
To enable experiments related to running or debugging apps in IDEs, edit the launch configuration.
Visual Studio Code
In launch.json
under configurations
,
add a new toolArgs
key containing the desired flags.
Example:
"configurations": [
{
"name": "Dart",
"program": "bin/main.dart",
"request": "launch",
"type": "dart",
"toolArgs": [
"--enable-experiment=super-mixins,no-slow-checks",
],
}
]
For more information, consult the documentation for VS Code launch configurations.
Android Studio
Under VMOptions
add the desired flags.
Example:
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Run main" type="DartCommandLineRunConfigurationType" factoryName="Dart Command Line Application">
<option name="VMOptions" value="--enable-experiment=non-nullable" />
<option name="filePath" value="$PROJECT_DIR$/bin/main.dart" />
<method v="2" />
</configuration>
</component>
For more information, consult the instructions for Android Studio run/debug configurations.
More information
- For a complete list of experiments,
see the Dart SDK file
experimental_features.yaml
. - For information on procedures and expectations for experiment flags, see the documentation of the process for changes that are behind experimental flags.