ddcd028cde
The `_FutureListener.callback` field is used for multiple purposes (possibly to save memory by avoiding additional fields) so it cannot have a specific function type. This causes the `Function?` typed `_FutureListener.callback` field to be casted to proper function types such as `T Function(S)`. => Those runtime type checks are very expensive. To avoid introducing more fields we use an `unsafeCast<T>()` for those casts, since the implementation guarantees they are going to suceed. Issue https://github.com/dart-lang/sdk/issues/48225 TEST=ci Change-Id: I6f0cc87600462c8ca5baceeb511ce8a06c61237e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/230240 Reviewed-by: Nicholas Shahan <nshahan@google.com> Reviewed-by: Lasse Nielsen <lrn@google.com> Commit-Queue: Martin Kustermann <kustermann@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.