5121a2e831
When we perform constant evaluation in the CFE, the async transform
runs after constant evaluation. Thus, it can no longer use const
bool.fromEnvironment("dart.vm.product") to query whether the VM is
in product mode.
Instead, it can read the product mode define directly from the
environment defines given to the CFE and generate different code
depending on the value.
Change-Id: I2aabc4a84b50a940d35d5664ff4ebdf0680ed5c1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111645
Reviewed-by: 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.
Dart 1.0 Compilation
- Status file: legacy.status
- Standalone test: pkg/front_end/test/fasta/legacy_test.dart
- Expectation prefix:
.direct.expect - How to update expectations:
./pkg/front_end/tool/fasta testing -DupdateExpectations=true compile/test1 compile/test2 ...
Dart 1.0 Outlines
- Status file: outline.status
- Standalone test: pkg/front_end/test/fasta/outline_test.dart
- Expectation prefix:
.outline.expect - How to update expectations:
./pkg/front_end/tool/fasta testing -DupdateExpectations=true outline/test1 outline/test2 ...
Dart 2.0 (strong mode)
- Status file: strong.status
- Standalone test: pkg/front_end/test/fasta/strong_test.dart
- Expectation prefix:
.strong.expect - How to update expectations:
./pkg/front_end/tool/fasta 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.