This separates VariableDeclaration from Statement. VariableDeclaration no longer implements Statement and variable declared in a block or in a for-statement are now wrapped by a VariableStatement. Currently there are two VariableStatement implementations; LegacyVariableStatement for variables in the current model, called LegacyVariable, and VariableInitialization for variables used in the new, still experimental, encoding that supports scope computation. This CL is a step towards realigning the AST nodes to the new model in which each kind of variable has its own distinct subclass. (LocalVariable, PositionalParameter, NamedParameter, SyntheticVariable, etc.) Note that it is not the intent to use VariableStatement in ForStatement going forward but that will be handled in a follow-up. TEST=existing. Change-Id: I5b309cd62c9b138f95b74fb054686edffa49a393 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/502681 Reviewed-by: Chloe Stefantsova <cstefantsova@google.com> Reviewed-by: Nicholas Shahan <nshahan@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com> Commit-Queue: Johnni Winther <johnniwinther@google.com>
Overview
The testcases in this directory and its subdirectory are all compiled in various different configurations designed to test various aspects of Fasta (or more generally, package:front_end).
The configurations are described below.
The source of truth for these configurations is the file pkg/front_end/testing.json.
Updating all expectations
To update test expectations for all tests at once, run:
dart pkg/front_end/tool/update_expectations.dart
Note that this takes a long time and should only be used when many tests need updating.
Updating expectations for a single test
To update the expectations for a specific test, provide the folder and test name as an argument.
For example, if you want to update the test expectations for a test, such as pkg/front_end/testcases/general/abstract_instantiation.dart, then run:
dart pkg/front_end/tool/update_expectations.dart general/abstract_instantiation
Updating expectations for all tests in a folder
If you want to update the test expectations for a specific folder of tests such as the pkg/front_end/testcases/general/ folder, then run:
dart pkg/front_end/tool/update_expectations.dart general/...
Dart 3.0 Outlines
- Status file: outline.status
- Standalone test: pkg/front_end/test/outline_sutie.dart
- Expectation prefix:
.outline.expect - How to update expectations:
./pkg/front_end/tool/cfe testing -DupdateExpectations=true outline/test1 outline/test2 ...
Dart 3.0 (strong mode)
- Status file: strong.status
- Standalone test: pkg/front_end/test/strong_suite.dart
- Expectation prefix:
.strong.expect - How to update expectations:
./pkg/front_end/tool/cfe testing -DupdateExpectations=true -DupdateComments=true strong/test1 strong/test2 ...
Note: strong mode configuration additionally parses comments in the test file and can precisely match internal details of the compiler such as the inferred type of an expression or if a warning was emitted at a given location.