Version 3.0.0-4.0.dev
Merge fe968d979ec2363d7a3e51fe4c97cf047976655c into dev
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c0d7484..9b463ff 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,7 +3,7 @@
### Language
- **Breaking change** [#49635][]: Flag additional code as unreachable due to
- types `Null` and `Never`. Several unusual constructs that lead to unreachable
+ types `Null` and `Never`. Several unusual constructs that lead to unreachable
code are now recognized by flow analysis:
- Control flow after an expression of the form `e ?? other` or `e ??= other`,
@@ -33,7 +33,7 @@
`noSuchMethod`. If a concrete class implements an interface containing a
member with a name that's private to different library, and does not inherit
an implementation of that interface member, a invocation of that member will
- result in an exception getting thrown. Previously, such attempts would result
+ result in an exception getting thrown. Previously, such attempts would result
in the call being diverted to the `noSuchMethod` method.
This change closes a loophole in Dart's privacy system, where another library
@@ -48,17 +48,15 @@
dependencies during top-level type inference.
Previously, some of these dependencies were ignored, based on an analysis
- determining that they could not influence the inferred type. However,
- this analysis was complex, differed slightly among tools, and had become
- much more complex due to other changes (especially, enhanced flow
- analysis).
+ determining that they could not influence the inferred type. However, this
+ analysis was complex, differed slightly among tools, and had become much more
+ complex due to other changes (especially, enhanced flow analysis).
- With this change, all tools treat these cyclic dependencies in the
- same way, the analysis is well-understood, and, arguably, the code is
- more readable.
+ With this change, all tools treat these cyclic dependencies in the same way,
+ the analysis is well-understood, and, arguably, the code is more readable.
- Breakage is mitigated by adding a declared type to one top-level
- declaration per cycle which is now an error.
+ Breakage is mitigated by adding a declared type to one top-level declaration
+ per cycle which is now an error.
[#50383]: https://github.com/dart-lang/sdk/issues/50383
@@ -75,8 +73,8 @@
#### `dart:convert`
-- **Breaking change** [#34233][]: The previously deprecated API
- [`DEFAULT_BUFFER_SIZE`][] in `JsonUtf8Encoder` has been removed.
+- **Breaking change** [#34233]: The previously deprecated API
+ [`DEFAULT_BUFFER_SIZE`] in `JsonUtf8Encoder` has been removed.
[#34233]: https://github.com/dart-lang/sdk/issues/34233
[`DEFAULT_BUFFER_SIZE`]: https://api.dart.dev/stable/2.17.6/dart-convert/JsonUtf8Encoder/DEFAULT_BUFFER_SIZE-constant.html
@@ -97,11 +95,11 @@
#### `dart:developer`
-- **Breaking change** [#34233][]: The previously deprecated APIs
- `kInvalidParams`, `kExtensionError`, `kExtensionErrorMax`, and
- `kExtensionErrorMin` in [`ServiceExtensionResponse`][] have been removed. They
- have been replaced by `invalidParams`, `extensionError`, `extensionErrorMax`,
- and `extensionErrorMin`.
+- **Breaking change** [#34233]: The previously deprecated APIs `kInvalidParams`,
+ `kExtensionError`, `kExtensionErrorMax`, and `kExtensionErrorMin` in
+ [`ServiceExtensionResponse`] have been removed. They have been replaced by
+ `invalidParams`, `extensionError`, `extensionErrorMax`, and
+ `extensionErrorMin`.
- Deprecated `UserTag.MAX_USER_TAGS` in favor of `UserTag.maxUserTags`.
[#34233]: https://github.com/dart-lang/sdk/issues/34233
@@ -109,7 +107,7 @@
#### `dart:ffi`
-- **Breaking change** [#49935][]: The runtime type argument of `Pointer` has
+- **Breaking change** [#49935]: The runtime type argument of `Pointer` has
changed to `Never` in preparation of completely removing the runtime type
argument. `Pointer.toString` has changed to not report any type argument.
@@ -121,17 +119,17 @@
- Deprecated `registerElement` and `registerElement2` in `Document` and
`HtmlDocument`. These APIs were based on the deprecated Web Components v0.5
specification and are not supported by browsers today. These APIs are expected
- to be deleted in a future release. See the related breaking change
- request [#49536](https://github.com/dart-lang/sdk/issues/49536).
+ to be deleted in a future release. See the related breaking change request
+ [#49536](https://github.com/dart-lang/sdk/issues/49536).
#### `dart:io`
- **Breaking change** [#49305](https://github.com/dart-lang/sdk/issues/49305):
Disallow negative or hexadecimal content-length headers.
- **Breaking change** [#49647](https://github.com/dart-lang/sdk/issues/49647):
- `File.create` now takes new optional `exclusive` `bool` parameter, and
- when it is `true` the operation will fail if target file already exists.
-- **Breaking change** [#49878][]: Calling `ResourceHandle.toFile()`,
+ `File.create` now takes new optional `exclusive` `bool` parameter, and when it
+ is `true` the operation will fail if target file already exists.
+- **Breaking change** [#49878]: Calling `ResourceHandle.toFile()`,
`ResourceHandle.toSocket()`, `ResourceHandle.toRawSocket()` or
`ResourceHandle.toRawDatagramSocket()`, more than once now throws a
`StateError`.
@@ -142,8 +140,7 @@
[#49878]: https://github.com/dart-lang/sdk/issues/49878
-- Adds three new `FileSystemException` subclasses to handle common error
- cases:
+- Adds three new `FileSystemException` subclasses to handle common error cases:
- `PathAccessException`: The necessary access rights are not available.
- `PathExistsException`: The path being created already exists.
@@ -158,9 +155,9 @@
#### `dart:mirrors`
-- **Breaking change** [#34233][]: The APIs [`MirrorsUsed`][] and [`Comment`][]
- have been removed. `MirrorsUsed` was experimental and deprecated; `Comment`
- was previously used internally in dart2js. Both are no longer functional.
+- **Breaking change** [#34233]: The APIs [`MirrorsUsed`] and [`Comment`] have
+ been removed. `MirrorsUsed` was experimental and deprecated; `Comment` was
+ previously used internally in dart2js. Both are no longer functional.
[#34233]: https://github.com/dart-lang/sdk/issues/34233
[`MirrorsUsed`]: https://api.dart.dev/stable/dart-mirrors/MirrorsUsed-class.html
@@ -172,18 +169,18 @@
- **Breaking changes to the preview feature `@staticInterop`**:
- Classes with this annotation are now disallowed from using `external`
- generative constructors. Use `external factory`s for these classes instead,
- and the behavior should be identical. This includes use of synthetic
- constructors. See [#48730][] and [#49941][] for more details.
+ generative constructors. Use `external factory`s for these classes instead,
+ and the behavior should be identical. This includes use of synthetic
+ constructors. See [#48730] and [#49941] for more details.
- Classes with this annotation's external extension members are now disallowed
- from using type parameters e.g. `external void method<T>(T t)`. Use a
- non-`external` extension method for type parameters instead. See [#49350][]
- for more details.
+ from using type parameters e.g. `external void method<T>(T t)`. Use a
+ non-`external` extension method for type parameters instead. See [#49350]
+ for more details.
- Classes with this annotation should also have the `@JS` annotation. You can
- also have the `@anonymous` annotation with these two annotations for an object
- literal constructor, but it isn't required.
+ also have the `@anonymous` annotation with these two annotations for an
+ object literal constructor, but it isn't required.
- Classes with this annotation can not be implemented by classes without this
- annotation. This is to avoid confusing type behavior.
+ annotation. This is to avoid confusing type behavior.
[#48730]: https://github.com/dart-lang/sdk/issues/48730
[#49941]: https://github.com/dart-lang/sdk/issues/49941
@@ -208,14 +205,19 @@
Updated the Linter to `1.31.0`, which includes changes that
-- add new lint: `enable_null_safety`.
-- add new lint: `library_annotations`.
+- add new lint: `collection_methods_unrelated_type`.
+- add new lint: `combinators_ordering`.
- add new lint: `dangling_library_doc_comments`.
+- add new lint: `enable_null_safety`.
+- add new lint: `implicit_call_tearoffs`.
+- add new lint: `library_annotations`.
+- add new lint: `unnecessary_library_directive`.
+- add new lint: `unreachable_from_main`.
+- add new lint: `use_string_in_part_of_directives`.
- fix `no_leading_underscores_for_local_identifiers` to not report super formals
as local variables.
- fix `unnecessary_overrides` false negatives.
- fix `cancel_subscriptions` for nullable fields.
-- add new lint: `collection_methods_unrelated_type`.
- update `library_names` to support unnamed libraries.
- fix `unnecessary_parenthesis` support for as-expressions.
- fix `use_build_context_synchronously` to check for context property accesses.
@@ -227,36 +229,9 @@
- fix `use_build_context_synchronously` to check for `BuildContext`s in named
expressions.
- fix `exhaustive_cases` to check parenthesized expressions
-- improves performance for:
- - `avoid_null_checks_in_equality_operators`.
- - `join_return_with_statement`.
- - `recursive_getters`.
- - `unnecessary_lambdas`.
- - `diagnostic_describe_all_properties`.
- - `prefer_foreach`.
- - `avoid_escaping_inner_quotes`.
- - `cascade_invocations`.
- - `tighten_type_of_initializing_formals`.
- - `prefer_interpolation_to_compose_strings`.
- - `prefer_constructors_over_static_methods`.
- - `avoid_returning_null`.
- - `parameter_assignments`.
- - `prefer_constructors_over_static_methods`.
- - `prefer_interpolation_to_compose_strings`.
- - `avoid_returning_null`.
- - `avoid_returning_this`.
- - `flutter_style_todos`.
- - `avoid_positional_boolean_parameters`.
- - `prefer_const_constructors`.
-- add new lint: `implicit_call_tearoffs`.
-- add new lint: `unnecessary_library_directive`.
- update `avoid_redundant_argument_values` to work with enum declarations.
-- improve performance for `prefer_contains`.
-- add new lint: `unreachable_from_main`.
- fix `avoid_redundant_argument_values` when referencing required
parameters in legacy libraries.
-- improve performance for `use_late_for_private_fields_and_variables`.
-- add new lint: `use_string_in_part_of_directives`.
- fix `use_super_parameters` false positives with repeated super
parameter references.
- update `use_late_for_private_fields_and_variables` to handle enums.
@@ -265,8 +240,6 @@
in string interpolations.
- update `public_member_api_docs` to report diagnostics on extension
names (instead of bodies).
-- add miscellaneous documentation improvements.
-- add new lint: `combinators_ordering`.
- fix `use_colored_box` and `use_decorated_box` to not over-report on containers without
a child.
- fix `unnecessary_parenthesis` false positives on a map-or-set literal at the start of
@@ -277,6 +250,29 @@
- fix `prefer_final_locals` false positives on declaration lists with at least one
non-final variable.
- fix`use_build_context_synchronously` to handle `await`s in `if` conditions.
+- improves performance for:
+ - `avoid_escaping_inner_quotes`.
+ - `avoid_null_checks_in_equality_operators`.
+ - `avoid_positional_boolean_parameters`.
+ - `avoid_returning_null`.
+ - `avoid_returning_null`.
+ - `avoid_returning_this`.
+ - `cascade_invocations`.
+ - `diagnostic_describe_all_properties`.
+ - `flutter_style_todos`.
+ - `join_return_with_statement`.
+ - `parameter_assignments`.
+ - `prefer_const_constructors`.
+ - `prefer_constructors_over_static_methods`.
+ - `prefer_constructors_over_static_methods`.
+ - `prefer_contains`.
+ - `prefer_foreach`.
+ - `prefer_interpolation_to_compose_strings`.
+ - `prefer_interpolation_to_compose_strings`.
+ - `recursive_getters`.
+ - `tighten_type_of_initializing_formals`.
+ - `unnecessary_lambdas`.
+ - `use_late_for_private_fields_and_variables`.
#### Pub
@@ -305,10 +301,11 @@
- Update `dart pub publish` to require a working resolution.
If publishing a breaking release of mutually dependent packages use `dependency_overrides`
to obtain a resolution.
-- `dart pub add` will now allow adding multiple packages from any source using the same YAML syntax as in `pubspec.yaml`.
+- `dart pub add` will now allow adding multiple packages from any source using
+ the same YAML syntax as in `pubspec.yaml`.
For example:
- ```
+ ```console
$ dart pub add retry:^1.0.0 'dev:foo{"git":"https://github.com/foo/foo"}'
```
- `dart pub publish` will now give a warning if `dart analyze` reports any diagnostics.
@@ -605,17 +602,16 @@
Updated the Linter to `1.25.0`, which includes changes that
- add new lint: `discarded_futures`.
+- add new lint: `unnecessary_null_aware_operator_on_extension_on_nullable`.
+- add new lint: `unnecessary_to_list_in_spreads`.
- improve message and highlight range for `no_duplicate_case_values`
- improve performance for `lines_longer_than_80_chars`,
`prefer_const_constructors_in_immutables`, and
`prefer_initializing_formals`.
- fix `prefer_final_parameters` to support super parameters.
-- add new lint: `unnecessary_to_list_in_spreads`.
- fix `unawaited_futures` to handle string interpolated
futures.
- update `use_colored_box` to not flag nullable colors,
-- add new lint:
- `unnecessary_null_aware_operator_on_extension_on_nullable`.
- fix `no_leading_underscores_for_local_identifiers`
to lint local function declarations.
- fix `avoid_init_to_null` to correctly handle super
diff --git a/benchmarks/IsolateRegExp/dart/IsolateRegExp.dart b/benchmarks/IsolateRegExp/dart/IsolateRegExp.dart
new file mode 100644
index 0000000..6430809
--- /dev/null
+++ b/benchmarks/IsolateRegExp/dart/IsolateRegExp.dart
@@ -0,0 +1,94 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// Measures performance of RegExp reuse between isolates.
+
+import 'dart:async';
+import 'dart:isolate';
+
+import 'package:benchmark_harness/benchmark_harness.dart';
+
+class SendReceiveRegExp extends AsyncBenchmarkBase {
+ SendReceiveRegExp(String name, this.re) : super(name);
+
+ @override
+ Future<void> run() async {
+ await helper.run(re);
+ }
+
+ @override
+ Future<void> setup() async {
+ helper = SendReceiveHelper();
+ await helper.setup();
+ }
+
+ @override
+ Future<void> teardown() async {
+ await helper.finalize();
+ }
+
+ late SendReceiveHelper helper;
+ RegExp re;
+}
+
+class SendReceiveHelper {
+ SendReceiveHelper();
+
+ Future<void> setup() async {
+ final port = ReceivePort();
+ inbox = StreamIterator<dynamic>(port);
+ workerExitedPort = ReceivePort();
+ await Isolate.spawn(isolate, port.sendPort,
+ onExit: workerExitedPort.sendPort);
+ await inbox.moveNext();
+ outbox = inbox.current;
+ }
+
+ Future<void> finalize() async {
+ outbox.send(null);
+ await workerExitedPort.first;
+ workerExitedPort.close();
+ inbox.cancel();
+ }
+
+ // Send regexp to worker, get one back, repeat few times.
+ Future<void> run(RegExp re) async {
+ for (int i = 0; i < 5; i++) {
+ outbox.send(re);
+ await inbox.moveNext();
+ re = inbox.current;
+ }
+ }
+
+ late StreamIterator<dynamic> inbox;
+ late SendPort outbox;
+ late ReceivePort workerExitedPort;
+}
+
+Future<void> isolate(SendPort sendPort) async {
+ final port = ReceivePort();
+ final inbox = StreamIterator<dynamic>(port);
+
+ sendPort.send(port.sendPort);
+ while (true) {
+ await inbox.moveNext();
+ final received = inbox.current;
+ if (received == null) {
+ break;
+ }
+ // use RegExp to ensure it is compiled
+ RegExp re = received as RegExp;
+ re.firstMatch('h' * 1000);
+ // send the RegExp
+ sendPort.send(re);
+ }
+ port.close();
+}
+
+Future<void> main() async {
+ await SendReceiveRegExp('IsolateRegExp.MatchFast', RegExp('h?h')).report();
+ await SendReceiveRegExp('IsolateRegExp.MatchSlow',
+ RegExp(r'(?<=\W|\b|^)(a.? b c.?) ?(\(.*\))?$'))
+ .report();
+}
diff --git a/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart b/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart
index feb40b6..94e7e60 100644
--- a/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart
@@ -10706,8 +10706,8 @@
const Code<Message Function(String name)>
codeSealedClassSubtypeOutsideOfLibrary =
const Code<Message Function(String name)>(
- "SealedClassSubtypeOutsideOfLibrary",
-);
+ "SealedClassSubtypeOutsideOfLibrary",
+ analyzerCodes: <String>["SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY"]);
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
Message _withArgumentsSealedClassSubtypeOutsideOfLibrary(String name) {
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart b/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart
index 2b68e91..6dcc89c 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart
@@ -1778,8 +1778,10 @@
}
@override
- void handleVariablePattern(Token? keyword, Token variable) {
- listener?.handleVariablePattern(keyword, variable);
+ void handleVariablePattern(Token? keyword, Token variable,
+ {required bool inAssignmentPattern}) {
+ listener?.handleVariablePattern(keyword, variable,
+ inAssignmentPattern: inAssignmentPattern);
}
@override
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart b/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart
index 28c02b5..9fe0915 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart
@@ -1433,7 +1433,12 @@
/// Called after the parser has consumed a variable pattern, consisting of an
/// optional `var` or `final` keyword, an optional type annotation, and a
/// variable name identifier.
- void handleVariablePattern(Token? keyword, Token variable) {
+ ///
+ /// The flag [inAssignmentPattern] indicates whether this variable pattern is
+ /// part of a `patternAssignment` (and hence should refer to a previously
+ /// declared variable rather than declaring a fresh one).
+ void handleVariablePattern(Token? keyword, Token variable,
+ {required bool inAssignmentPattern}) {
logEvent('VariablePattern');
}
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
index 4d8415a..788f2f7 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
@@ -6298,7 +6298,7 @@
Token next = token.next!;
if (allowPatterns && optional('case', next)) {
Token case_ = token = next;
- token = parsePattern(token, isRefutableContext: true);
+ token = parsePattern(token, PatternContext.matching);
next = token.next!;
Token? when;
if (optional('when', next)) {
@@ -7459,7 +7459,7 @@
}
if (forPartsContext != null) {
forPartsContext.patternKeyword = varFinalOrConst;
- return parsePattern(beforeType, isRefutableContext: false);
+ return parsePattern(beforeType, PatternContext.declaration);
} else {
return parsePatternVariableDeclarationStatement(
beforeType, start, varFinalOrConst);
@@ -8371,7 +8371,7 @@
}
listener.beginCaseExpression(caseKeyword);
if (allowPatterns) {
- token = parsePattern(caseKeyword, isRefutableContext: true);
+ token = parsePattern(caseKeyword, PatternContext.matching);
} else {
token = parseExpression(caseKeyword);
}
@@ -9234,20 +9234,13 @@
/// nullAssertPattern ::= primaryPattern '!'
/// nullCheckPattern ::= primaryPattern '?'
///
- /// [isRefutableContext] should be `true` if the pattern occurs in a
- /// `guardedPattern` or any of its sub-patterns (i.e. in a
- /// `switchStatementCase`, `switchExpressionCase`, or `ifCondition`); these
- /// are contexts where a pattern match might be expected to fail, and bare
- /// identifiers are treated as constant patterns. It should be `false` if the
- /// pattern occurs in a `localVariableDeclaration`, `forLoopParts`, or
- /// `patternAssignment`; these are contexts where a pattern match failure is
- /// either prohibited statically or causes a runtime exception, and bare
- /// identifiers are treated as variable patterns.
- Token parsePattern(Token token,
- {int precedence = 1, required bool isRefutableContext}) {
+ /// [patternContext] indicates whether the pattern is refutable or
+ /// irrefutable, and whether it occurs as part of a patternAssignment.
+ Token parsePattern(Token token, PatternContext patternContext,
+ {int precedence = 1}) {
assert(precedence >= 1);
assert(precedence <= SELECTOR_PRECEDENCE);
- token = parsePrimaryPattern(token, isRefutableContext: isRefutableContext);
+ token = parsePrimaryPattern(token, patternContext);
while (true) {
Token next = token.next!;
int tokenLevel = _computePrecedence(next, forPattern: true);
@@ -9278,9 +9271,8 @@
case '||':
listener.beginBinaryPattern(next);
// Left associative so we parse the RHS one precedence level higher
- token = parsePattern(next,
- precedence: tokenLevel + 1,
- isRefutableContext: isRefutableContext);
+ token =
+ parsePattern(next, patternContext, precedence: tokenLevel + 1);
listener.endBinaryPattern(next);
break;
default:
@@ -9317,7 +9309,7 @@
/// | 'const' typeArguments? '{' elements? '}'
/// | 'const' '(' expression ')'
/// objectPattern ::= typeName typeArguments? '(' patternFields? ')'
- Token parsePrimaryPattern(Token token, {required bool isRefutableContext}) {
+ Token parsePrimaryPattern(Token token, PatternContext patternContext) {
Token start = token;
TypeParamOrArgInfo typeArg =
computeTypeParamOrArg(token, /* inDeclaration = */ true);
@@ -9327,8 +9319,7 @@
case '[':
// listPattern ::= typeArguments? '[' patterns? ']'
token = typeArg.parseArguments(token, this);
- token = parseListPatternSuffix(token,
- isRefutableContext: isRefutableContext);
+ token = parseListPatternSuffix(token, patternContext);
// A list pattern is a valid form of outerPattern, so verify that
// skipOuterPattern would have skipped this pattern properly.
assert(
@@ -9339,8 +9330,7 @@
// mapPatternEntries ::= mapPatternEntry ( ',' mapPatternEntry )* ','?
// mapPatternEntry ::= expression ':' pattern
token = typeArg.parseArguments(token, this);
- token = parseMapPatternSuffix(token,
- isRefutableContext: isRefutableContext);
+ token = parseMapPatternSuffix(token, patternContext);
// A map pattern is a valid form of outerPattern, so verify that
// skipOuterPattern would have skipped this pattern properly.
assert(
@@ -9355,7 +9345,7 @@
case 'var':
case 'final':
// variablePattern ::= ( 'var' | 'final' | 'final'? type )? identifier
- return parseVariablePattern(token);
+ return parseVariablePattern(token, patternContext);
case '(':
// parenthesizedPattern ::= '(' pattern ')'
// recordPattern ::= '(' patternFields? ')'
@@ -9366,8 +9356,8 @@
listener.handleRecordPattern(next, /* count = */ 0);
token = nextNext;
} else {
- token = parseParenthesizedPatternOrRecordPattern(token,
- isRefutableContext: isRefutableContext);
+ token =
+ parseParenthesizedPatternOrRecordPattern(token, patternContext);
}
// A record or parenthesized pattern is a valid form of outerPattern, so
// verify that skipOuterPattern would have skipped this pattern
@@ -9412,7 +9402,7 @@
}
TypeInfo typeInfo = computeVariablePatternType(token);
if (typeInfo != noType) {
- return parseVariablePattern(token, typeInfo: typeInfo);
+ return parseVariablePattern(token, patternContext, typeInfo: typeInfo);
}
// objectPattern ::= typeName typeArguments? '(' patternFields? ')'
// TODO(paulberry): Make sure OTHER_IDENTIFIER is handled
@@ -9441,8 +9431,7 @@
if (optional('(', afterToken) && !potentialTypeArg.recovered) {
TypeParamOrArgInfo typeArg = potentialTypeArg;
token = typeArg.parseArguments(token, this);
- token = parseObjectPatternRest(token,
- isRefutableContext: isRefutableContext);
+ token = parseObjectPatternRest(token, patternContext);
listener.handleObjectPattern(firstIdentifier, dot, secondIdentifier);
// An object pattern is a valid form of outerPattern, so verify that
// skipOuterPattern would have skipped this pattern properly.
@@ -9452,10 +9441,10 @@
} else if (dot == null) {
// It's a single identifier. If it's a wildcard pattern or we're in an
// irrefutable context, parse it as a variable pattern.
- if (!isRefutableContext || firstIdentifier.lexeme == '_') {
+ if (!patternContext.isRefutable || firstIdentifier.lexeme == '_') {
// It's a wildcard pattern with no preceding type, so parse it as a
// variable pattern.
- return parseVariablePattern(beforeFirstIdentifier,
+ return parseVariablePattern(beforeFirstIdentifier, patternContext,
typeInfo: typeInfo);
}
}
@@ -9474,7 +9463,8 @@
/// about the type appearing after [token], if any.
///
/// variablePattern ::= ( 'var' | 'final' | 'final'? type )? identifier
- Token parseVariablePattern(Token token, {TypeInfo typeInfo = noType}) {
+ Token parseVariablePattern(Token token, PatternContext patternContext,
+ {TypeInfo typeInfo = noType}) {
Token? keyword;
if (typeInfo != noType) {
token = typeInfo.parseType(token, this);
@@ -9500,7 +9490,8 @@
token = insertSyntheticIdentifier(
token, IdentifierContext.localVariableDeclaration);
}
- listener.handleVariablePattern(keyword, token);
+ listener.handleVariablePattern(keyword, token,
+ inAssignmentPattern: patternContext == PatternContext.assignment);
return token;
}
@@ -9508,8 +9499,7 @@
/// bracket.
///
/// listPattern ::= typeArguments? '[' patterns? ']'
- Token parseListPatternSuffix(Token token,
- {required bool isRefutableContext}) {
+ Token parseListPatternSuffix(Token token, PatternContext patternContext) {
Token beforeToken = token;
Token beginToken = token = token.next!;
assert(optional('[', token) || optional('[]', token));
@@ -9537,11 +9527,11 @@
next = token.next!;
bool hasSubPattern = looksLikePatternStart(next);
if (hasSubPattern) {
- token = parsePattern(token, isRefutableContext: isRefutableContext);
+ token = parsePattern(token, patternContext);
}
listener.handleRestPattern(dots, hasSubPattern: hasSubPattern);
} else {
- token = parsePattern(token, isRefutableContext: isRefutableContext);
+ token = parsePattern(token, patternContext);
}
next = token.next!;
++count;
@@ -9585,7 +9575,7 @@
/// mapPattern ::= typeArguments? '{' mapPatternEntries? '}'
/// mapPatternEntries ::= mapPatternEntry ( ',' mapPatternEntry )* ','?
/// mapPatternEntry ::= expression ':' pattern
- Token parseMapPatternSuffix(Token token, {required bool isRefutableContext}) {
+ Token parseMapPatternSuffix(Token token, PatternContext patternContext) {
Token leftBrace = token = token.next!;
assert(optional('{', leftBrace));
Token next = token.next!;
@@ -9604,7 +9594,7 @@
next = token.next!;
bool hasSubPattern = looksLikePatternStart(next);
if (hasSubPattern) {
- token = parsePattern(token, isRefutableContext: isRefutableContext);
+ token = parsePattern(token, patternContext);
}
listener.handleRestPattern(dots, hasSubPattern: hasSubPattern);
} else {
@@ -9618,7 +9608,7 @@
codes.templateExpectedButGot.withArguments(':'),
new SyntheticToken(TokenType.PERIOD, next.charOffset));
}
- token = parsePattern(colon, isRefutableContext: isRefutableContext);
+ token = parsePattern(colon, patternContext);
listener.handleMapPatternEntry(colon, token.next!);
}
++count;
@@ -9664,8 +9654,8 @@
/// recordPattern ::= '(' patternFields? ')'
/// patternFields ::= patternField ( ',' patternField )* ','?
/// patternField ::= ( identifier? ':' )? pattern
- Token parseParenthesizedPatternOrRecordPattern(Token token,
- {required bool isRefutableContext}) {
+ Token parseParenthesizedPatternOrRecordPattern(
+ Token token, PatternContext patternContext) {
Token begin = token.next!;
assert(optional('(', begin));
bool old = mayParseFunctionExpressions;
@@ -9698,7 +9688,7 @@
colon = token;
wasValidRecord = true;
}
- token = parsePattern(token, isRefutableContext: isRefutableContext);
+ token = parsePattern(token, patternContext);
next = token.next!;
if (wasRecord || colon != null) {
listener.handlePatternField(colon);
@@ -9741,8 +9731,7 @@
/// `(`.
///
/// objectPattern ::= typeName typeArguments? '(' patternFields? ')'
- Token parseObjectPatternRest(Token token,
- {required bool isRefutableContext}) {
+ Token parseObjectPatternRest(Token token, PatternContext patternContext) {
Token begin = token = token.next!;
assert(optional('(', begin));
int argumentCount = 0;
@@ -9764,7 +9753,7 @@
.next!;
colon = token;
}
- token = parsePattern(token, isRefutableContext: isRefutableContext);
+ token = parsePattern(token, patternContext);
next = token.next!;
listener.handlePatternField(colon);
++argumentCount;
@@ -9869,7 +9858,7 @@
/// expression
Token parsePatternVariableDeclarationStatement(
Token keyword, Token start, Token varOrFinal) {
- Token token = parsePattern(keyword, isRefutableContext: false);
+ Token token = parsePattern(keyword, PatternContext.declaration);
Token equals = token.next!;
// Caller should have assured that the pattern was followed by an `=`.
assert(optional('=', equals));
@@ -9882,7 +9871,7 @@
/// patternAssignment ::= outerPattern '=' expression
Token parsePatternAssignment(Token token) {
- token = parsePattern(token, isRefutableContext: false);
+ token = parsePattern(token, PatternContext.assignment);
Token equals = token.next!;
// Caller should have assured that the pattern was followed by an `=`.
assert(optional('=', equals));
@@ -9911,7 +9900,7 @@
mayParseFunctionExpressions = false;
while (true) {
listener.beginSwitchExpressionCase();
- token = parsePattern(token, isRefutableContext: true);
+ token = parsePattern(token, PatternContext.matching);
Token? when;
next = token.next!;
if (optional('when', next)) {
@@ -9980,3 +9969,23 @@
@override
String toString() => 'ForPartsContext($patternKeyword)';
}
+
+/// Enum describing the different contexts in which a pattern can occur.
+enum PatternContext {
+ /// The pattern is part of a localVariableDeclaration or forLoopParts, meaning
+ /// bare identifiers refer to freshly declared variables.
+ declaration(isRefutable: false),
+
+ /// The pattern is part of a guardedPattern inside an if-case, switch
+ /// expression, or switch statement, meaning bare identifiers refer to
+ /// constants.
+ matching(isRefutable: true),
+
+ /// The pattern is part of a pattern assignment, meaning bare identifiers
+ /// refer to previously declared variables.
+ assignment(isRefutable: false);
+
+ final bool isRefutable;
+
+ const PatternContext({required this.isRefutable});
+}
diff --git a/pkg/_fe_analyzer_shared/pubspec.yaml b/pkg/_fe_analyzer_shared/pubspec.yaml
index 6ba2d85..f7ce9ff 100644
--- a/pkg/_fe_analyzer_shared/pubspec.yaml
+++ b/pkg/_fe_analyzer_shared/pubspec.yaml
@@ -1,5 +1,5 @@
name: _fe_analyzer_shared
-version: 50.0.0
+version: 51.0.0
description: Logic that is shared between the front_end and analyzer packages.
repository: https://github.com/dart-lang/sdk/tree/main/pkg/_fe_analyzer_shared
diff --git a/pkg/_fe_analyzer_shared/test/flow_analysis/flow_analysis_test.dart b/pkg/_fe_analyzer_shared/test/flow_analysis/flow_analysis_test.dart
index 63f25b9..cdaf55f 100644
--- a/pkg/_fe_analyzer_shared/test/flow_analysis/flow_analysis_test.dart
+++ b/pkg/_fe_analyzer_shared/test/flow_analysis/flow_analysis_test.dart
@@ -1869,7 +1869,7 @@
var x = Var('x');
var y = Var('y');
var z = Var('z');
- var w = Var('w', errorId: 'w');
+ var w = Var('w');
h.run([
declare(x, type: 'int'),
declare(y, type: 'int'),
@@ -1877,11 +1877,11 @@
ifCase(
expr('num'),
w.pattern(type: 'int'),
- ifTrue: [
+ [
x.write(expr('int')).stmt,
y.write(expr('int')).stmt,
],
- ifFalse: [
+ [
y.write(expr('int')).stmt,
z.write(expr('int')).stmt,
],
@@ -1899,7 +1899,7 @@
ifCase(
x.expr.notEq(nullLiteral),
intLiteral(0).pattern,
- ifTrue: [
+ [
checkNotPromoted(x),
],
),
@@ -2016,7 +2016,7 @@
});
test('switchStatement var promotes', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
switch_(
expr('int'),
@@ -2030,7 +2030,7 @@
});
test('switchStatement_afterWhen() promotes', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
switch_(
expr('num'),
@@ -2250,8 +2250,8 @@
});
test('switchStatement_endAlternative() joins branches', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2');
var y = Var('y');
var z = Var('z');
h.run([
diff --git a/pkg/_fe_analyzer_shared/test/mini_ast.dart b/pkg/_fe_analyzer_shared/test/mini_ast.dart
index 8190953..713de17 100644
--- a/pkg/_fe_analyzer_shared/test/mini_ast.dart
+++ b/pkg/_fe_analyzer_shared/test/mini_ast.dart
@@ -202,19 +202,16 @@
location: location);
}
-Statement ifCase(
- Expression expression,
- PossiblyGuardedPattern pattern, {
- List<Statement>? ifTrue,
- List<Statement>? ifFalse,
-}) {
+Statement ifCase(Expression expression, PossiblyGuardedPattern pattern,
+ List<Statement> ifTrue,
+ [List<Statement>? ifFalse]) {
var location = computeLocation();
var guardedPattern = pattern._asGuardedPattern;
return _IfCase(
expression,
guardedPattern.pattern,
guardedPattern.guard,
- _Block(ifTrue ?? [], location: location),
+ _Block(ifTrue, location: location),
ifFalse != null ? _Block(ifFalse, location: location) : null,
location: location,
);
@@ -223,9 +220,9 @@
CollectionElement ifCaseElement(
Expression expression,
PossiblyGuardedPattern pattern,
- CollectionElement ifTrue, {
+ CollectionElement ifTrue, [
CollectionElement? ifFalse,
-}) {
+]) {
var location = computeLocation();
var guardedPattern = pattern._asGuardedPattern;
return new _IfCaseElement(
@@ -690,6 +687,12 @@
fail('assertInErrorRecovery called but no errors reported: '
'$assertInErrorRecoveryStack');
}
+ if (Node._nodesWithUnusedErrorIds.isNotEmpty) {
+ var ids = [for (var node in Node._nodesWithUnusedErrorIds) node._errorId]
+ .join(', ');
+ Node._nodesWithUnusedErrorIds.clear();
+ fail('Unused error ids: $ids');
+ }
}
Type _getIteratedType(Type iterableType) {
@@ -1180,6 +1183,11 @@
class Node {
static int _nextId = 0;
+ /// Tracks all [Node] object that have had an [errorId] assigned, but haven't
+ /// had [errorId] queried. This is used to detect unused error IDs so that we
+ /// can keep the test cases clean.
+ static final Set<Node> _nodesWithUnusedErrorIds = {};
+
final int id;
final String location;
@@ -1189,6 +1197,7 @@
Node._({required this.location}) : id = _nextId++;
String get errorId {
+ _nodesWithUnusedErrorIds.remove(this);
String? errorId = _errorId;
if (errorId == null) {
fail('No error ID assigned for $runtimeType $this at $location');
@@ -1199,6 +1208,7 @@
set errorId(String value) {
_errorId = value;
+ _nodesWithUnusedErrorIds.add(this);
}
@override
@@ -1290,7 +1300,8 @@
],
name,
].join(' ');
- var componentsStr = components.map((v) => v._errorId ?? v).join(', ');
+ var componentsStr =
+ components.map((v) => v.stringToCheckVariables).join(', ');
return '$declarationStr = [$componentsStr]';
}
}
@@ -1430,12 +1441,13 @@
/// The type of the variable, or `null` if it is not yet known.
Type? _type;
- Var(this.name, {this.isFinal = false, String? errorId})
- : super._(location: computeLocation()) {
- if (errorId != null) {
- this.errorId = errorId;
- }
- }
+ /// Identifier for this variable in IR. This allows distinct variables with
+ /// the same name to be distinguished.
+ final String identity;
+
+ Var(this.name, {this.isFinal = false, String? identity})
+ : identity = identity ?? name,
+ super._(location: computeLocation());
/// Creates an L-value representing a reference to this variable.
LValue get expr =>
@@ -1444,7 +1456,7 @@
bool get isConsistent => true;
/// The string that should be used to check variables in a set.
- String get stringToCheckVariables => errorId;
+ String get stringToCheckVariables => identity;
/// Gets the type if known; otherwise throws an exception.
Type get type {
diff --git a/pkg/_fe_analyzer_shared/test/type_inference/type_inference_test.dart b/pkg/_fe_analyzer_shared/test/type_inference/type_inference_test.dart
index 567c245..04e3efb 100644
--- a/pkg/_fe_analyzer_shared/test/type_inference/type_inference_test.dart
+++ b/pkg/_fe_analyzer_shared/test/type_inference/type_inference_test.dart
@@ -78,7 +78,7 @@
expr('Object'),
intLiteral(0).pattern,
intLiteral(1).checkContext('int').asCollectionElement,
- ifFalse: intLiteral(2).checkContext('int').asCollectionElement,
+ intLiteral(2).checkContext('int').asCollectionElement,
)
.checkIr('if(expression: expr(Object), pattern: '
'const(0, matchedType: Object), guard: true, '
@@ -342,11 +342,12 @@
group('If-case:', () {
test('Type schema', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
ifCase(
expr('int').checkContext('?'),
x.pattern(type: 'num'),
+ [],
).checkIr('ifCase(expr(int), '
'varPattern(x, matchedType: int, staticType: num), variables(x), '
'true, block(), noop)'),
@@ -354,15 +355,15 @@
});
test('With else', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
ifCase(
expr('num'),
x.pattern(type: 'int'),
- ifTrue: [
+ [
expr('Object').stmt,
],
- ifFalse: [
+ [
expr('String').stmt,
],
).checkIr('ifCase(expr(num), '
@@ -372,11 +373,12 @@
});
test('With guard', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
ifCase(
expr('num'),
x.pattern(type: 'int').when(x.expr.eq(intLiteral(0))),
+ [],
).checkIr('ifCase(expr(num), '
'varPattern(x, matchedType: num, staticType: int), variables(x), '
'==(x, 0), block(), noop)'),
@@ -384,11 +386,12 @@
});
test('Allows refutable patterns', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
ifCase(
expr('num').checkContext('?'),
x.pattern(type: 'int'),
+ [],
).checkIr('ifCase(expr(num), '
'varPattern(x, matchedType: num, staticType: int), variables(x), '
'true, block(), noop)'),
@@ -397,11 +400,12 @@
group('Guard not assignable to bool', () {
test('int', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
ifCase(
expr('int'),
x.pattern().when(expr('int')..errorId = 'GUARD'),
+ [],
),
], expectedErrors: {
'nonBooleanCondition(GUARD)'
@@ -409,21 +413,23 @@
});
test('bool', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
ifCase(
expr('int'),
x.pattern().when(expr('bool')),
+ [],
),
], expectedErrors: {});
});
test('dynamic', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
ifCase(
expr('int'),
x.pattern().when(expr('dynamic')),
+ [],
),
], expectedErrors: {});
});
@@ -553,7 +559,7 @@
group('var pattern:', () {
test('untyped', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
switch_(
expr('int').checkContext('?'),
@@ -571,7 +577,7 @@
});
test('typed', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
switch_(
expr('int').checkContext('?'),
@@ -622,7 +628,7 @@
});
test('guard', () {
- var i = Var('i')..errorId = 'i';
+ var i = Var('i');
h.run([
switch_(
expr('int'),
@@ -646,8 +652,8 @@
group('Variables:', () {
test('Independent cases', () {
- var x = Var('x')..errorId = 'x';
- var y = Var('y')..errorId = 'y';
+ var x = Var('x');
+ var y = Var('y');
h.run([
switch_(
expr('int'),
@@ -670,8 +676,8 @@
group('Shared case scope:', () {
group('Present in both cases:', () {
test('With the same type and finality', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2');
h.run([
switch_(
expr('int'),
@@ -691,9 +697,9 @@
]);
});
test('With the same type and finality, with logical-or', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
- var x3 = Var('x')..errorId = 'x3';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2');
+ var x3 = Var('x', identity: 'x3');
h.run([
switch_(
expr('int'),
@@ -716,8 +722,8 @@
});
group('With different type:', () {
test('explicit / explicit', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2');
h.run([
switch_(
expr('int'),
@@ -738,8 +744,8 @@
]);
});
test('explicit / implicit', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2');
h.run([
switch_(
expr('int'),
@@ -760,8 +766,8 @@
]);
});
test('implicit / implicit', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2');
h.run([
switch_(
expr('List<int>'),
@@ -786,8 +792,8 @@
});
});
test('With different finality', () {
- var x1 = Var('x', isFinal: true)..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', isFinal: true, identity: 'x1');
+ var x2 = Var('x', identity: 'x2');
h.run([
switch_(
expr('int'),
@@ -809,7 +815,7 @@
});
});
test('case has, case not', () {
- var x1 = Var('x')..errorId = 'x1';
+ var x1 = Var('x', identity: 'x1');
h.run([
switch_(
expr('int'),
@@ -829,7 +835,7 @@
]);
});
test('case not, case has', () {
- var x1 = Var('x')..errorId = 'x1';
+ var x1 = Var('x', identity: 'x1');
h.run([
switch_(
expr('int'),
@@ -850,7 +856,7 @@
]);
});
test('case has, default', () {
- var x1 = Var('x')..errorId = 'x1';
+ var x1 = Var('x', identity: 'x1');
h.run([
switch_(
expr('int'),
@@ -869,7 +875,7 @@
]);
});
test('case has, with label', () {
- var x1 = Var('x')..errorId = 'x1';
+ var x1 = Var('x', identity: 'x1');
h.run([
switch_(
expr('int'),
@@ -1296,7 +1302,7 @@
group('Guard not assignable to bool', () {
test('int', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
switch_(
expr('int'),
@@ -1313,7 +1319,7 @@
});
test('bool', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
switch_(
expr('int'),
@@ -1328,7 +1334,7 @@
});
test('dynamic', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
switch_(
expr('int'),
@@ -1401,10 +1407,9 @@
test('illegal late pattern', () {
h.run([
- (match(
+ match(
listPattern([wildcard()])..errorId = 'PATTERN', expr('List<int>'),
- isLate: true)
- ..errorId = 'CONTEXT'),
+ isLate: true),
], expectedErrors: {
'patternDoesNotAllowLate(PATTERN)'
});
@@ -1424,11 +1429,12 @@
group('Patterns:', () {
group('Cast:', () {
test('Type schema', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
ifCase(
expr('num'),
x.pattern().as_('int'),
+ [],
).checkIr('ifCase(expr(num), castPattern(varPattern(x, '
'matchedType: int, staticType: int), int, matchedType: num), '
'variables(x), true, block(), noop)'),
@@ -1537,7 +1543,7 @@
group('Static type', () {
test('Explicit type arguments', () {
- var x = Var('x', errorId: 'x');
+ var x = Var('x');
h.run([
ifCase(
expr('dynamic'),
@@ -1551,6 +1557,7 @@
),
],
),
+ [],
).checkIr('ifCase(expr(dynamic), mapPattern(mapPatternEntry('
'expr(Object), varPattern(x, matchedType: int, staticType: '
'int)), matchedType: dynamic, requiredType: Map<bool, int>), '
@@ -1559,7 +1566,7 @@
});
test('Matched type is a map', () {
- var x = Var('x', errorId: 'x');
+ var x = Var('x');
h.run([
ifCase(
expr('Map<bool, int>'),
@@ -1569,6 +1576,7 @@
x.pattern(),
),
]),
+ [],
).checkIr('ifCase(expr(Map<bool, int>), mapPattern(mapPatternEntry('
'expr(Object), varPattern(x, matchedType: int, staticType: '
'int)), matchedType: Map<bool, int>, requiredType: '
@@ -1577,7 +1585,7 @@
});
test('Matched type is dynamic', () {
- var x = Var('x', errorId: 'x');
+ var x = Var('x');
h.run([
ifCase(
expr('dynamic'),
@@ -1587,6 +1595,7 @@
x.pattern(),
),
]),
+ [],
).checkIr('ifCase(expr(dynamic), mapPattern(mapPatternEntry('
'expr(Object), varPattern(x, matchedType: dynamic, staticType: '
'dynamic)), matchedType: dynamic, requiredType: '
@@ -1595,7 +1604,7 @@
});
test('Matched type is other', () {
- var x = Var('x', errorId: 'x');
+ var x = Var('x');
h.run([
ifCase(
expr('String'),
@@ -1605,6 +1614,7 @@
x.pattern(),
),
]),
+ [],
).checkIr('ifCase(expr(String), mapPattern(mapPatternEntry('
'expr(Object), varPattern(x, matchedType: Object?, staticType: '
'Object?)), matchedType: String, requiredType: '
@@ -1816,8 +1826,8 @@
});
test('Matched type is other', () {
- var x = Var('x')..errorId = 'x';
- var y = Var('y')..errorId = 'y';
+ var x = Var('x');
+ var y = Var('y');
h.run([
ifCase(
expr('Object'),
@@ -1826,6 +1836,7 @@
listPatternRestElement(
y.pattern(expectInferredType: 'List<Object?>')),
]),
+ [],
).checkIr('ifCase(expr(Object), listPattern(varPattern(x, '
'matchedType: Object?, staticType: Object?), ...(varPattern(y, '
'matchedType: List<Object?>, staticType: List<Object?>)), '
@@ -1836,7 +1847,7 @@
group('Rest pattern:', () {
test('With pattern', () {
- var x = Var('x')..errorId = 'x';
+ var x = Var('x');
h.run([
match(
listPattern([listPatternRestElement(x.pattern())]),
@@ -1914,13 +1925,13 @@
});
test('Match var overlap', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1')..errorId = 'x1';
+ var x2 = Var('x', identity: 'x2')..errorId = 'x2';
h.run([
match(
listPattern([
- x1.pattern()..errorId = 'P1',
- x2.pattern()..errorId = 'P2',
+ x1.pattern(),
+ x2.pattern(),
]),
expr('List<int>'),
),
@@ -1959,13 +1970,10 @@
});
test('Duplicate variable pattern', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1')..errorId = 'x1';
+ var x2 = Var('x', identity: 'x2')..errorId = 'x2';
h.run([
- match(
- (x1.pattern()..errorId = 'LHS')
- .and(x2.pattern()..errorId = 'RHS'),
- expr('int')),
+ match(x1.pattern().and(x2.pattern()), expr('int')),
], expectedErrors: {
'duplicateVariablePattern(name: x, original: x1, duplicate: x2)',
});
@@ -2004,12 +2012,13 @@
group('Should have same types:', () {
group('Same:', () {
test('explicit / explicit', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2');
h.run([
ifCase(
expr('Object'),
x1.pattern(type: 'int').or(x2.pattern(type: 'int')),
+ [],
).checkIr('ifCase(expr(Object), logicalOrPattern(varPattern(x, '
'matchedType: Object, staticType: int), varPattern(x, '
'matchedType: Object, staticType: int), '
@@ -2018,14 +2027,15 @@
]);
});
test('explicit / explicit, normalized', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2');
h.run([
ifCase(
expr('Object'),
x1
.pattern(type: 'Object')
.or(x2.pattern(type: 'FutureOr<Object>')),
+ [],
).checkIr('ifCase(expr(Object), logicalOrPattern(varPattern(x, '
'matchedType: Object, staticType: Object), varPattern(x, '
'matchedType: Object, staticType: FutureOr<Object>), '
@@ -2034,12 +2044,13 @@
]);
});
test('explicit / implicit', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2');
h.run([
ifCase(
expr('int'),
x1.pattern(type: 'int').or(x2.pattern()),
+ [],
).checkIr('ifCase(expr(int), logicalOrPattern(varPattern(x, '
'matchedType: int, staticType: int), varPattern(x, '
'matchedType: int, staticType: int), matchedType: int), '
@@ -2047,12 +2058,13 @@
]);
});
test('implicit / explicit', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2');
h.run([
ifCase(
expr('int'),
x1.pattern().or(x2.pattern(type: 'int')),
+ [],
).checkIr('ifCase(expr(int), logicalOrPattern(varPattern(x, '
'matchedType: int, staticType: int), varPattern(x, '
'matchedType: int, staticType: int), matchedType: int), '
@@ -2060,12 +2072,13 @@
]);
});
test('implicit / implicit', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2');
h.run([
ifCase(
expr('int'),
x1.pattern().or(x2.pattern()),
+ [],
).checkIr('ifCase(expr(int), logicalOrPattern(varPattern(x, '
'matchedType: int, staticType: int), varPattern(x, '
'matchedType: int, staticType: int), matchedType: int), '
@@ -2075,12 +2088,13 @@
});
group('Not same:', () {
test('explicit / explicit', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2')..errorId = 'x2';
h.run([
ifCase(
expr('Object'),
x1.pattern(type: 'int').or(x2.pattern(type: 'num')),
+ [],
).checkIr('ifCase(expr(Object), logicalOrPattern(varPattern(x, '
'matchedType: Object, staticType: int), varPattern(x, '
'matchedType: Object, staticType: num), matchedType: '
@@ -2092,12 +2106,13 @@
});
});
test('explicit / implicit', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2')..errorId = 'x2';
h.run([
ifCase(
expr('num'),
x1.pattern(type: 'int').or(x2.pattern()),
+ [],
).checkIr('ifCase(expr(num), logicalOrPattern(varPattern(x, '
'matchedType: num, staticType: int), varPattern(x, '
'matchedType: num, staticType: num), matchedType: num), '
@@ -2111,12 +2126,13 @@
});
});
test('Should have same finality', () {
- var x1 = Var('x', isFinal: true)..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', isFinal: true, identity: 'x1');
+ var x2 = Var('x', identity: 'x2')..errorId = 'x2';
h.run([
ifCase(
expr('int'),
x1.pattern().or(x2.pattern()),
+ [],
).checkIr('ifCase(expr(int), logicalOrPattern(varPattern(x, '
'matchedType: int, staticType: int), varPattern(x, '
'matchedType: int, staticType: int), matchedType: int), '
@@ -2129,12 +2145,13 @@
});
group('Should be present in both branches:', () {
test('Both have', () {
- var x1 = Var('x')..errorId = 'x1';
- var x2 = Var('x')..errorId = 'x2';
+ var x1 = Var('x', identity: 'x1');
+ var x2 = Var('x', identity: 'x2');
h.run([
ifCase(
expr('int'),
x1.pattern().or(x2.pattern()),
+ [],
).checkIr('ifCase(expr(int), logicalOrPattern(varPattern(x, '
'matchedType: int, staticType: int), varPattern(x, '
'matchedType: int, staticType: int), matchedType: int), '
@@ -2142,11 +2159,12 @@
]);
});
test('Left has', () {
- var x1 = Var('x')..errorId = 'x1';
+ var x1 = Var('x', identity: 'x1')..errorId = 'x1';
h.run([
ifCase(
expr('int'),
(x1.pattern().or(wildcard()))..errorId = 'PATTERN',
+ [],
).checkIr('ifCase(expr(int), logicalOrPattern(varPattern(x, '
'matchedType: int, staticType: int), varPattern(_, '
'matchedType: int, staticType: int), matchedType: int), '
@@ -2158,11 +2176,12 @@
});
});
test('Right has', () {
- var x1 = Var('x')..errorId = 'x1';
+ var x1 = Var('x', identity: 'x1')..errorId = 'x1';
h.run([
ifCase(
expr('int'),
(wildcard().or(x1.pattern()))..errorId = 'PATTERN',
+ [],
).checkIr('ifCase(expr(int), logicalOrPattern(varPattern(_, '
'matchedType: int, staticType: int), varPattern(x, '
'matchedType: int, staticType: int), matchedType: int), '
@@ -2293,9 +2312,10 @@
objectPattern(
requiredType: 'B',
fields: [
- Var('foo', errorId: 'foo').pattern().recordField('foo'),
+ Var('foo').pattern().recordField('foo'),
],
),
+ [],
).checkIr('ifCase(expr(A<int>), objectPattern(varPattern(foo, '
'matchedType: int, staticType: int), matchedType: A<int>, '
'requiredType: B<int>), variables(foo), true, block(), noop)'),
@@ -2309,9 +2329,10 @@
objectPattern(
requiredType: 'dynamic',
fields: [
- Var('foo', errorId: 'foo').pattern().recordField('foo'),
+ Var('foo').pattern().recordField('foo'),
],
),
+ [],
).checkIr('ifCase(expr(int), objectPattern(varPattern(foo, '
'matchedType: dynamic, staticType: dynamic), matchedType: int, '
'requiredType: dynamic), variables(foo), true, block(), noop)'),
@@ -2325,9 +2346,10 @@
objectPattern(
requiredType: 'Never',
fields: [
- Var('foo', errorId: 'foo').pattern().recordField('foo'),
+ Var('foo').pattern().recordField('foo'),
],
),
+ [],
).checkIr('ifCase(expr(int), objectPattern(varPattern(foo, '
'matchedType: Never, staticType: Never), matchedType: int, '
'requiredType: Never), variables(foo), true, block(), noop)'),
@@ -2342,12 +2364,11 @@
objectPattern(
requiredType: 'A<int>',
fields: [
- Var('a', errorId: 'a').pattern().recordField('foo')
- ..errorId = 'ORIGINAL',
- Var('b', errorId: 'b').pattern().recordField('foo')
- ..errorId = 'DUPLICATE',
+ Var('a').pattern().recordField('foo')..errorId = 'ORIGINAL',
+ Var('b').pattern().recordField('foo')..errorId = 'DUPLICATE',
],
),
+ [],
),
], expectedErrors: {
'duplicateRecordPatternField(name: foo, original: ORIGINAL, '
@@ -2405,9 +2426,10 @@
ifCase(
expr('dynamic').checkContext('?'),
recordPattern([
- Var('a', errorId: 'a').pattern(type: 'int').recordField(),
- Var('b', errorId: 'b').pattern().recordField(),
+ Var('a').pattern(type: 'int').recordField(),
+ Var('b').pattern().recordField(),
]),
+ [],
).checkIr(
'ifCase(expr(dynamic), recordPattern(varPattern(a, '
'matchedType: dynamic, staticType: int), varPattern(b, '
@@ -2475,9 +2497,10 @@
ifCase(
expr('(int,)').checkContext('?'),
recordPattern([
- Var('a', errorId: 'a').pattern().recordField(),
- Var('b', errorId: 'b').pattern().recordField(),
+ Var('a').pattern().recordField(),
+ Var('b').pattern().recordField(),
]),
+ [],
).checkIr('ifCase(expr((int)), recordPattern(varPattern(a, '
'matchedType: Object?, staticType: Object?), '
'varPattern(b, matchedType: Object?, staticType: '
@@ -2491,8 +2514,9 @@
ifCase(
expr('(int, String)').checkContext('?'),
recordPattern([
- Var('a', errorId: 'a').pattern().recordField(),
+ Var('a').pattern().recordField(),
]),
+ [],
).checkIr('ifCase(expr((int, String)), '
'recordPattern(varPattern(a, matchedType: Object?, '
'staticType: Object?), matchedType: (int, String), '
@@ -2509,9 +2533,10 @@
ifCase(
expr('X').checkContext('?'),
recordPattern([
- Var('a', errorId: 'a').pattern(type: 'int').recordField(),
- Var('b', errorId: 'b').pattern().recordField(),
+ Var('a').pattern(type: 'int').recordField(),
+ Var('b').pattern().recordField(),
]),
+ [],
).checkIr('ifCase(expr(X), recordPattern(varPattern(a, '
'matchedType: Object?, staticType: int), varPattern(b, '
'matchedType: Object?, staticType: Object?), matchedType: X, '
@@ -2528,9 +2553,10 @@
ifCase(
expr('dynamic').checkContext('?'),
recordPattern([
- Var('a', errorId: 'a').pattern(type: 'int').recordField('a'),
- Var('b', errorId: 'b').pattern().recordField('b'),
+ Var('a').pattern(type: 'int').recordField('a'),
+ Var('b').pattern().recordField('b'),
]),
+ [],
).checkIr('ifCase(expr(dynamic), recordPattern(varPattern(a, '
'matchedType: dynamic, staticType: int), varPattern(b, '
'matchedType: dynamic, staticType: dynamic), matchedType: '
@@ -2595,9 +2621,10 @@
ifCase(
expr('({int a})').checkContext('?'),
recordPattern([
- Var('a', errorId: 'a').pattern().recordField('a'),
- Var('b', errorId: 'b').pattern().recordField('b'),
+ Var('a').pattern().recordField('a'),
+ Var('b').pattern().recordField('b'),
]),
+ [],
).checkIr('ifCase(expr(({int a})), recordPattern('
'varPattern(a, matchedType: Object?, staticType: '
'Object?), varPattern(b, matchedType: Object?, '
@@ -2611,8 +2638,9 @@
ifCase(
expr('({int a, String b})').checkContext('?'),
recordPattern([
- Var('a', errorId: 'a').pattern().recordField('a'),
+ Var('a').pattern().recordField('a'),
]),
+ [],
).checkIr('ifCase(expr(({int a, String b})), '
'recordPattern(varPattern(a, matchedType: Object?, '
'staticType: Object?), matchedType: ({int a, String b}), '
@@ -2629,9 +2657,10 @@
ifCase(
expr('X').checkContext('?'),
recordPattern([
- Var('a', errorId: 'a').pattern(type: 'int').recordField('a'),
- Var('b', errorId: 'b').pattern().recordField('b'),
+ Var('a').pattern(type: 'int').recordField('a'),
+ Var('b').pattern().recordField('b'),
]),
+ [],
).checkIr('ifCase(expr(X), recordPattern(varPattern(a, '
'matchedType: Object?, staticType: int), varPattern(b, '
'matchedType: Object?, staticType: Object?), matchedType: X, '
@@ -2645,11 +2674,10 @@
ifCase(
expr('({int a})'),
recordPattern([
- Var('a', errorId: 'a').pattern().recordField('a')
- ..errorId = 'ORIGINAL',
- Var('b', errorId: 'b').pattern().recordField('a')
- ..errorId = 'DUPLICATE',
+ Var('a').pattern().recordField('a')..errorId = 'ORIGINAL',
+ Var('b').pattern().recordField('a')..errorId = 'DUPLICATE',
]),
+ [],
),
], expectedErrors: {
'duplicateRecordPatternField(name: a, original: ORIGINAL, '
@@ -2686,6 +2714,7 @@
null,
intLiteral(0).checkContext('?'),
),
+ [],
).checkIr('ifCase(expr(int), relationalPattern(0, matchedType: int), '
'variables(), true, block(), noop)')
]);
@@ -2703,6 +2732,7 @@
),
intLiteral(0).checkContext('num'),
),
+ [],
).checkIr('ifCase(expr(int), relationalPattern(0, matchedType: '
'int), variables(), true, block(), noop)')
]);
@@ -2719,6 +2749,7 @@
),
expr('int?').checkContext('Object'),
),
+ [],
).checkIr('ifCase(expr(Object), relationalPattern(expr(int?), '
'matchedType: Object), variables(), true, block(), noop)')
]);
@@ -2735,6 +2766,7 @@
),
expr('int?').checkContext('Object'),
),
+ [],
).checkIr('ifCase(expr(Object), relationalPattern(expr(int?), '
'matchedType: Object), variables(), true, block(), noop)')
]);
@@ -2751,6 +2783,7 @@
),
expr('String')..errorId = 'OPERAND',
),
+ [],
).checkIr('ifCase(expr(int), relationalPattern(expr(String), '
'matchedType: int), variables(), true, block(), noop)')
], expectedErrors: {
@@ -2771,6 +2804,7 @@
expr('String').checkContext('Object'),
errorId: 'PATTERN',
),
+ [],
).checkIr('ifCase(expr(A), relationalPattern(expr(String), '
'matchedType: A), variables(), true, block(), noop)')
], expectedErrors: {
@@ -2820,6 +2854,7 @@
ifCase(
expr('int'),
wildcard(),
+ [],
).checkIr('ifCase(expr(int), varPattern(_, matchedType: int, '
'staticType: int), variables(), true, block(), noop)'),
]);
@@ -2830,6 +2865,7 @@
ifCase(
expr('num'),
wildcard(type: 'int'),
+ [],
).checkIr('ifCase(expr(num), varPattern(_, matchedType: num, '
'staticType: int), variables(), true, block(), noop)'),
]);
diff --git a/pkg/analysis_server/lib/src/handler/legacy/search_get_element_declarations.dart b/pkg/analysis_server/lib/src/handler/legacy/search_get_element_declarations.dart
index 939df05..056ce5a 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/search_get_element_declarations.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/search_get_element_declarations.dart
@@ -47,6 +47,8 @@
return protocol.ElementKind.ENUM;
case search.DeclarationKind.ENUM_CONSTANT:
return protocol.ElementKind.ENUM_CONSTANT;
+ case search.DeclarationKind.EXTENSION:
+ return protocol.ElementKind.EXTENSION;
case search.DeclarationKind.FIELD:
return protocol.ElementKind.FIELD;
case search.DeclarationKind.FUNCTION:
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart
index c24299d..baec76e 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart
@@ -299,13 +299,15 @@
required ResolvedUnitResult unit,
required int offset,
required LineInfo lineInfo,
+ required bool Function(String input) filter,
}) async {
final request = DartSnippetRequest(
unit: unit,
offset: offset,
);
final snippetManager = DartSnippetManager();
- final snippets = await snippetManager.computeSnippets(request);
+ final snippets =
+ await snippetManager.computeSnippets(request, filter: filter);
return snippets.map((snippet) => snippetToCompletionItem(
server,
@@ -527,6 +529,7 @@
unit: unit,
offset: offset,
lineInfo: unit.lineInfo,
+ filter: fuzzy.stringMatches,
);
return snippets.where(fuzzy.completionItemMatches).toList();
});
@@ -835,8 +838,10 @@
: _matcher = FuzzyMatcher(prefix, matchStyle: MatchStyle.TEXT);
bool completionItemMatches(CompletionItem item) =>
- _matcher.score(item.filterText ?? item.label) > 0;
+ stringMatches(item.filterText ?? item.label);
bool completionSuggestionMatches(CompletionSuggestion item) =>
- _matcher.score(item.displayText ?? item.completion) > 0;
+ stringMatches(item.displayText ?? item.completion);
+
+ bool stringMatches(String input) => _matcher.score(input) > 0;
}
diff --git a/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml b/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml
index f9fb506..a5f7bf3 100644
--- a/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml
+++ b/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml
@@ -970,6 +970,8 @@
status: hasFix
CompileTimeErrorCode.RETURN_WITHOUT_VALUE:
status: needsEvaluation
+CompileTimeErrorCode.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY:
+ status: needsEvaluation
CompileTimeErrorCode.SET_ELEMENT_FROM_DEFERRED_LIBRARY:
status: needsEvaluation
CompileTimeErrorCode.SET_ELEMENT_TYPE_NOT_ASSIGNABLE:
diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart
index 458f2a9..6bccab2 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart
@@ -11,6 +11,7 @@
import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analysis_server/src/services/refactoring/legacy/refactoring_internal.dart';
+import 'package:analysis_server/src/utilities/extensions/ast.dart';
import 'package:analysis_server/src/utilities/strings.dart';
import 'package:analyzer/dart/analysis/code_style_options.dart';
import 'package:analyzer/dart/analysis/features.dart';
@@ -73,13 +74,27 @@
CompilationUnitElement get unitElement => unit.declaredElement!;
- String get _declarationKeyword {
- if (_isPartOfConstantExpression(singleExpression)) {
- return 'const';
- } else if (codeStyleOptions.makeLocalsFinal) {
- return 'final';
+ String get _declarationKeywordAndType {
+ var useConst = stringLiteralPart == null &&
+ _isPartOfConstantExpression(singleExpression);
+ var useFinal = codeStyleOptions.makeLocalsFinal;
+
+ String? typeString;
+ if (codeStyleOptions.specifyTypes) {
+ typeString = singleExpression != null
+ ? singleExpression?.staticType
+ ?.getDisplayString(withNullability: unit.isNonNullableByDefault)
+ : stringLiteralPart != null
+ ? 'String'
+ : null;
+ }
+
+ if (useConst) {
+ return typeString != null ? 'const $typeString' : 'const';
+ } else if (useFinal) {
+ return typeString != null ? 'final $typeString' : 'final';
} else {
- return 'var';
+ return typeString ?? 'var';
}
}
@@ -137,9 +152,9 @@
if (singleExpression != null &&
singleExpression.parent is ExpressionStatement &&
occurrences.length == 1) {
- var keyword = _declarationKeyword;
- var declarationSource = '$keyword $name = ';
- var edit = SourceEdit(singleExpression.offset, 0, declarationSource);
+ var keywordAndType = _declarationKeywordAndType;
+ var declarationCode = '$keywordAndType $name = ';
+ var edit = SourceEdit(singleExpression.offset, 0, declarationCode);
doSourceChange_addElementEdit(change, unitElement, edit);
return Future.value(change);
}
@@ -152,17 +167,15 @@
// add variable declaration
{
- String declarationCode;
- int nameOffsetInDeclarationCode;
+ var keywordAndType = _declarationKeywordAndType;
+ var declarationCode = '$keywordAndType ';
+ var nameOffsetInDeclarationCode = declarationCode.length;
if (stringLiteralPart != null) {
- declarationCode = 'var ';
- nameOffsetInDeclarationCode = declarationCode.length;
+ // TODO(dantup): This does not correctly handle escaping (for example
+ // unescaped single quotes in a double quoted string).
declarationCode += "$name = '$stringLiteralPart';";
} else {
- var keyword = _declarationKeyword;
var initializerCode = utils.getRangeText(selectionRange);
- declarationCode = '$keyword ';
- nameOffsetInDeclarationCode = declarationCode.length;
declarationCode += '$name = $initializerCode;';
}
// prepare location for declaration
@@ -197,6 +210,7 @@
// prepare replacement
var occurrenceReplacement = name;
if (stringLiteralPart != null) {
+ // TODO(dantup): Don't include braces if unnecessary.
occurrenceReplacement = '\${$name}';
occurrencesShift += 2;
}
diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring.dart
index cb4f456..84ccad2 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring.dart
@@ -464,6 +464,8 @@
nameNode = node;
} else if (node is EnumConstantDeclaration) {
nameNode = node.name;
+ } else if (node is ExtensionDeclaration) {
+ nameNode = node.name;
} else if (node is FieldFormalParameter) {
nameNode = node.name;
} else if (node is ImportDirective) {
diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_unit_member.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_unit_member.dart
index f2e22b4..58e6a37 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_unit_member.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_unit_member.dart
@@ -51,6 +51,9 @@
@override
String get refactoringName {
+ if (element is ExtensionElement) {
+ return 'Rename Extension';
+ }
if (element is FunctionElement) {
return 'Rename Top-Level Function';
}
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/class_declaration.dart b/pkg/analysis_server/lib/src/services/snippets/dart/class_declaration.dart
index aa126db..a2e3362 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/class_declaration.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/class_declaration.dart
@@ -11,7 +11,10 @@
static const prefix = 'class';
static const label = 'class';
- ClassDeclaration(super.request);
+ ClassDeclaration(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/do_statement.dart b/pkg/analysis_server/lib/src/services/snippets/dart/do_statement.dart
index 4a58903..4c04ffe 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/do_statement.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/do_statement.dart
@@ -11,7 +11,10 @@
static const prefix = 'do';
static const label = 'do while';
- DoStatement(super.request);
+ DoStatement(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/flutter_stateful_widget.dart b/pkg/analysis_server/lib/src/services/snippets/dart/flutter_stateful_widget.dart
index 00a79a8..4c8991a 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/flutter_stateful_widget.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/flutter_stateful_widget.dart
@@ -21,7 +21,10 @@
@override
late ClassElement? classKey;
- FlutterStatefulWidget(super.request);
+ FlutterStatefulWidget(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/flutter_stateful_widget_with_animation.dart b/pkg/analysis_server/lib/src/services/snippets/dart/flutter_stateful_widget_with_animation.dart
index c970993..0073beb 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/flutter_stateful_widget_with_animation.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/flutter_stateful_widget_with_animation.dart
@@ -24,7 +24,11 @@
late ClassElement? classAnimationController;
late MixinElement? classSingleTickerProviderStateMixin;
- FlutterStatefulWidgetWithAnimationController(super.request);
+ FlutterStatefulWidgetWithAnimationController(super.request,
+ {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/flutter_stateless_widget.dart b/pkg/analysis_server/lib/src/services/snippets/dart/flutter_stateless_widget.dart
index 86ca320..31ed625 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/flutter_stateless_widget.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/flutter_stateless_widget.dart
@@ -19,7 +19,10 @@
@override
late ClassElement? classKey;
- FlutterStatelessWidget(super.request);
+ FlutterStatelessWidget(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/for_in_statement.dart b/pkg/analysis_server/lib/src/services/snippets/dart/for_in_statement.dart
index 06d1e0d..ac1484a 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/for_in_statement.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/for_in_statement.dart
@@ -11,7 +11,10 @@
static const prefix = 'forin';
static const label = 'for in';
- ForInStatement(super.request);
+ ForInStatement(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/for_statement.dart b/pkg/analysis_server/lib/src/services/snippets/dart/for_statement.dart
index 557bb11..702caeb 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/for_statement.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/for_statement.dart
@@ -11,7 +11,10 @@
static const prefix = 'for';
static const label = 'for';
- ForStatement(super.request);
+ ForStatement(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/function_declaration.dart b/pkg/analysis_server/lib/src/services/snippets/dart/function_declaration.dart
index 5471752..ebcfcad 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/function_declaration.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/function_declaration.dart
@@ -11,7 +11,10 @@
static const prefix = 'fun';
static const label = 'fun';
- FunctionDeclaration(super.request);
+ FunctionDeclaration(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/if_else_statement.dart b/pkg/analysis_server/lib/src/services/snippets/dart/if_else_statement.dart
index 78b1b88..08665e8 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/if_else_statement.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/if_else_statement.dart
@@ -11,7 +11,10 @@
static const prefix = 'ife';
static const label = 'ife';
- IfElseStatement(super.request);
+ IfElseStatement(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/if_statement.dart b/pkg/analysis_server/lib/src/services/snippets/dart/if_statement.dart
index 3f667b1..260562b 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/if_statement.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/if_statement.dart
@@ -11,7 +11,10 @@
static const prefix = 'if';
static const label = 'if';
- IfStatement(super.request);
+ IfStatement(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/main_function.dart b/pkg/analysis_server/lib/src/services/snippets/dart/main_function.dart
index 69976c5..c065ff3 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/main_function.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/main_function.dart
@@ -15,7 +15,10 @@
static const prefix = 'main';
static const label = 'main()';
- MainFunction(super.request);
+ MainFunction(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
/// Whether to insert a `List<String> args` parameter in the generated
/// function.
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/switch_statement.dart b/pkg/analysis_server/lib/src/services/snippets/dart/switch_statement.dart
index 5896568..ce8438c 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/switch_statement.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/switch_statement.dart
@@ -11,7 +11,10 @@
static const prefix = 'switch';
static const label = 'switch case';
- SwitchStatement(super.request);
+ SwitchStatement(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/test_definition.dart b/pkg/analysis_server/lib/src/services/snippets/dart/test_definition.dart
index 29a348d..b53cf87 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/test_definition.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/test_definition.dart
@@ -11,7 +11,10 @@
static const prefix = 'test';
static const label = 'test';
- TestDefinition(super.request);
+ TestDefinition(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/test_group_definition.dart b/pkg/analysis_server/lib/src/services/snippets/dart/test_group_definition.dart
index 5bb4616..a2828d4 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/test_group_definition.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/test_group_definition.dart
@@ -11,7 +11,10 @@
static const prefix = 'group';
static const label = 'group';
- TestGroupDefinition(super.request);
+ TestGroupDefinition(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/try_catch_statement.dart b/pkg/analysis_server/lib/src/services/snippets/dart/try_catch_statement.dart
index 5320ab3..d3da865 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/try_catch_statement.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/try_catch_statement.dart
@@ -11,7 +11,10 @@
static const prefix = 'try';
static const label = 'try';
- TryCatchStatement(super.request);
+ TryCatchStatement(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/while_statement.dart b/pkg/analysis_server/lib/src/services/snippets/dart/while_statement.dart
index 48776ad..0163052 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/while_statement.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/while_statement.dart
@@ -11,7 +11,10 @@
static const prefix = 'while';
static const label = 'while';
- WhileStatement(super.request);
+ WhileStatement(super.request, {required super.elementImportCache});
+
+ @override
+ String get snippetPrefix => prefix;
@override
Future<Snippet> compute() async {
diff --git a/pkg/analysis_server/lib/src/services/snippets/snippet_manager.dart b/pkg/analysis_server/lib/src/services/snippets/snippet_manager.dart
index 26b94bf..5d4a2b1 100644
--- a/pkg/analysis_server/lib/src/services/snippets/snippet_manager.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/snippet_manager.dart
@@ -24,9 +24,11 @@
import 'package:analysis_server/src/services/snippets/snippet_context.dart';
import 'package:analysis_server/src/services/snippets/snippet_producer.dart';
import 'package:analyzer/dart/analysis/session.dart';
+import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
-typedef SnippetProducerGenerator = SnippetProducer Function(DartSnippetRequest);
+typedef SnippetProducerGenerator = SnippetProducer Function(DartSnippetRequest,
+ {required Map<Element, LibraryElement?> elementImportCache});
/// [DartSnippetManager] determines if a snippet request is Dart specific
/// and forwards those requests to all Snippet Producers that return `true` from
@@ -61,8 +63,9 @@
};
Future<List<Snippet>> computeSnippets(
- DartSnippetRequest request,
- ) async {
+ DartSnippetRequest request, {
+ bool Function(String input)? filter,
+ }) async {
var pathContext = request.resourceProvider.pathContext;
if (!file_paths.isDart(pathContext, request.filePath)) {
return const [];
@@ -74,9 +77,12 @@
if (generators == null) {
return snippets;
}
+ final elementImportCache = <Element, LibraryElement?>{};
for (final generator in generators) {
- final producer = generator(request);
- if (await producer.isValid()) {
+ final producer =
+ generator(request, elementImportCache: elementImportCache);
+ final matchesFilter = filter?.call(producer.snippetPrefix) ?? true;
+ if (matchesFilter && await producer.isValid()) {
snippets.add(await producer.compute());
}
}
diff --git a/pkg/analysis_server/lib/src/services/snippets/snippet_producer.dart b/pkg/analysis_server/lib/src/services/snippets/snippet_producer.dart
index 5f04c48..7b8bd56 100644
--- a/pkg/analysis_server/lib/src/services/snippets/snippet_producer.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/snippet_producer.dart
@@ -24,12 +24,26 @@
final LibraryElement libraryElement;
final bool useSuperParams;
- DartSnippetProducer(super.request)
+ /// Elements that need to be imported for generated code to be valid.
+ ///
+ /// Calling [addImports] will add any required imports to the supplied
+ /// builder.
+ final Set<Element> requiredElementImports = {};
+
+ /// A cache of mappings from Elements to their public Library Elements.
+ ///
+ /// Callers can share this cache across multiple snippet producers to avoid
+ /// repeated searches where they may add imports for the same elements.
+ final Map<Element, LibraryElement?> _elementImportCache;
+
+ DartSnippetProducer(super.request,
+ {required Map<Element, LibraryElement?> elementImportCache})
: sessionHelper = AnalysisSessionHelper(request.analysisSession),
utils = CorrectionUtils(request.unit),
libraryElement = request.unit.libraryElement,
useSuperParams = request.unit.libraryElement.featureSet
- .isEnabled(Feature.super_parameters);
+ .isEnabled(Feature.super_parameters),
+ _elementImportCache = elementImportCache;
CodeStyleOptions get codeStyleOptions =>
sessionHelper.session.analysisContext.analysisOptions.codeStyleOptions;
@@ -44,6 +58,14 @@
NullabilitySuffix get nullableSuffix => libraryElement.isNonNullableByDefault
? NullabilitySuffix.question
: NullabilitySuffix.none;
+
+ /// Adds public imports for any elements fetched by [getClass] and [getMixin]
+ /// to [builder].
+ Future<void> addImports(DartFileEditBuilder builder) async {
+ final dartBuilder = builder as DartFileEditBuilderImpl;
+ await Future.wait(requiredElementImports.map((element) => dartBuilder
+ .importElementLibrary(element, resultCache: _elementImportCache)));
+ }
}
abstract class FlutterSnippetProducer extends DartSnippetProducer {
@@ -52,27 +74,12 @@
late ClassElement? classWidget;
late ClassElement? classPlaceholder;
- /// Elements that need to be imported for generated code to be valid.
- ///
- /// Calling [getClass] or [getMixin] records elements in this set.
- /// Calling [addImports] will add any required imports to the supplied
- /// builder.
- final Set<Element> _requiredElementImports = {};
-
- FlutterSnippetProducer(super.request);
-
- /// Adds public imports for any elements fetched by [getClass] and [getMixin]
- /// to [builder].
- Future<void> addImports(DartFileEditBuilder builder) async {
- final dartBuilder = builder as DartFileEditBuilderImpl;
- await Future.wait(
- _requiredElementImports.map(dartBuilder.importElementLibrary));
- }
+ FlutterSnippetProducer(super.request, {required super.elementImportCache});
Future<ClassElement?> getClass(String name) async {
final class_ = await sessionHelper.getClass(flutter.widgetsUri, name);
if (class_ != null) {
- _requiredElementImports.add(class_);
+ requiredElementImports.add(class_);
}
return class_;
}
@@ -80,7 +87,7 @@
Future<MixinElement?> getMixin(String name) async {
final mixin = await sessionHelper.getMixin(flutter.widgetsUri, name);
if (mixin != null) {
- _requiredElementImports.add(mixin);
+ requiredElementImports.add(mixin);
}
return mixin;
}
@@ -192,6 +199,9 @@
SnippetProducer(this.request);
+ /// The prefix a user types to use this snippet.
+ String get snippetPrefix;
+
Future<Snippet> compute();
Future<bool> isValid() async {
diff --git a/pkg/analysis_server/test/analysis_server_test.dart b/pkg/analysis_server/test/analysis_server_test.dart
index 18a9365..9707959 100644
--- a/pkg/analysis_server/test/analysis_server_test.dart
+++ b/pkg/analysis_server/test/analysis_server_test.dart
@@ -105,20 +105,20 @@
InstrumentationService.NULL_SERVICE);
}
- @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/50496')
- Future<void> test_cache() async {
+ /// See https://github.com/dart-lang/sdk/issues/50496
+ Future<void> test_caching_mixin_superInvokedNames_setter_change() async {
var lib = convertPath('/lib');
newFolder(lib);
var foo = newFile('/lib/foo.dart', '''
-abstract class A {
- set foo(_);
+class A {
+ set foo(int _) {}
}
mixin M on A {
void bar() {
- super.foo = 0;
+ super.boo = 0;
}
}
-abstract class X extends A with M {}
+class X extends A with M {}
''');
await server.setAnalysisRoots('0', [lib], []);
await server.onAnalysisComplete;
@@ -127,32 +127,15 @@
server.updateContent('0', {
foo.path: AddContentOverlay('''
-abstract class A {
- set boo(_);
+class A {
+ set foo(int _) {}
}
mixin M on A {
void bar() {
super.foo = 0;
}
}
-abstract class X extends A with M {}
-''')
- });
- await server.onAnalysisComplete;
- expect(server.statusAnalyzing, isFalse);
- channel.notificationsReceived.clear();
-
- server.updateContent('0', {
- foo.path: AddContentOverlay('''
-abstract class A {
- set boo(_);
-}
-mixin M on A {
- void bar() {
- super.boo = 0;
- }
-}
-abstract class X extends A with M {}
+class X extends A with M {}
''')
});
await server.onAnalysisComplete;
@@ -161,13 +144,9 @@
expect(notifications, hasLength(1));
var notification = notifications.first;
expect(notification.event, 'analysis.errors');
- var params = notification.params;
- expect(params, isNotNull);
- var errors = params!['errors'] as List<Map<String, dynamic>>;
- expect(errors, hasLength(1));
- var error = errors.first;
- var message = error['message'];
- expect(message, contains("boo"));
+ var params = notification.params!;
+ var errors = params['errors'] as List<Map<String, Object?>>;
+ expect(errors, isEmpty);
}
/// Test that modifying package_config again while a context rebuild is in
diff --git a/pkg/analysis_server/test/edit/refactoring_test.dart b/pkg/analysis_server/test/edit/refactoring_test.dart
index c759aa8..d80bd8c 100644
--- a/pkg/analysis_server/test/edit/refactoring_test.dart
+++ b/pkg/analysis_server/test/edit/refactoring_test.dart
@@ -1971,6 +1971,64 @@
);
}
+ Future<void> test_extension_atDeclaration() {
+ addTestFile('''
+extension Test on int {
+ void foo() {}
+}
+void f() {
+ Test(0).foo();
+}
+''');
+ return assertSuccessfulRefactoring(
+ () {
+ return sendRenameRequest('Test on int', 'NewName');
+ },
+ '''
+extension NewName on int {
+ void foo() {}
+}
+void f() {
+ NewName(0).foo();
+}
+''',
+ feedbackValidator: (feedback) {
+ var renameFeedback = feedback as RenameFeedback;
+ expect(renameFeedback.offset, 10);
+ expect(renameFeedback.length, 4);
+ },
+ );
+ }
+
+ Future<void> test_extension_atReference() {
+ addTestFile('''
+extension Test on int {
+ void foo() {}
+}
+void f() {
+ Test(0).foo();
+}
+''');
+ return assertSuccessfulRefactoring(
+ () {
+ return sendRenameRequest('Test(0)', 'NewName');
+ },
+ '''
+extension NewName on int {
+ void foo() {}
+}
+void f() {
+ NewName(0).foo();
+}
+''',
+ feedbackValidator: (feedback) {
+ var renameFeedback = feedback as RenameFeedback;
+ expect(renameFeedback.offset, 55);
+ expect(renameFeedback.length, 4);
+ },
+ );
+ }
+
Future<void> test_feedback() {
addTestFile('''
class Test {}
diff --git a/pkg/analysis_server/test/search/declarations_test.dart b/pkg/analysis_server/test/search/declarations_test.dart
index 25ecaaf..bc83abc 100644
--- a/pkg/analysis_server/test/search/declarations_test.dart
+++ b/pkg/analysis_server/test/search/declarations_test.dart
@@ -82,6 +82,37 @@
assertHas('c', ElementKind.ENUM_CONSTANT);
}
+ Future<void> test_extension() async {
+ addTestFile(r'''
+extension E on int {
+ int get foo01 => 0;
+ void set foo02(_) {}
+ void foo03() {}
+}
+''');
+ await _getDeclarations();
+
+ assertHas('E', ElementKind.EXTENSION);
+
+ {
+ var declaration = assertHas('foo01', ElementKind.GETTER);
+ expect(declaration.codeOffset, 23);
+ expect(declaration.codeLength, 19);
+ }
+
+ {
+ var declaration = assertHas('foo02', ElementKind.SETTER);
+ expect(declaration.codeOffset, 45);
+ expect(declaration.codeLength, 20);
+ }
+
+ {
+ var declaration = assertHas('foo03', ElementKind.METHOD);
+ expect(declaration.codeOffset, 68);
+ expect(declaration.codeLength, 15);
+ }
+ }
+
Future<void> test_maxResults() async {
newFile('$testPackageLibPath/a.dart', r'''
class A {}
diff --git a/pkg/analysis_server/test/services/refactoring/legacy/extract_local_test.dart b/pkg/analysis_server/test/services/refactoring/legacy/extract_local_test.dart
index a788a47..c770276 100644
--- a/pkg/analysis_server/test/services/refactoring/legacy/extract_local_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/legacy/extract_local_test.dart
@@ -737,7 +737,109 @@
expect(refactoring.isAvailable(), isTrue);
}
- Future<void> test_lint_prefer_final_locals() async {
+ Future<void> test_lint_alwaysSpecifyTypes() async {
+ createAnalysisOptionsFile(lints: [LintNames.always_specify_types]);
+ await indexTestUnit('''
+void f() {
+ print(1 + 2);
+}
+''');
+ _createRefactoringForString('1 + 2');
+ // apply refactoring
+ return _assertSuccessfulRefactoring('''
+void f() {
+ int res = 1 + 2;
+ print(res);
+}
+''');
+ }
+
+ Future<void> test_lint_alwaysSpecifyTypes_const() async {
+ createAnalysisOptionsFile(lints: [LintNames.always_specify_types]);
+ await indexTestUnit('''
+void f() {
+ const <int>[1, 2];
+}
+''');
+ _createRefactoringForString('1');
+ // apply refactoring
+ return _assertSuccessfulRefactoring('''
+void f() {
+ const int res = 1;
+ const <int>[res, 2];
+}
+''');
+ }
+
+ Future<void> test_lint_alwaysSpecifyTypes_final() async {
+ createAnalysisOptionsFile(
+ lints: [LintNames.always_specify_types, LintNames.prefer_final_locals]);
+ await indexTestUnit('''
+void f() {
+ print(1 + 2);
+}
+''');
+ _createRefactoringForString('1 + 2');
+ // apply refactoring
+ return _assertSuccessfulRefactoring('''
+void f() {
+ final int res = 1 + 2;
+ print(res);
+}
+''');
+ }
+
+ Future<void> test_lint_alwaysSpecifyTypes_functionExpressionBody() async {
+ createAnalysisOptionsFile(lints: [LintNames.always_specify_types]);
+ await indexTestUnit('''
+foo(Point p) => p.x * p.x + p.y * p.y;
+class Point {int x = 0; int y = 0;}
+''');
+ _createRefactoringForString('p.x');
+ // apply refactoring
+ return _assertSuccessfulRefactoring('''
+foo(Point p) {
+ int res = p.x;
+ return res * res + p.y * p.y;
+}
+class Point {int x = 0; int y = 0;}
+''');
+ }
+
+ Future<void> test_lint_alwaysSpecifyTypes_statement() async {
+ createAnalysisOptionsFile(lints: [LintNames.always_specify_types]);
+ await indexTestUnit('''
+void f(String p) {
+ p.toString();
+}
+''');
+ _createRefactoringForString('p.toString()');
+ // apply refactoring
+ return _assertSuccessfulRefactoring('''
+void f(String p) {
+ String res = p.toString();
+}
+''');
+ }
+
+ Future<void> test_lint_alwaysSpecifyTypes_stringLiteralPart() async {
+ createAnalysisOptionsFile(lints: [LintNames.always_specify_types]);
+ await indexTestUnit('''
+void f() {
+ print('abcdefgh');
+}
+''');
+ _createRefactoringForString('cde');
+ // apply refactoring
+ return _assertSuccessfulRefactoring(r'''
+void f() {
+ String res = 'cde';
+ print('ab${res}fgh');
+}
+''');
+ }
+
+ Future<void> test_lint_preferFinalLocals() async {
createAnalysisOptionsFile(lints: [LintNames.prefer_final_locals]);
await indexTestUnit('''
void f() {
diff --git a/pkg/analysis_server/test/services/refactoring/legacy/rename_unit_member_test.dart b/pkg/analysis_server/test/services/refactoring/legacy/rename_unit_member_test.dart
index 2f746a8..71c6671 100644
--- a/pkg/analysis_server/test/services/refactoring/legacy/rename_unit_member_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/legacy/rename_unit_member_test.dart
@@ -619,6 +619,58 @@
''');
}
+ Future<void> test_createChange_ExtensionElement_atDeclaration() async {
+ await indexTestUnit('''
+extension Test on int {
+ void foo() {}
+}
+void f() {
+ Test(0).foo();
+}
+''');
+ // configure refactoring
+ createRenameRefactoringAtString('Test on int');
+ expect(refactoring.refactoringName, 'Rename Extension');
+ expect(refactoring.elementKindName, 'extension');
+ expect(refactoring.oldName, 'Test');
+ refactoring.newName = 'NewName';
+ // validate change
+ return assertSuccessfulRefactoring('''
+extension NewName on int {
+ void foo() {}
+}
+void f() {
+ NewName(0).foo();
+}
+''');
+ }
+
+ Future<void> test_createChange_ExtensionElement_atReference() async {
+ await indexTestUnit('''
+extension Test on int {
+ void foo() {}
+}
+void f() {
+ Test(0).foo();
+}
+''');
+ // configure refactoring
+ createRenameRefactoringAtString('Test(0)');
+ expect(refactoring.refactoringName, 'Rename Extension');
+ expect(refactoring.elementKindName, 'extension');
+ expect(refactoring.oldName, 'Test');
+ refactoring.newName = 'NewName';
+ // validate change
+ return assertSuccessfulRefactoring('''
+extension NewName on int {
+ void foo() {}
+}
+void f() {
+ NewName(0).foo();
+}
+''');
+ }
+
Future<void> test_createChange_FunctionElement() async {
await indexTestUnit('''
test() {}
diff --git a/pkg/analysis_server/test/services/snippets/dart/test_support.dart b/pkg/analysis_server/test/services/snippets/dart/test_support.dart
index 5c206e7..5b39c13 100644
--- a/pkg/analysis_server/test/services/snippets/dart/test_support.dart
+++ b/pkg/analysis_server/test/services/snippets/dart/test_support.dart
@@ -36,7 +36,7 @@
offset: offsetFromMarker(code),
);
- final producer = generator(request);
+ final producer = generator(request, elementImportCache: {});
expect(await producer.isValid(), isFalse);
}
@@ -47,7 +47,7 @@
offset: offsetFromMarker(code),
);
- final producer = generator(request);
+ final producer = generator(request, elementImportCache: {});
expect(await producer.isValid(), isTrue);
return producer.compute();
}
diff --git a/pkg/analysis_server/test/services/snippets/snippet_manager_test.dart b/pkg/analysis_server/test/services/snippets/snippet_manager_test.dart
index ae98fe8..beb9645 100644
--- a/pkg/analysis_server/test/services/snippets/snippet_manager_test.dart
+++ b/pkg/analysis_server/test/services/snippets/snippet_manager_test.dart
@@ -7,7 +7,8 @@
import 'package:analysis_server/src/services/snippets/snippet_context.dart';
import 'package:analysis_server/src/services/snippets/snippet_manager.dart';
import 'package:analysis_server/src/services/snippets/snippet_producer.dart';
-import 'package:analyzer_plugin/protocol/protocol_common.dart';
+import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer_plugin/protocol/protocol_common.dart' hide Element;
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -21,6 +22,36 @@
@reflectiveTest
class SnippetManagerTest extends AbstractSingleUnitTest {
+ Future<void> test_filter_match() async {
+ await resolveTestCode('');
+ final request = DartSnippetRequest(
+ unit: testAnalysisResult,
+ offset: 0,
+ );
+
+ final manager = _TestDartSnippetManager({
+ SnippetContext.atTopLevel: [_ValidSnippetProducer.newInstance],
+ });
+ final results =
+ await manager.computeSnippets(request, filter: (String s) => true);
+ expect(results, isNotEmpty);
+ }
+
+ Future<void> test_filter_noMatch() async {
+ await resolveTestCode('');
+ final request = DartSnippetRequest(
+ unit: testAnalysisResult,
+ offset: 0,
+ );
+
+ final manager = _TestDartSnippetManager({
+ SnippetContext.atTopLevel: [_ValidSnippetProducer.newInstance],
+ });
+ final results =
+ await manager.computeSnippets(request, filter: (String s) => false);
+ expect(results, isEmpty);
+ }
+
Future<void> test_notValidProducers() async {
await resolveTestCode('');
final request = DartSnippetRequest(
@@ -45,7 +76,11 @@
final manager = _TestDartSnippetManager({
SnippetContext.atTopLevel: [_ValidSnippetProducer.newInstance],
SnippetContext.inClass: [
- (context) => throw 'Tried to create producer for wrong context',
+ (
+ context, {
+ required Map<Element, LibraryElement?> elementImportCache,
+ }) =>
+ throw 'Tried to create producer for wrong context',
]
});
final results = await manager.computeSnippets(request);
@@ -76,6 +111,9 @@
_NotValidSnippetProducer._(super.request);
@override
+ String get snippetPrefix => 'invalid';
+
+ @override
Future<Snippet> compute() {
throw UnsupportedError(
'compute should not be called for a producer '
@@ -86,7 +124,8 @@
@override
Future<bool> isValid() async => false;
- static _NotValidSnippetProducer newInstance(DartSnippetRequest request) =>
+ static _NotValidSnippetProducer newInstance(DartSnippetRequest request,
+ {required Map<Element, LibraryElement?> elementImportCache}) =>
_NotValidSnippetProducer._(request);
}
@@ -103,9 +142,12 @@
_ValidSnippetProducer._(super.request);
@override
+ String get snippetPrefix => 'mysnip';
+
+ @override
Future<Snippet> compute() async {
return Snippet(
- 'mysnip',
+ snippetPrefix,
'My Test Snippet',
'This is a test snippet',
SourceChange('message'),
@@ -115,6 +157,7 @@
@override
Future<bool> isValid() async => true;
- static _ValidSnippetProducer newInstance(DartSnippetRequest request) =>
+ static _ValidSnippetProducer newInstance(DartSnippetRequest request,
+ {required Map<Element, LibraryElement?> elementImportCache}) =>
_ValidSnippetProducer._(request);
}
diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md
index 037b7e6..07bf9d5 100644
--- a/pkg/analyzer/CHANGELOG.md
+++ b/pkg/analyzer/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 5.3.1
+* Require `collection: ^1.17.0` because we use `elementAtOrNull`.
+
+## 5.3.0
+* Use `3.0.0` as the current language version.
+
## 5.2.0
* Deprecated `Element.enclosingElement3`, use `enclosingElement` instead.
* Deprecated `Directive.element2`, use `element` instead.
diff --git a/pkg/analyzer/lib/dart/analysis/code_style_options.dart b/pkg/analyzer/lib/dart/analysis/code_style_options.dart
index 5c968a6..f510dcf 100644
--- a/pkg/analyzer/lib/dart/analysis/code_style_options.dart
+++ b/pkg/analyzer/lib/dart/analysis/code_style_options.dart
@@ -24,6 +24,9 @@
/// class members.
bool get sortConstructorsFirst;
+ /// Return `true` if types should be specified whenever possible.
+ bool get specifyTypes;
+
/// Return `true` if the formatter should be used on code changes in this
/// context.
bool get useFormatter;
diff --git a/pkg/analyzer/lib/dart/ast/ast.dart b/pkg/analyzer/lib/dart/ast/ast.dart
index 1220e11..b6a9cbd 100644
--- a/pkg/analyzer/lib/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/dart/ast/ast.dart
@@ -218,6 +218,23 @@
Token get semicolon;
}
+/// A variable pattern in [PatternAssignment].
+///
+/// variablePattern ::= identifier
+///
+/// Clients may not extend, implement or mix-in this class.
+@experimental
+abstract class AssignedVariablePattern implements DartPattern {
+ /// Return the element referenced by this pattern, or `null` if either
+ /// [name] does not resolve to an element, or the AST structure has not
+ /// been resolved. In valid code this will be either [LocalVariableElement]
+ /// or [ParameterElement].
+ Element? get element;
+
+ /// The name of the variable being referenced.
+ Token get name;
+}
+
/// An assignment expression.
///
/// assignmentExpression ::=
@@ -363,6 +380,8 @@
R? visitAssertStatement(AssertStatement assertStatement);
+ R? visitAssignedVariablePattern(AssignedVariablePattern node);
+
R? visitAssignmentExpression(AssignmentExpression node);
R? visitAugmentationImportDirective(AugmentationImportDirective node);
@@ -421,6 +440,8 @@
R? visitDeclaredIdentifier(DeclaredIdentifier node);
+ R? visitDeclaredVariablePattern(DeclaredVariablePattern node);
+
R? visitDefaultFormalParameter(DefaultFormalParameter node);
R? visitDoStatement(DoStatement node);
@@ -668,8 +689,6 @@
R? visitVariableDeclarationStatement(VariableDeclarationStatement node);
- R? visitVariablePattern(VariablePattern node);
-
R? visitWhenClause(WhenClause node);
R? visitWhileStatement(WhileStatement node);
@@ -1645,7 +1664,9 @@
/// A pattern.
///
/// pattern ::=
-/// [BinaryPattern]
+/// [AssignedVariablePattern]
+/// | [BinaryPattern]
+/// | [DeclaredVariablePattern]
/// | [CastPattern]
/// | [ConstantPattern]
/// | [ListPattern]
@@ -1655,7 +1676,6 @@
/// | [PostfixPattern]
/// | [RecordPattern]
/// | [RelationalPattern]
-/// | [VariablePattern]
///
/// Clients may not extend, implement or mix-in this class.
@experimental
@@ -1725,6 +1745,32 @@
TypeAnnotation? get type;
}
+/// A variable pattern that declares a variable.
+///
+/// variablePattern ::=
+/// ( 'var' | 'final' | 'final'? [TypeAnnotation])? [Identifier]
+///
+/// Clients may not extend, implement or mix-in this class.
+@experimental
+abstract class DeclaredVariablePattern implements DartPattern {
+ /// Return the element associated with this declaration, or `null` if either
+ /// the variable name is `_` (in which case no variable is defined) or the AST
+ /// structure has not been resolved.
+ VariablePatternElement? get declaredElement;
+
+ /// The 'var' or 'final' keyword used when there is no [type], or `null` if a
+ /// type is given.
+ Token? get keyword;
+
+ /// The name of the variable being bound, if `_` then no variable is bound,
+ /// and [declaredElement] is `null`.
+ Token get name;
+
+ /// The type that the variable is required to match, or `null` if any type is
+ /// matched.
+ TypeAnnotation? get type;
+}
+
/// A formal parameter with a default value.
///
/// There are two kinds of parameters that are both represented by this class:
@@ -5391,31 +5437,6 @@
VariableDeclarationList get variables;
}
-/// A variable pattern.
-///
-/// variablePattern ::=
-/// ( 'var' | 'final' | [TypeAnnotation])? [Identifier]
-///
-/// Clients may not extend, implement or mix-in this class.
-@experimental
-abstract class VariablePattern implements DartPattern {
- /// Return the element associated with this declaration, or `null` if either
- /// the variable name is `_` (in which case no variable is defined) or the AST
- /// structure has not been resolved.
- VariablePatternElement? get declaredElement;
-
- /// The 'var' or 'final' keyword used when there is no [type], or `null` if a
- /// type is given.
- Token? get keyword;
-
- /// The name of the variable being bound.
- Token get name;
-
- /// The type that the variable is required to match, or `null` if any type is
- /// matched.
- TypeAnnotation? get type;
-}
-
/// A guard in a pattern-based `case` in a `switch` statement, `switch`
/// expression, `if` statement, or `if` element.
///
diff --git a/pkg/analyzer/lib/dart/ast/visitor.dart b/pkg/analyzer/lib/dart/ast/visitor.dart
index 0617f94..35615eb 100644
--- a/pkg/analyzer/lib/dart/ast/visitor.dart
+++ b/pkg/analyzer/lib/dart/ast/visitor.dart
@@ -150,6 +150,10 @@
R? visitAssertStatement(AssertStatement node) => visitStatement(node);
@override
+ R? visitAssignedVariablePattern(AssignedVariablePattern node) =>
+ visitDartPattern(node);
+
+ @override
R? visitAssignmentExpression(AssignmentExpression node) =>
visitExpression(node);
@@ -260,6 +264,10 @@
R? visitDeclaredIdentifier(DeclaredIdentifier node) => visitDeclaration(node);
@override
+ R? visitDeclaredVariablePattern(DeclaredVariablePattern node) =>
+ visitDartPattern(node);
+
+ @override
R? visitDefaultFormalParameter(DefaultFormalParameter node) =>
visitFormalParameter(node);
@@ -734,9 +742,6 @@
visitStatement(node);
@override
- R? visitVariablePattern(VariablePattern node) => visitDartPattern(node);
-
- @override
R? visitWhenClause(WhenClause node) => visitNode(node);
@override
@@ -800,6 +805,12 @@
}
@override
+ R? visitAssignedVariablePattern(AssignedVariablePattern node) {
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
R? visitAssignmentExpression(AssignmentExpression node) {
node.visitChildren(this);
return null;
@@ -974,6 +985,12 @@
}
@override
+ R? visitDeclaredVariablePattern(DeclaredVariablePattern node) {
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
R? visitDefaultFormalParameter(DefaultFormalParameter node) {
node.visitChildren(this);
return null;
@@ -1710,12 +1727,6 @@
}
@override
- R? visitVariablePattern(VariablePattern node) {
- node.visitChildren(this);
- return null;
- }
-
- @override
R? visitWhenClause(WhenClause node) {
node.visitChildren(this);
return null;
@@ -1769,6 +1780,9 @@
R? visitAssertStatement(AssertStatement node) => null;
@override
+ R? visitAssignedVariablePattern(AssignedVariablePattern node) => null;
+
+ @override
R? visitAssignmentExpression(AssignmentExpression node) => null;
@override
@@ -1856,6 +1870,9 @@
R? visitDeclaredIdentifier(DeclaredIdentifier node) => null;
@override
+ R? visitDeclaredVariablePattern(DeclaredVariablePattern node) => null;
+
+ @override
R? visitDefaultFormalParameter(DefaultFormalParameter node) => null;
@override
@@ -2237,9 +2254,6 @@
null;
@override
- R? visitVariablePattern(VariablePattern node) => null;
-
- @override
R? visitWhenClause(WhenClause node) => null;
@override
@@ -2282,6 +2296,9 @@
R? visitAssertStatement(AssertStatement node) => _throw(node);
@override
+ R? visitAssignedVariablePattern(AssignedVariablePattern node) => _throw(node);
+
+ @override
R? visitAssignmentExpression(AssignmentExpression node) => _throw(node);
@override
@@ -2371,6 +2388,9 @@
R? visitDeclaredIdentifier(DeclaredIdentifier node) => _throw(node);
@override
+ R? visitDeclaredVariablePattern(DeclaredVariablePattern node) => _throw(node);
+
+ @override
R? visitDefaultFormalParameter(DefaultFormalParameter node) => _throw(node);
@override
@@ -2759,9 +2779,6 @@
_throw(node);
@override
- R? visitVariablePattern(VariablePattern node) => _throw(node);
-
- @override
R? visitWhenClause(WhenClause node) => _throw(node);
@override
@@ -2842,6 +2859,14 @@
}
@override
+ T? visitAssignedVariablePattern(AssignedVariablePattern node) {
+ stopwatch.start();
+ T? result = _baseVisitor.visitAssignedVariablePattern(node);
+ stopwatch.stop();
+ return result;
+ }
+
+ @override
T? visitAssignmentExpression(AssignmentExpression node) {
stopwatch.start();
T? result = _baseVisitor.visitAssignmentExpression(node);
@@ -3074,6 +3099,14 @@
}
@override
+ T? visitDeclaredVariablePattern(DeclaredVariablePattern node) {
+ stopwatch.start();
+ T? result = _baseVisitor.visitDeclaredVariablePattern(node);
+ stopwatch.stop();
+ return result;
+ }
+
+ @override
T? visitDefaultFormalParameter(DefaultFormalParameter node) {
stopwatch.start();
T? result = _baseVisitor.visitDefaultFormalParameter(node);
@@ -4054,14 +4087,6 @@
}
@override
- T? visitVariablePattern(VariablePattern node) {
- stopwatch.start();
- T? result = _baseVisitor.visitVariablePattern(node);
- stopwatch.stop();
- return result;
- }
-
- @override
T? visitWhenClause(WhenClause node) {
stopwatch.start();
T? result = _baseVisitor.visitWhenClause(node);
@@ -4128,6 +4153,10 @@
R? visitAssertStatement(AssertStatement node) => visitNode(node);
@override
+ R? visitAssignedVariablePattern(AssignedVariablePattern node) =>
+ visitNode(node);
+
+ @override
R? visitAssignmentExpression(AssignmentExpression node) => visitNode(node);
@override
@@ -4218,6 +4247,10 @@
R? visitDeclaredIdentifier(DeclaredIdentifier node) => visitNode(node);
@override
+ R? visitDeclaredVariablePattern(DeclaredVariablePattern node) =>
+ visitNode(node);
+
+ @override
R? visitDefaultFormalParameter(DefaultFormalParameter node) =>
visitNode(node);
@@ -4620,9 +4653,6 @@
visitNode(node);
@override
- R? visitVariablePattern(VariablePattern node) => visitNode(node);
-
- @override
R? visitWhenClause(WhenClause node) => visitNode(node);
@override
diff --git a/pkg/analyzer/lib/src/analysis_options/code_style_options.dart b/pkg/analyzer/lib/src/analysis_options/code_style_options.dart
index 4225b48..66a02e9 100644
--- a/pkg/analyzer/lib/src/analysis_options/code_style_options.dart
+++ b/pkg/analyzer/lib/src/analysis_options/code_style_options.dart
@@ -30,6 +30,9 @@
bool get sortConstructorsFirst => _isLintEnabled('sort_constructors_first');
@override
+ bool get specifyTypes => _isLintEnabled('always_specify_types');
+
+ @override
bool get useRelativeUris => _isLintEnabled('prefer_relative_imports');
@override
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 0254806..ffa435e 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -85,7 +85,7 @@
/// TODO(scheglov) Clean up the list of implicitly analyzed files.
class AnalysisDriver implements AnalysisDriverGeneric {
/// The version of data format, should be incremented on every format change.
- static const int DATA_VERSION = 251;
+ static const int DATA_VERSION = 252;
/// The number of exception contexts allowed to write. Once this field is
/// zero, we stop writing any new exception contexts in this process.
diff --git a/pkg/analyzer/lib/src/dart/analysis/unlinked_api_signature.dart b/pkg/analyzer/lib/src/dart/analysis/unlinked_api_signature.dart
index 25d679a..6fa2e17 100644
--- a/pkg/analyzer/lib/src/dart/analysis/unlinked_api_signature.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/unlinked_api_signature.dart
@@ -7,6 +7,7 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/src/dart/ast/invokes_super_self.dart';
+import 'package:analyzer/src/dart/ast/mixin_super_invoked_names.dart';
import 'package:analyzer/src/dart/ast/token.dart';
import 'package:analyzer/src/summary/api_signature.dart';
import 'package:collection/collection.dart';
@@ -150,6 +151,7 @@
void _addMixin(MixinDeclaration node) {
_addTokens(node.beginToken, node.leftBracket);
_addClassMembers(node.members, false);
+ signature.addStringList(node.superInvokedNames);
}
void _addNode(AstNode? node) {
@@ -227,3 +229,12 @@
}
}
}
+
+extension on MixinDeclaration {
+ List<String> get superInvokedNames {
+ var names = <String>{};
+ var collector = MixinSuperInvokedNamesCollector(names);
+ accept(collector);
+ return names.toList(growable: false);
+ }
+}
diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart
index f7d7be2..7a3f388 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast.dart
@@ -657,6 +657,55 @@
}
}
+/// A variable pattern in [PatternAssignment].
+///
+/// variablePattern ::= identifier
+@experimental
+class AssignedVariablePatternImpl extends DartPatternImpl
+ implements AssignedVariablePattern {
+ @override
+ Element? element;
+
+ @override
+ final Token name;
+
+ AssignedVariablePatternImpl({
+ required this.name,
+ });
+
+ @override
+ Token get beginToken => name;
+
+ @override
+ Token get endToken => name;
+
+ @override
+ ChildEntities get _childEntities =>
+ super._childEntities..addToken('name', name);
+
+ @override
+ E? accept<E>(AstVisitor<E> visitor) {
+ return visitor.visitAssignedVariablePattern(this);
+ }
+
+ @override
+ DartType computePatternSchema(ResolverVisitor resolverVisitor) {
+ throw UnimplementedError('TODO(scheglov)');
+ }
+
+ @override
+ void resolvePattern(
+ ResolverVisitor resolverVisitor,
+ DartType matchedType,
+ SharedMatchContext context,
+ ) {
+ throw UnimplementedError('TODO(scheglov)');
+ }
+
+ @override
+ void visitChildren(AstVisitor visitor) {}
+}
+
/// An assignment expression.
///
/// assignmentExpression ::=
@@ -1135,7 +1184,8 @@
DartType matchedType,
SharedMatchContext context,
) {
- assert(operator.type == TokenType.AMPERSAND_AMPERSAND || operator.type == TokenType.BAR_BAR);
+ assert(operator.type == TokenType.AMPERSAND_AMPERSAND ||
+ operator.type == TokenType.BAR_BAR);
resolverVisitor.analyzeLogicalPattern(
matchedType, context, this, leftOperand, rightOperand,
isAnd: operator.type == TokenType.AMPERSAND_AMPERSAND);
@@ -3352,7 +3402,9 @@
/// A pattern.
///
/// pattern ::=
-/// [BinaryPattern]
+/// [AssignedVariablePattern]
+/// | [BinaryPattern]
+/// | [DeclaredVariablePattern]
/// | [CastPattern]
/// | [ConstantPattern]
/// | [ListPattern]
@@ -3362,7 +3414,6 @@
/// | [PostfixPattern]
/// | [RecordPattern]
/// | [RelationalPattern]
-/// | [VariablePattern]
@experimental
abstract class DartPatternImpl extends AstNodeImpl
implements DartPattern, ListPatternElementImpl {
@@ -3377,7 +3428,7 @@
DartPattern get unParenthesized => this;
/// The variable pattern, itself, or wrapped in a unary pattern.
- VariablePatternImpl? get variablePattern => null;
+ DeclaredVariablePatternImpl? get variablePattern => null;
DartType computePatternSchema(ResolverVisitor resolverVisitor);
@@ -3493,6 +3544,103 @@
bool inDeclarationContext() => true;
}
+/// A variable pattern.
+///
+/// variablePattern ::=
+/// ( 'var' | 'final' | 'final'? [TypeAnnotation])? [Identifier]
+@experimental
+class DeclaredVariablePatternImpl extends DartPatternImpl
+ implements DeclaredVariablePattern {
+ @override
+ VariablePatternBindElementImpl? declaredElement;
+
+ @override
+ final Token? keyword;
+
+ @override
+ final Token name;
+
+ @override
+ final TypeAnnotationImpl? type;
+
+ DeclaredVariablePatternImpl({
+ required this.name,
+ required this.keyword,
+ required this.type,
+ }) {
+ _becomeParentOf(type);
+ }
+
+ @override
+ Token get beginToken => type?.beginToken ?? name;
+
+ @override
+ Token get endToken => name;
+
+ /// If [keyword] is `final`, returns it.
+ Token? get finalToken {
+ final keyword = this.keyword;
+ if (keyword != null && keyword.keyword == Keyword.FINAL) {
+ return keyword;
+ }
+ return null;
+ }
+
+ /// Returns the context for this pattern.
+ /// * Declaration context: [PatternVariableDeclarationImpl]
+ /// * Assignment context: [PatternAssignmentImpl]
+ /// * Matching context: [GuardedPatternImpl]
+ AstNodeImpl? get patternContext {
+ for (DartPatternImpl current = this;;) {
+ final parent = current.parent;
+ if (parent is PatternVariableDeclarationImpl) {
+ return parent;
+ } else if (parent is PatternAssignmentImpl) {
+ return parent;
+ } else if (parent is GuardedPatternImpl) {
+ return parent;
+ } else if (parent is DartPatternImpl) {
+ current = parent;
+ } else {
+ return null;
+ }
+ }
+ }
+
+ @override
+ DeclaredVariablePatternImpl? get variablePattern => this;
+
+ @override
+ ChildEntities get _childEntities => super._childEntities
+ ..addToken('keyword', keyword)
+ ..addNode('type', type)
+ ..addToken('name', name);
+
+ @override
+ E? accept<E>(AstVisitor<E> visitor) =>
+ visitor.visitDeclaredVariablePattern(this);
+
+ @override
+ DartType computePatternSchema(ResolverVisitor resolverVisitor) {
+ return resolverVisitor.analyzeVariablePatternSchema(type?.typeOrThrow);
+ }
+
+ @override
+ void resolvePattern(
+ ResolverVisitor resolverVisitor,
+ DartType matchedType,
+ SharedMatchContext context,
+ ) {
+ resolverVisitor.analyzeVariablePattern(matchedType, context, this,
+ declaredElement, declaredElement?.name, type?.typeOrThrow);
+ }
+
+ @override
+ void visitChildren(AstVisitor visitor) {
+ type?.accept(visitor);
+ }
+}
+
/// A formal parameter with a default value. There are two kinds of parameters
/// that are both represented by this class: named formal parameters and
/// positional formal parameters.
@@ -9726,7 +9874,7 @@
}
@override
- VariablePatternImpl? get variablePattern => pattern.variablePattern;
+ DeclaredVariablePatternImpl? get variablePattern => pattern.variablePattern;
@override
ChildEntities get _childEntities => super._childEntities
@@ -10171,7 +10319,7 @@
Token get endToken => operator;
@override
- VariablePatternImpl? get variablePattern => operand.variablePattern;
+ DeclaredVariablePatternImpl? get variablePattern => operand.variablePattern;
@override
ChildEntities get _childEntities => super._childEntities
@@ -13688,101 +13836,6 @@
}
}
-/// A variable pattern.
-///
-/// variablePattern ::=
-/// ( 'var' | 'final' | [TypeAnnotation])? [Identifier]
-@experimental
-class VariablePatternImpl extends DartPatternImpl implements VariablePattern {
- @override
- VariablePatternBindElementImpl? declaredElement;
-
- @override
- final Token? keyword;
-
- @override
- final Token name;
-
- @override
- final TypeAnnotationImpl? type;
-
- VariablePatternImpl({
- required this.name,
- required this.keyword,
- required this.type,
- }) {
- _becomeParentOf(type);
- }
-
- @override
- Token get beginToken => type?.beginToken ?? name;
-
- @override
- Token get endToken => name;
-
- /// If [keyword] is `final`, returns it.
- Token? get finalToken {
- final keyword = this.keyword;
- if (keyword != null && keyword.keyword == Keyword.FINAL) {
- return keyword;
- }
- return null;
- }
-
- /// Returns the context for this pattern.
- /// * Declaration context: [PatternVariableDeclarationImpl]
- /// * Assignment context: [PatternAssignmentImpl]
- /// * Matching context: [GuardedPatternImpl]
- AstNodeImpl? get patternContext {
- for (DartPatternImpl current = this;;) {
- final parent = current.parent;
- if (parent is PatternVariableDeclarationImpl) {
- return parent;
- } else if (parent is PatternAssignmentImpl) {
- return parent;
- } else if (parent is GuardedPatternImpl) {
- return parent;
- } else if (parent is DartPatternImpl) {
- current = parent;
- } else {
- return null;
- }
- }
- }
-
- @override
- VariablePatternImpl? get variablePattern => this;
-
- @override
- ChildEntities get _childEntities => super._childEntities
- ..addToken('keyword', keyword)
- ..addNode('type', type)
- ..addToken('name', name);
-
- @override
- E? accept<E>(AstVisitor<E> visitor) => visitor.visitVariablePattern(this);
-
- @override
- DartType computePatternSchema(ResolverVisitor resolverVisitor) {
- return resolverVisitor.analyzeVariablePatternSchema(type?.typeOrThrow);
- }
-
- @override
- void resolvePattern(
- ResolverVisitor resolverVisitor,
- DartType matchedType,
- SharedMatchContext context,
- ) {
- resolverVisitor.analyzeVariablePattern(matchedType, context, this,
- declaredElement, declaredElement?.name, type?.typeOrThrow);
- }
-
- @override
- void visitChildren(AstVisitor visitor) {
- type?.accept(visitor);
- }
-}
-
/// A guard in a pattern-based `case` in a `switch` statement or `switch`
/// expression.
///
diff --git a/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart b/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
index 6fb2c98..2115b6f 100644
--- a/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
@@ -69,6 +69,11 @@
}
@override
+ void visitAssignedVariablePattern(AssignedVariablePattern node) {
+ sink.write(node.name.lexeme);
+ }
+
+ @override
void visitAssignmentExpression(AssignmentExpression node) {
_visitNode(node.leftHandSide);
sink.write(' ');
@@ -313,6 +318,13 @@
}
@override
+ void visitDeclaredVariablePattern(DeclaredVariablePattern node) {
+ _visitToken(node.keyword, suffix: ' ');
+ _visitNode(node.type, suffix: ' ');
+ sink.write(node.name.lexeme);
+ }
+
+ @override
void visitDefaultFormalParameter(DefaultFormalParameter node) {
_visitNode(node.parameter);
var separator = node.separator;
@@ -1342,13 +1354,6 @@
}
@override
- void visitVariablePattern(VariablePattern node) {
- _visitToken(node.keyword, suffix: ' ');
- _visitNode(node.type, suffix: ' ');
- sink.write(node.name.lexeme);
- }
-
- @override
void visitWhenClause(WhenClause node) {
sink.write('when ');
_visitNode(node.expression);
diff --git a/pkg/analyzer/lib/src/dart/ast/utilities.dart b/pkg/analyzer/lib/src/dart/ast/utilities.dart
index cce60df..3f8aa9b 100644
--- a/pkg/analyzer/lib/src/dart/ast/utilities.dart
+++ b/pkg/analyzer/lib/src/dart/ast/utilities.dart
@@ -152,6 +152,12 @@
}
@override
+ bool visitAssignedVariablePattern(AssignedVariablePattern node) {
+ var other = _other as DeclaredVariablePattern;
+ return isEqualTokens(node.name, other.name);
+ }
+
+ @override
bool visitAssignmentExpression(AssignmentExpression node) {
AssignmentExpression other = _other as AssignmentExpression;
return isEqualNodes(node.leftHandSide, other.leftHandSide) &&
@@ -421,6 +427,14 @@
}
@override
+ bool visitDeclaredVariablePattern(DeclaredVariablePattern node) {
+ var other = _other as DeclaredVariablePattern;
+ return isEqualTokens(node.keyword, other.keyword) &&
+ isEqualNodes(node.type, other.type) &&
+ isEqualTokens(node.name, other.name);
+ }
+
+ @override
bool visitDefaultFormalParameter(covariant DefaultFormalParameterImpl node) {
var other = _other as DefaultFormalParameterImpl;
return isEqualNodes(node.parameter, other.parameter) &&
@@ -1518,13 +1532,6 @@
}
@override
- bool visitVariablePattern(VariablePattern node) {
- var other = _other as VariablePattern;
- return isEqualNodes(node.type, other.type) &&
- isEqualTokens(node.name, other.name);
- }
-
- @override
bool visitWhenClause(WhenClause node) {
var other = _other as WhenClause;
return isEqualTokens(node.whenKeyword, other.whenKeyword) &&
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index 9ce7eca..653df32 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -6548,7 +6548,7 @@
class VariablePatternBindElementImpl extends VariablePatternElementImpl
implements VariablePatternBindElement {
- final VariablePatternImpl node;
+ final DeclaredVariablePatternImpl node;
VariablePatternBindElementImpl(this.node, super.name, super.offset);
}
diff --git a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
index 3009047..74d499f 100644
--- a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
@@ -381,6 +381,42 @@
}
@override
+ void visitDeclaredVariablePattern(
+ covariant DeclaredVariablePatternImpl node) {
+ node.type?.accept(this);
+
+ final name = node.name.lexeme;
+ if (name != '_') {
+ var element = VariablePatternBindElementImpl(
+ node,
+ name,
+ node.name.offset,
+ );
+ _patternVariables.add(name, element);
+ _elementHolder.enclose(element);
+ _define(element);
+ element.hasImplicitType = node.type == null;
+ element.type = node.type?.type ?? _dynamicType;
+ node.declaredElement = element;
+
+ var patternContext = node.patternContext;
+ if (patternContext is PatternVariableDeclarationImpl) {
+ element.isFinal = patternContext.finalToken != null;
+ var keyword = node.keyword;
+ if (keyword != null) {
+ _errorReporter.reportErrorForToken(
+ CompileTimeErrorCode
+ .VARIABLE_PATTERN_KEYWORD_IN_DECLARATION_CONTEXT,
+ keyword,
+ );
+ }
+ } else {
+ element.isFinal = node.finalToken != null;
+ }
+ }
+ }
+
+ @override
void visitDefaultFormalParameter(covariant DefaultFormalParameterImpl node) {
var normalParameter = node.parameter;
var nameToken = normalParameter.name;
@@ -1268,41 +1304,6 @@
}
}
- @override
- void visitVariablePattern(covariant VariablePatternImpl node) {
- node.type?.accept(this);
-
- final name = node.name.lexeme;
- if (name != '_') {
- var element = VariablePatternBindElementImpl(
- node,
- name,
- node.name.offset,
- );
- _patternVariables.add(name, element);
- _elementHolder.enclose(element);
- _define(element);
- element.hasImplicitType = node.type == null;
- element.type = node.type?.type ?? _dynamicType;
- node.declaredElement = element;
-
- var patternContext = node.patternContext;
- if (patternContext is PatternVariableDeclarationImpl) {
- element.isFinal = patternContext.finalToken != null;
- var keyword = node.keyword;
- if (keyword != null) {
- _errorReporter.reportErrorForToken(
- CompileTimeErrorCode
- .VARIABLE_PATTERN_KEYWORD_IN_DECLARATION_CONTEXT,
- keyword,
- );
- }
- } else {
- element.isFinal = node.finalToken != null;
- }
- }
- }
-
/// Builds the label elements associated with [labels] and stores them in the
/// element holder.
void _buildLabelElements(
diff --git a/pkg/analyzer/lib/src/error/codes.g.dart b/pkg/analyzer/lib/src/error/codes.g.dart
index 0d3090d..9540e53 100644
--- a/pkg/analyzer/lib/src/error/codes.g.dart
+++ b/pkg/analyzer/lib/src/error/codes.g.dart
@@ -4127,6 +4127,15 @@
hasPublishedDocs: true,
);
+ /// Parameters:
+ /// 0: the name of the supertype being extended, implemented, or mixed in
+ static const CompileTimeErrorCode SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY =
+ CompileTimeErrorCode(
+ 'SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY',
+ "The sealed class '{0}' can't be extended, implemented, or mixed in "
+ "outside of its library.",
+ );
+
/// No parameters.
static const CompileTimeErrorCode SET_ELEMENT_FROM_DEFERRED_LIBRARY =
CompileTimeErrorCode(
diff --git a/pkg/analyzer/lib/src/error/error_code_values.g.dart b/pkg/analyzer/lib/src/error/error_code_values.g.dart
index 3078bef..c82fd4c 100644
--- a/pkg/analyzer/lib/src/error/error_code_values.g.dart
+++ b/pkg/analyzer/lib/src/error/error_code_values.g.dart
@@ -414,6 +414,7 @@
CompileTimeErrorCode.RETURN_OF_INVALID_TYPE_FROM_FUNCTION,
CompileTimeErrorCode.RETURN_OF_INVALID_TYPE_FROM_METHOD,
CompileTimeErrorCode.RETURN_WITHOUT_VALUE,
+ CompileTimeErrorCode.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY,
CompileTimeErrorCode.SET_ELEMENT_FROM_DEFERRED_LIBRARY,
CompileTimeErrorCode.SET_ELEMENT_TYPE_NOT_ASSIGNABLE,
CompileTimeErrorCode.SHARED_DEFERRED_PREFIX,
diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart
index 22e2295..9fb931b 100644
--- a/pkg/analyzer/lib/src/fasta/ast_builder.dart
+++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart
@@ -5274,14 +5274,22 @@
}
@override
- void handleVariablePattern(Token? keyword, Token variable) {
+ void handleVariablePattern(Token? keyword, Token variable,
+ {required bool inAssignmentPattern}) {
+ // TODO(paulberry, scheglov): use inAssignmentPattern
debugEvent('VariablePattern');
if (!_featureSet.isEnabled(Feature.patterns)) {
// TODO(paulberry): report the appropriate error
throw UnimplementedError('Patterns not enabled');
}
var type = pop() as TypeAnnotationImpl?;
- push(VariablePatternImpl(keyword: keyword, type: type, name: variable));
+ push(
+ DeclaredVariablePatternImpl(
+ keyword: keyword,
+ type: type,
+ name: variable,
+ ),
+ );
}
@override
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index f7bccc3..37ece5f 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -1405,6 +1405,8 @@
_checkMixinsSuperClass(withClause);
_checkForMixinWithConflictingPrivateMember(withClause, superclass);
_checkForConflictingGenerics(node);
+ _checkForSealedSupertypeOutsideOfLibrary(
+ node, superclass, withClause, implementsClause);
if (node is ClassDeclaration) {
_checkForNoDefaultSuperConstructorImplicit(node);
}
@@ -4204,6 +4206,49 @@
CompileTimeErrorCode.RETURN_IN_GENERATIVE_CONSTRUCTOR, body);
}
+ /// Check that if a direct supertype of a node is sealed, then it must be in
+ /// the same library.
+ ///
+ /// See [CompileTimeErrorCode.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY].
+ void _checkForSealedSupertypeOutsideOfLibrary(
+ NamedCompilationUnitMember node,
+ NamedType? superclass,
+ WithClause? withClause,
+ ImplementsClause? implementsClause) {
+ // TODO (kallentu): Distinguish between mixins and classes and make a
+ // separate error for both.
+ void reportSealedClassOutsideOfLibraryError(ClassElementImpl superclass) {
+ if (superclass.isSealed && superclass.library != _currentLibrary) {
+ errorReporter.reportErrorForNode(
+ CompileTimeErrorCode.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY,
+ node,
+ [superclass.name]);
+ }
+ }
+
+ if (superclass != null) {
+ final superclassType = superclass.type;
+ if (superclassType is InterfaceType) {
+ final superclassElement = superclassType.element;
+ if (superclassElement is ClassElementImpl) {
+ reportSealedClassOutsideOfLibraryError(superclassElement);
+ }
+ }
+ }
+ // TODO (kallentu): Report errors for the [withClause].
+ if (implementsClause != null) {
+ for (NamedType interface in implementsClause.interfaces) {
+ final interfaceType = interface.type;
+ if (interfaceType is InterfaceType) {
+ final interfaceElement = interfaceType.element;
+ if (interfaceElement is ClassElementImpl) {
+ reportSealedClassOutsideOfLibraryError(interfaceElement);
+ }
+ }
+ }
+ }
+ }
+
/// Verify that the elements in the given set [literal] are subtypes of the
/// set's static type.
///
@@ -4980,6 +5025,8 @@
CompileTimeErrorCode.IMPLEMENTS_REPEATED,
);
_checkForConflictingGenerics(node);
+ _checkForSealedSupertypeOutsideOfLibrary(
+ node, null, null, implementsClause);
}
}
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index e75558f..23a6781 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -1179,7 +1179,7 @@
}
@override
- bool isVariablePattern(AstNode pattern) => pattern is VariablePattern;
+ bool isVariablePattern(AstNode pattern) => pattern is DeclaredVariablePattern;
@override
DartType listType(DartType elementType) {
diff --git a/pkg/analyzer/lib/src/lint/linter_visitor.dart b/pkg/analyzer/lib/src/lint/linter_visitor.dart
index cb21af4..4d118f6 100644
--- a/pkg/analyzer/lib/src/lint/linter_visitor.dart
+++ b/pkg/analyzer/lib/src/lint/linter_visitor.dart
@@ -60,6 +60,12 @@
}
@override
+ void visitAssignedVariablePattern(AssignedVariablePattern node) {
+ _runSubscriptions(node, registry._forAssignedVariablePattern);
+ node.visitChildren(this);
+ }
+
+ @override
void visitAssignmentExpression(AssignmentExpression node) {
_runSubscriptions(node, registry._forAssignmentExpression);
node.visitChildren(this);
@@ -234,6 +240,12 @@
}
@override
+ void visitDeclaredVariablePattern(DeclaredVariablePattern node) {
+ _runSubscriptions(node, registry._forDeclaredVariablePattern);
+ node.visitChildren(this);
+ }
+
+ @override
void visitDefaultFormalParameter(DefaultFormalParameter node) {
_runSubscriptions(node, registry._forDefaultFormalParameter);
node.visitChildren(this);
@@ -971,12 +983,6 @@
}
@override
- void visitVariablePattern(VariablePattern node) {
- _runSubscriptions(node, registry._forVariablePattern);
- node.visitChildren(this);
- }
-
- @override
void visitWhenClause(WhenClause node) {
_runSubscriptions(node, registry._forWhenClause);
node.visitChildren(this);
@@ -1028,6 +1034,8 @@
final List<_Subscription<AsExpression>> _forAsExpression = [];
final List<_Subscription<AssertInitializer>> _forAssertInitializer = [];
final List<_Subscription<AssertStatement>> _forAssertStatement = [];
+ final List<_Subscription<AssignedVariablePattern>>
+ _forAssignedVariablePattern = [];
final List<_Subscription<AssignmentExpression>> _forAssignmentExpression = [];
final List<_Subscription<AugmentationImportDirective>>
_forAugmentationImportDirective = [];
@@ -1061,6 +1069,8 @@
final List<_Subscription<ConstructorSelector>> _forConstructorSelector = [];
final List<_Subscription<ContinueStatement>> _forContinueStatement = [];
final List<_Subscription<DeclaredIdentifier>> _forDeclaredIdentifier = [];
+ final List<_Subscription<DeclaredVariablePattern>>
+ _forDeclaredVariablePattern = [];
final List<_Subscription<DefaultFormalParameter>> _forDefaultFormalParameter =
[];
final List<_Subscription<DoStatement>> _forDoStatement = [];
@@ -1212,7 +1222,6 @@
_forVariableDeclarationList = [];
final List<_Subscription<VariableDeclarationStatement>>
_forVariableDeclarationStatement = [];
- final List<_Subscription<VariablePattern>> _forVariablePattern = [];
final List<_Subscription<WhenClause>> _forWhenClause = [];
final List<_Subscription<WhileStatement>> _forWhileStatement = [];
final List<_Subscription<WithClause>> _forWithClause = [];
@@ -1245,6 +1254,11 @@
_forAssertStatement.add(_Subscription(linter, visitor, _getTimer(linter)));
}
+ void addAssignedVariablePattern(LintRule linter, AstVisitor visitor) {
+ _forAssignedVariablePattern
+ .add(_Subscription(linter, visitor, _getTimer(linter)));
+ }
+
void addAssignmentExpression(LintRule linter, AstVisitor visitor) {
_forAssignmentExpression
.add(_Subscription(linter, visitor, _getTimer(linter)));
@@ -1373,6 +1387,11 @@
.add(_Subscription(linter, visitor, _getTimer(linter)));
}
+ void addDeclaredVariablePattern(LintRule linter, AstVisitor visitor) {
+ _forDeclaredVariablePattern
+ .add(_Subscription(linter, visitor, _getTimer(linter)));
+ }
+
void addDefaultFormalParameter(LintRule linter, AstVisitor visitor) {
_forDefaultFormalParameter
.add(_Subscription(linter, visitor, _getTimer(linter)));
@@ -1914,10 +1933,6 @@
.add(_Subscription(linter, visitor, _getTimer(linter)));
}
- void addVariablePattern(LintRule linter, AstVisitor visitor) {
- _forVariablePattern.add(_Subscription(linter, visitor, _getTimer(linter)));
- }
-
void addWhenClause(LintRule linter, AstVisitor visitor) {
_forWhenClause.add(_Subscription(linter, visitor, _getTimer(linter)));
}
diff --git a/pkg/analyzer/lib/src/services/top_level_declarations.dart b/pkg/analyzer/lib/src/services/top_level_declarations.dart
index 0b9e97d..aa6a420 100644
--- a/pkg/analyzer/lib/src/services/top_level_declarations.dart
+++ b/pkg/analyzer/lib/src/services/top_level_declarations.dart
@@ -21,7 +21,12 @@
/// Return the first public library that that exports (but does not necessary
/// declare) [element].
- Future<LibraryElement?> publiclyExporting(Element element) async {
+ Future<LibraryElement?> publiclyExporting(Element element,
+ {Map<Element, LibraryElement?>? resultCache}) async {
+ if (resultCache?.containsKey(element) ?? false) {
+ return resultCache![element];
+ }
+
var declarationFilePath = element.source?.fullName;
if (declarationFilePath == null) {
return null;
@@ -48,6 +53,7 @@
}
if (_findElement(elementResult.element, element.displayName) != null) {
+ resultCache?[element] = elementResult.element;
return elementResult.element;
}
}
diff --git a/pkg/analyzer/lib/src/summary/api_signature.dart b/pkg/analyzer/lib/src/summary/api_signature.dart
index 69bf451..e5022fd 100644
--- a/pkg/analyzer/lib/src/summary/api_signature.dart
+++ b/pkg/analyzer/lib/src/summary/api_signature.dart
@@ -101,6 +101,14 @@
addBytes(bytes);
}
+ /// Collect a string list, with the length.
+ void addStringList(List<String> values) {
+ addInt(values.length);
+ for (var value in values) {
+ addString(value);
+ }
+ }
+
/// Collect the given [Uint32List].
void addUint32List(Uint32List data) {
addBytes(data.buffer.asUint8List());
diff --git a/pkg/analyzer/lib/src/summary2/bundle_reader.dart b/pkg/analyzer/lib/src/summary2/bundle_reader.dart
index f6bc15b..633824f 100644
--- a/pkg/analyzer/lib/src/summary2/bundle_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/bundle_reader.dart
@@ -1634,19 +1634,16 @@
if (memberFlags == Tag.MemberLegacyWithTypeArguments ||
memberFlags == Tag.MemberWithTypeArguments) {
- var arguments = _readTypeList();
- // TODO(scheglov) why to check for empty? If we have this flags.
- if (arguments.isNotEmpty) {
- var typeParameters =
- (element.enclosingElement as TypeParameterizedElement)
- .typeParameters;
- var substitution = Substitution.fromPairs(typeParameters, arguments);
- element =
- ExecutableMember.from2(element as ExecutableElement, substitution);
- }
+ element as ExecutableElement;
+ var enclosing = element.enclosingElement as TypeParameterizedElement;
+ var typeParameters = enclosing.typeParameters;
+ var typeArguments = _readTypeList();
+ var substitution = Substitution.fromPairs(typeParameters, typeArguments);
+ element = ExecutableMember.from2(element, substitution);
}
- if (memberFlags == Tag.MemberLegacyWithTypeArguments) {
+ if (memberFlags == Tag.MemberLegacyWithoutTypeArguments ||
+ memberFlags == Tag.MemberLegacyWithTypeArguments) {
return Member.legacy(element);
}
diff --git a/pkg/analyzer/lib/src/summary2/bundle_writer.dart b/pkg/analyzer/lib/src/summary2/bundle_writer.dart
index 3399cf0..89760a2 100644
--- a/pkg/analyzer/lib/src/summary2/bundle_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/bundle_writer.dart
@@ -598,14 +598,20 @@
element.substitution.map,
);
- writeByte(
- isLegacy
- ? Tag.MemberLegacyWithTypeArguments
- : Tag.MemberWithTypeArguments,
- );
-
- _writeElement(declaration);
- _writeTypeList(typeArguments);
+ if (isLegacy) {
+ if (typeArguments.isEmpty) {
+ writeByte(Tag.MemberLegacyWithoutTypeArguments);
+ _writeElement(declaration);
+ } else {
+ writeByte(Tag.MemberLegacyWithTypeArguments);
+ _writeElement(declaration);
+ _writeTypeList(typeArguments);
+ }
+ } else {
+ writeByte(Tag.MemberWithTypeArguments);
+ _writeElement(declaration);
+ _writeTypeList(typeArguments);
+ }
} else {
writeByte(Tag.RawElement);
_writeElement(element);
diff --git a/pkg/analyzer/lib/src/summary2/element_builder.dart b/pkg/analyzer/lib/src/summary2/element_builder.dart
index fc92973..7b00a9c 100644
--- a/pkg/analyzer/lib/src/summary2/element_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/element_builder.dart
@@ -91,7 +91,10 @@
var element = ClassElementImpl(name, nameToken.offset);
element.isAbstract = node.abstractKeyword != null;
element.isMacro = node.macroKeyword != null;
- element.isSealed = node.sealedKeyword != null;
+ if (node.sealedKeyword != null) {
+ element.isSealed = true;
+ element.isAbstract = true;
+ }
element.metadata = _buildAnnotations(node.metadata);
_setCodeRange(element, node);
_setDocumentation(element, node);
@@ -125,7 +128,10 @@
var element = ClassElementImpl(name, nameToken.offset);
element.isAbstract = node.abstractKeyword != null;
element.isMacro = node.macroKeyword != null;
- element.isSealed = node.sealedKeyword != null;
+ if (node.sealedKeyword != null) {
+ element.isSealed = true;
+ element.isAbstract = true;
+ }
element.isMixinApplication = true;
element.metadata = _buildAnnotations(node.metadata);
_setCodeRange(element, node);
diff --git a/pkg/analyzer/lib/src/test_utilities/find_node.dart b/pkg/analyzer/lib/src/test_utilities/find_node.dart
index 478cd3a..8d5337c 100644
--- a/pkg/analyzer/lib/src/test_utilities/find_node.dart
+++ b/pkg/analyzer/lib/src/test_utilities/find_node.dart
@@ -216,6 +216,10 @@
return _node(search, (n) => n is DeclaredIdentifier);
}
+ DeclaredVariablePattern declaredVariablePattern(String search) {
+ return _node(search, (n) => n is DeclaredVariablePattern);
+ }
+
DefaultFormalParameter defaultParameter(String search) {
return _node(search, (n) => n is DefaultFormalParameter);
}
@@ -732,10 +736,6 @@
return _node(search, (n) => n is VariableDeclarationStatement);
}
- VariablePattern variablePattern(String search) {
- return _node(search, (n) => n is VariablePattern);
- }
-
WhenClause whenClause(String search) {
return _node(search, (n) => n is WhenClause);
}
diff --git a/pkg/analyzer/messages.yaml b/pkg/analyzer/messages.yaml
index 60ffd6e..14c4cdd 100644
--- a/pkg/analyzer/messages.yaml
+++ b/pkg/analyzer/messages.yaml
@@ -12557,6 +12557,11 @@
return 0;
}
```
+ SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY:
+ problemMessage: "The sealed class '{0}' can't be extended, implemented, or mixed in outside of its library."
+ comment: |-
+ Parameters:
+ 0: the name of the supertype being extended, implemented, or mixed in
SET_ELEMENT_TYPE_NOT_ASSIGNABLE:
problemMessage: "The element type '{0}' can't be assigned to the set type '{1}'."
hasPublishedDocs: true
diff --git a/pkg/analyzer/pubspec.yaml b/pkg/analyzer/pubspec.yaml
index 0ca3492..664232f 100644
--- a/pkg/analyzer/pubspec.yaml
+++ b/pkg/analyzer/pubspec.yaml
@@ -1,5 +1,5 @@
name: analyzer
-version: 5.2.0
+version: 5.3.1
description: This package provides a library that performs static analysis of Dart code.
repository: https://github.com/dart-lang/sdk/tree/main/pkg/analyzer
@@ -7,8 +7,8 @@
sdk: '>=2.17.0 <3.0.0'
dependencies:
- _fe_analyzer_shared: ^50.0.0
- collection: ^1.15.0
+ _fe_analyzer_shared: ^51.0.0
+ collection: ^1.17.0
convert: ^3.0.0
crypto: ^3.0.0
glob: ^2.0.0
diff --git a/pkg/analyzer/test/generated/patterns_parser_test.dart b/pkg/analyzer/test/generated/patterns_parser_test.dart
index 9512a99..59d9386 100644
--- a/pkg/analyzer/test/generated/patterns_parser_test.dart
+++ b/pkg/analyzer/test/generated/patterns_parser_test.dart
@@ -578,7 +578,7 @@
caseKeyword: case
guardedPattern: GuardedPattern
pattern: CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
asToken: as
@@ -627,7 +627,7 @@
assertParsedNodeText(node, r'''
BinaryPattern
leftOperand: CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -639,7 +639,7 @@
token: double
question: ?
operator: &&
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: Object
@@ -660,7 +660,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -668,7 +668,7 @@
name: _
operator: &&
rightOperand: CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: double
@@ -695,7 +695,7 @@
assertParsedNodeText(node, r'''
BinaryPattern
leftOperand: CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -707,7 +707,7 @@
token: double
question: ?
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: Object
@@ -728,7 +728,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -736,7 +736,7 @@
name: _
operator: ||
rightOperand: CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: double
@@ -840,7 +840,7 @@
fieldName: RecordPatternFieldName
colon: :
pattern: CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: f
asToken: as
@@ -928,7 +928,7 @@
fieldName: RecordPatternFieldName
colon: :
pattern: CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: n
asToken: as
@@ -2965,7 +2965,7 @@
caseClause: CaseClause
caseKeyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
whenClause: WhenClause
whenKeyword: when
@@ -3003,7 +3003,7 @@
caseClause: CaseClause
caseKeyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
whenClause: WhenClause
whenKeyword: when
@@ -3158,7 +3158,7 @@
assertParsedNodeText(node, r'''
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
whenClause: WhenClause
whenKeyword: when
@@ -3184,7 +3184,7 @@
assertParsedNodeText(node, r'''
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
arrow: =>
expression: FunctionExpression
@@ -3235,7 +3235,7 @@
SwitchPatternCase
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
whenClause: WhenClause
whenKeyword: when
@@ -3270,7 +3270,7 @@
pattern: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
name: _
rightBracket: ]
whenClause: WhenClause
@@ -3299,7 +3299,7 @@
key: SimpleStringLiteral
literal: 'x'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: _
rightBracket: }
whenClause: WhenClause
@@ -3331,7 +3331,7 @@
fieldName: RecordPatternFieldName
name: bar
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
rightParenthesis: )
whenClause: WhenClause
@@ -3355,7 +3355,7 @@
guardedPattern: GuardedPattern
pattern: ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
rightParenthesis: )
whenClause: WhenClause
@@ -3377,7 +3377,7 @@
assertParsedNodeText(node, r'''
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
whenClause: WhenClause
whenKeyword: when
@@ -3408,7 +3408,7 @@
assertParsedNodeText(node, r'''
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
whenClause: WhenClause
whenKeyword: when
@@ -3443,7 +3443,7 @@
cases
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
whenClause: WhenClause
whenKeyword: when
@@ -3493,7 +3493,7 @@
literal: 0
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
arrow: =>
expression: IntegerLiteral
@@ -3520,9 +3520,9 @@
rightBracket: >
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
name: a
- VariablePattern
+ DeclaredVariablePattern
name: b
rightBracket: ]
''');
@@ -3567,9 +3567,9 @@
ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
name: a
- VariablePattern
+ DeclaredVariablePattern
name: b
rightBracket: ]
''');
@@ -3708,9 +3708,9 @@
rightBracket: >
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
name: a
- VariablePattern
+ DeclaredVariablePattern
name: b
rightBracket: ]
''');
@@ -3755,9 +3755,9 @@
ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
name: a
- VariablePattern
+ DeclaredVariablePattern
name: b
rightBracket: ]
''');
@@ -4291,14 +4291,14 @@
caseKeyword: case
guardedPattern: GuardedPattern
pattern: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
question: ?
name: _
operator: &&
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: double
@@ -4320,21 +4320,21 @@
assertParsedNodeText(node, r'''
BinaryPattern
leftOperand: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
question: ?
name: _
operator: &&
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: double
question: ?
name: _
operator: &&
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: Object
@@ -4356,21 +4356,21 @@
assertParsedNodeText(node, r'''
BinaryPattern
leftOperand: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
question: ?
name: _
operator: &&
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: double
question: ?
name: _
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: Object
@@ -4391,7 +4391,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -4399,14 +4399,14 @@
name: _
operator: ||
rightOperand: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: double
question: ?
name: _
operator: &&
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: Object
@@ -4427,14 +4427,14 @@
caseKeyword: case
guardedPattern: GuardedPattern
pattern: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
question: ?
name: _
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: double
@@ -4456,21 +4456,21 @@
assertParsedNodeText(node, r'''
BinaryPattern
leftOperand: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
question: ?
name: _
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: double
question: ?
name: _
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: Object
@@ -4504,13 +4504,13 @@
key: SimpleStringLiteral
literal: 'a'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: a
MapPatternEntry
key: SimpleStringLiteral
literal: 'b'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: b
rightBracket: }
''');
@@ -4565,13 +4565,13 @@
key: SimpleStringLiteral
literal: 'a'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: a
MapPatternEntry
key: SimpleStringLiteral
literal: 'b'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: b
rightBracket: }
''');
@@ -4592,13 +4592,13 @@
key: SimpleStringLiteral
literal: 'a'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: a
MapPatternEntry
key: SimpleStringLiteral
literal: 'b'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: b
rightBracket: }
''');
@@ -4750,13 +4750,13 @@
key: SimpleStringLiteral
literal: 'a'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: a
MapPatternEntry
key: SimpleStringLiteral
literal: 'b'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: b
rightBracket: }
''');
@@ -4791,13 +4791,13 @@
key: SimpleStringLiteral
literal: 'a'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: a
MapPatternEntry
key: SimpleStringLiteral
literal: 'b'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: b
rightBracket: }
''');
@@ -4889,7 +4889,7 @@
caseKeyword: case
guardedPattern: GuardedPattern
pattern: PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: y
operator: !
@@ -5099,7 +5099,7 @@
fieldName: RecordPatternFieldName
colon: :
pattern: PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: f
operator: !
@@ -5178,7 +5178,7 @@
fieldName: RecordPatternFieldName
colon: :
pattern: PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: n
operator: !
@@ -5250,7 +5250,7 @@
caseKeyword: case
guardedPattern: GuardedPattern
pattern: PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: y
operator: ?
@@ -5460,7 +5460,7 @@
fieldName: RecordPatternFieldName
colon: :
pattern: PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: f
operator: ?
@@ -5539,7 +5539,7 @@
fieldName: RecordPatternFieldName
colon: :
pattern: PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: n
operator: ?
@@ -6160,7 +6160,7 @@
assertParsedNodeText(node, r'''
ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
''');
@@ -6221,7 +6221,7 @@
assertParsedNodeText(node, r'''
ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
''');
@@ -6286,10 +6286,10 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: b
rightParenthesis: )
inKeyword: in
@@ -6321,10 +6321,10 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: b
rightParenthesis: )
inKeyword: in
@@ -6353,10 +6353,10 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: b
rightParenthesis: )
inKeyword: in
@@ -6391,10 +6391,10 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: b
rightParenthesis: )
inKeyword: in
@@ -6423,10 +6423,10 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: b
rightParenthesis: )
equals: =
@@ -6458,10 +6458,10 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: b
rightParenthesis: )
equals: =
@@ -6513,7 +6513,7 @@
fieldName: RecordPatternFieldName
name: f
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
equals: =
@@ -6537,7 +6537,7 @@
pattern: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
name: a
rightBracket: ]
equals: =
@@ -6565,7 +6565,7 @@
key: SimpleStringLiteral
literal: 'a'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: a
rightBracket: }
equals: =
@@ -6588,7 +6588,7 @@
keyword: final
pattern: ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
equals: =
@@ -6613,7 +6613,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
equals: =
@@ -6644,7 +6644,7 @@
fieldName: RecordPatternFieldName
name: f
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
equals: =
@@ -6668,7 +6668,7 @@
pattern: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
name: a
rightBracket: ]
equals: =
@@ -6696,7 +6696,7 @@
key: SimpleStringLiteral
literal: 'a'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: a
rightBracket: }
equals: =
@@ -6719,7 +6719,7 @@
keyword: var
pattern: ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
equals: =
@@ -6744,7 +6744,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
equals: =
@@ -6781,7 +6781,7 @@
fieldName: RecordPatternFieldName
name: f
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
equals: =
@@ -6811,7 +6811,7 @@
pattern: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
name: a
rightBracket: ]
equals: =
@@ -6845,7 +6845,7 @@
key: SimpleStringLiteral
literal: 'a'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: a
rightBracket: }
equals: =
@@ -6874,7 +6874,7 @@
keyword: final
pattern: ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
equals: =
@@ -6905,7 +6905,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
equals: =
@@ -6942,7 +6942,7 @@
fieldName: RecordPatternFieldName
name: f
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
equals: =
@@ -6972,7 +6972,7 @@
pattern: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
name: a
rightBracket: ]
equals: =
@@ -7006,7 +7006,7 @@
key: SimpleStringLiteral
literal: 'a'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: a
rightBracket: }
equals: =
@@ -7035,7 +7035,7 @@
keyword: var
pattern: ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
equals: =
@@ -7066,7 +7066,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
equals: =
@@ -7102,7 +7102,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
''');
@@ -7120,10 +7120,10 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: b
rightParenthesis: )
''');
@@ -7251,7 +7251,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
rightParenthesis: )
''');
@@ -7269,10 +7269,10 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: b
rightParenthesis: )
''');
@@ -7836,7 +7836,7 @@
elements
RestPatternElement
operator: ...
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
rightBracket: ]
@@ -7862,7 +7862,7 @@
elements
RestPatternElement
operator: ...
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
rightBracket: }
@@ -7889,7 +7889,7 @@
f(x) => switch(x) {};
''');
var node = findNode.switchExpression('switch');
- assertParsedNodeText(node, '''
+ assertParsedNodeText(node, r'''
SwitchExpression
switchKeyword: switch
leftParenthesis: (
@@ -7908,7 +7908,7 @@
};
''');
var node = findNode.switchExpression('switch');
- assertParsedNodeText(node, '''
+ assertParsedNodeText(node, r'''
SwitchExpression
switchKeyword: switch
leftParenthesis: (
@@ -7919,7 +7919,7 @@
cases
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
whenClause: WhenClause
whenKeyword: when
@@ -7939,7 +7939,7 @@
};
''');
var node = findNode.switchExpression('switch');
- assertParsedNodeText(node, '''
+ assertParsedNodeText(node, r'''
SwitchExpression
switchKeyword: switch
leftParenthesis: (
@@ -7950,7 +7950,7 @@
cases
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
arrow: =>
expression: IntegerLiteral
@@ -7966,7 +7966,7 @@
};
''');
var node = findNode.switchExpression('switch');
- assertParsedNodeText(node, '''
+ assertParsedNodeText(node, r'''
SwitchExpression
switchKeyword: switch
leftParenthesis: (
@@ -7977,7 +7977,7 @@
cases
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
arrow: =>
expression: IntegerLiteral
@@ -7994,7 +7994,7 @@
};
''');
var node = findNode.switchExpression('switch');
- assertParsedNodeText(node, '''
+ assertParsedNodeText(node, r'''
SwitchExpression
switchKeyword: switch
leftParenthesis: (
@@ -8005,7 +8005,7 @@
cases
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8015,7 +8015,7 @@
literal: 0
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
arrow: =>
expression: IntegerLiteral
@@ -8035,7 +8035,7 @@
ParenthesizedPattern
leftParenthesis: (
pattern: CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: y
asToken: as
type: NamedType
@@ -8045,172 +8045,6 @@
''');
}
- test_variable_bare_insideNullAssert() {
- _parse('''
-void f(x) {
- var (y!) = x;
-}
-''');
- var node = findNode.patternVariableDeclaration('= x').pattern;
- assertParsedNodeText(node, r'''
-ParenthesizedPattern
- leftParenthesis: (
- pattern: PostfixPattern
- operand: VariablePattern
- name: y
- operator: !
- rightParenthesis: )
-''');
- }
-
- test_variable_final_typed_insideCase() {
- _parse('''
-void f(x) {
- switch (x) {
- case final int y:
- break;
- }
-}
-''');
- var node = findNode.singleGuardedPattern.pattern;
- assertParsedNodeText(node, r'''
-VariablePattern
- keyword: final
- type: NamedType
- name: SimpleIdentifier
- token: int
- name: y
-''');
- }
-
- test_variable_final_typed_insideCast() {
- _parse('''
-void f(x) {
- switch (x) {
- case final int y as Object:
- break;
- }
-}
-''');
- var node = findNode.singleGuardedPattern.pattern;
- assertParsedNodeText(node, r'''
-CastPattern
- pattern: VariablePattern
- keyword: final
- type: NamedType
- name: SimpleIdentifier
- token: int
- name: y
- asToken: as
- type: NamedType
- name: SimpleIdentifier
- token: Object
-''');
- }
-
- test_variable_final_typed_insideIfCase() {
- _parse('''
-void f(x) {
- if (x case final int y) {}
-}
-''');
- var node = findNode.caseClause('case');
- assertParsedNodeText(node, r'''
-CaseClause
- caseKeyword: case
- guardedPattern: GuardedPattern
- pattern: VariablePattern
- keyword: final
- type: NamedType
- name: SimpleIdentifier
- token: int
- name: y
-''');
- }
-
- test_variable_final_typed_insideNullAssert() {
- _parse('''
-void f(x) {
- switch (x) {
- case final int y!:
- break;
- }
-}
-''');
- var node = findNode.singleGuardedPattern.pattern;
- assertParsedNodeText(node, r'''
-PostfixPattern
- operand: VariablePattern
- keyword: final
- type: NamedType
- name: SimpleIdentifier
- token: int
- name: y
- operator: !
-''');
- }
-
- test_variable_final_typed_insideNullCheck() {
- _parse('''
-void f(x) {
- switch (x) {
- case final int y?:
- break;
- }
-}
-''');
- var node = findNode.singleGuardedPattern.pattern;
- assertParsedNodeText(node, r'''
-PostfixPattern
- operand: VariablePattern
- keyword: final
- type: NamedType
- name: SimpleIdentifier
- token: int
- name: y
- operator: ?
-''');
- }
-
- test_variable_final_untyped_insideCase() {
- _parse('''
-void f(x) {
- switch (x) {
- case final y:
- break;
- }
-}
-''');
- var node = findNode.singleGuardedPattern.pattern;
- assertParsedNodeText(node, r'''
-VariablePattern
- keyword: final
- name: y
-''');
- }
-
- test_variable_final_untyped_insideCast() {
- _parse('''
-void f(x) {
- switch (x) {
- case final y as Object:
- break;
- }
-}
-''');
- var node = findNode.singleGuardedPattern.pattern;
- assertParsedNodeText(node, r'''
-CastPattern
- pattern: VariablePattern
- keyword: final
- name: y
- asToken: as
- type: NamedType
- name: SimpleIdentifier
- token: Object
-''');
- }
-
test_variable_final_untyped_insideIfCase() {
_parse('''
void f(x) {
@@ -8222,7 +8056,7 @@
CaseClause
caseKeyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
name: y
''');
@@ -8240,7 +8074,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: final
name: y
operator: !
@@ -8259,7 +8093,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: final
name: y
operator: ?
@@ -8277,7 +8111,7 @@
''');
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8297,7 +8131,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8320,7 +8154,7 @@
CaseClause
caseKeyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8340,7 +8174,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8361,7 +8195,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8383,7 +8217,7 @@
assertParsedNodeText(node, r'''
GuardedPattern
pattern: CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: when
@@ -8425,7 +8259,7 @@
var node = findNode.singleGuardedPattern;
assertParsedNodeText(node, r'''
GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8448,7 +8282,7 @@
''');
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8468,7 +8302,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8491,7 +8325,7 @@
CaseClause
caseKeyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8513,7 +8347,7 @@
ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8534,7 +8368,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8562,7 +8396,7 @@
expression: IntegerLiteral
literal: 1
operator: &&
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8582,7 +8416,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8610,7 +8444,7 @@
expression: IntegerLiteral
literal: 1
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8636,7 +8470,7 @@
key: SimpleStringLiteral
literal: 'a'
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8657,7 +8491,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8678,7 +8512,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8711,7 +8545,7 @@
fieldName: RecordPatternFieldName
name: f
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8743,7 +8577,7 @@
RecordPatternField
fieldName: RecordPatternFieldName
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8765,7 +8599,7 @@
assertParsedNodeText(node, r'''
ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8792,7 +8626,7 @@
fieldName: RecordPatternFieldName
name: n
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8822,7 +8656,7 @@
RecordPatternField
fieldName: RecordPatternFieldName
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8850,7 +8684,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8875,7 +8709,7 @@
''');
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: _
@@ -8895,7 +8729,7 @@
var node = findNode.singleGuardedPattern;
assertParsedNodeText(node, r'''
GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8923,7 +8757,7 @@
var node = findNode.singleGuardedPattern;
assertParsedNodeText(node, r'''
GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8946,7 +8780,7 @@
''');
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8966,7 +8800,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -8989,7 +8823,7 @@
''');
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
keyword: var
name: y
''');
@@ -9007,7 +8841,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
asToken: as
@@ -9028,7 +8862,7 @@
CaseClause
caseKeyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
''');
@@ -9046,7 +8880,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: y
operator: !
@@ -9065,7 +8899,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: y
operator: ?
@@ -9084,7 +8918,7 @@
var node = findNode.singleGuardedPattern;
assertParsedNodeText(node, r'''
GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
whenClause: WhenClause
whenKeyword: when
@@ -9104,7 +8938,7 @@
''');
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
name: _
''');
}
@@ -9121,7 +8955,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
asToken: as
type: NamedType
@@ -9141,7 +8975,7 @@
CaseClause
caseKeyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
''');
}
@@ -9158,7 +8992,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
name: _
operator: !
''');
@@ -9176,7 +9010,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
name: _
operator: ?
''');
@@ -9193,7 +9027,7 @@
''');
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
keyword: final
type: NamedType
name: SimpleIdentifier
@@ -9214,7 +9048,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
type: NamedType
name: SimpleIdentifier
@@ -9238,7 +9072,7 @@
CaseClause
caseKeyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
type: NamedType
name: SimpleIdentifier
@@ -9259,7 +9093,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: final
type: NamedType
name: SimpleIdentifier
@@ -9281,7 +9115,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: final
type: NamedType
name: SimpleIdentifier
@@ -9302,7 +9136,7 @@
''');
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
keyword: final
name: _
''');
@@ -9320,7 +9154,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
name: _
asToken: as
@@ -9341,7 +9175,7 @@
CaseClause
caseKeyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
name: _
''');
@@ -9359,7 +9193,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: final
name: _
operator: !
@@ -9378,7 +9212,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: final
name: _
operator: ?
@@ -9396,7 +9230,7 @@
''');
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -9416,7 +9250,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -9439,7 +9273,7 @@
CaseClause
caseKeyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -9459,7 +9293,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -9480,7 +9314,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -9500,7 +9334,7 @@
''');
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
keyword: var
name: _
''');
@@ -9518,7 +9352,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: _
asToken: as
@@ -9539,7 +9373,7 @@
CaseClause
caseKeyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: _
''');
@@ -9557,7 +9391,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: _
operator: !
@@ -9576,7 +9410,7 @@
var node = findNode.singleGuardedPattern.pattern;
assertParsedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: _
operator: ?
diff --git a/pkg/analyzer/test/src/dart/analysis/unlinked_api_signature_test.dart b/pkg/analyzer/test/src/dart/analysis/unlinked_api_signature_test.dart
index 4e29972..f7fe411 100644
--- a/pkg/analyzer/test/src/dart/analysis/unlinked_api_signature_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/unlinked_api_signature_test.dart
@@ -364,6 +364,22 @@
''');
}
+ test_class_method_body_block_invokesSuperSelf_false_differentName() {
+ _assertSameSignature('''
+class A {
+ void foo() {
+ super.bar();
+ }
+}
+''', '''
+class A {
+ void foo() {
+ super.bar2();
+ }
+}
+''');
+ }
+
test_class_modifier() {
_assertNotSameSignature(r'''
class C {}
@@ -457,18 +473,6 @@
''');
}
- test_classLike_method_body_block_invokesSuperSelf_false_differentName() {
- _assertSameSignature_classLike(r'''
-void foo() {
- super.bar();
-}
-''', r'''
-void foo() {
- super.bar2();
-}
-''');
- }
-
test_classLike_method_body_block_invokesSuperSelf_falseToTrue() {
_assertNotSameSignature_classLike(r'''
void foo() {}
@@ -1314,6 +1318,116 @@
''');
}
+ test_mixin_superInvokedNames_indexRead_add() {
+ _assertNotSameSignature(r'''
+mixin M {
+ void foo() {
+ super[0] = 0;
+ }
+}
+''', r'''
+mixin M {
+ void foo() {
+ super[0];
+ super[0] = 0;
+ }
+}
+''');
+ }
+
+ test_mixin_superInvokedNames_indexWrite_add() {
+ _assertNotSameSignature(r'''
+mixin M {
+ void foo() {
+ super[0];
+ }
+}
+''', r'''
+mixin M {
+ void foo() {
+ super[0];
+ super[0] = 0;
+ }
+}
+''');
+ }
+
+ test_mixin_superInvokedNames_methodInvocation_add() {
+ _assertNotSameSignature(r'''
+mixin M {
+ void foo() {}
+}
+''', r'''
+mixin M {
+ void foo() {
+ super.bar();
+ }
+}
+''');
+ }
+
+ test_mixin_superInvokedNames_methodInvocation_change() {
+ _assertNotSameSignature(r'''
+mixin M {
+ void foo() {
+ super.bar();
+ }
+}
+''', r'''
+mixin M {
+ void foo() {
+ super.bar2();
+ }
+}
+''');
+ }
+
+ test_mixin_superInvokedNames_methodInvocation_remove() {
+ _assertNotSameSignature(r'''
+mixin M {
+ void foo() {
+ super.bar();
+ }
+}
+''', r'''
+mixin M {
+ void foo() {}
+}
+''');
+ }
+
+ test_mixin_superInvokedNames_propertyRead_change() {
+ _assertNotSameSignature(r'''
+mixin M {
+ void foo() {
+ super.bar;
+ }
+}
+''', r'''
+mixin M {
+ void foo() {
+ super.bar2;
+ }
+}
+''');
+ }
+
+ test_mixin_superInvokedNames_propertyWrite_change() {
+ _assertNotSameSignature(r'''
+mixin M {
+ void foo() {
+ super.bar = 0;
+ }
+}
+''', r'''
+mixin M {
+ void foo() {
+ super.bar2 = 2;
+ }
+}
+''');
+ }
+
test_topLevelVariable_final_add() {
_assertNotSameSignature(r'''
int a = 0;
diff --git a/pkg/analyzer/test/src/dart/ast/to_source_visitor_test.dart b/pkg/analyzer/test/src/dart/ast/to_source_visitor_test.dart
index e1f7ed0..3a3dad2 100644
--- a/pkg/analyzer/test/src/dart/ast/to_source_visitor_test.dart
+++ b/pkg/analyzer/test/src/dart/ast/to_source_visitor_test.dart
@@ -3737,7 +3737,7 @@
''');
_assertSource(
'int? _',
- findNode.variablePattern('int?'),
+ findNode.declaredVariablePattern('int?'),
);
}
diff --git a/pkg/analyzer/test/src/dart/resolution/binary_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/binary_pattern_test.dart
index 2a859a1..5ec3cf9 100644
--- a/pkg/analyzer/test/src/dart/resolution/binary_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/binary_pattern_test.dart
@@ -23,7 +23,7 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -32,7 +32,7 @@
type: int
name: _
operator: &&
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: double
@@ -55,7 +55,7 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -64,7 +64,7 @@
type: int
name: _
operator: &&
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: double
@@ -89,12 +89,12 @@
pattern: ParenthesizedPattern
leftParenthesis: (
pattern: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
name: a
declaredElement: hasImplicitType a@18
type: int
operator: &&
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
name: b
declaredElement: hasImplicitType b@23
type: int
@@ -116,7 +116,7 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -125,7 +125,7 @@
type: int
name: _
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: double
@@ -148,7 +148,7 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -157,7 +157,7 @@
type: int
name: _
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: double
diff --git a/pkg/analyzer/test/src/dart/resolution/cast_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/cast_pattern_test.dart
index 379c797..496c965 100644
--- a/pkg/analyzer/test/src/dart/resolution/cast_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/cast_pattern_test.dart
@@ -23,7 +23,7 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@29
@@ -79,7 +79,7 @@
pattern: ParenthesizedPattern
leftParenthesis: (
pattern: CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
declaredElement: hasImplicitType a@19
type: int
diff --git a/pkg/analyzer/test/src/dart/resolution/variable_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/declared_variable_pattern_test.dart
similarity index 91%
rename from pkg/analyzer/test/src/dart/resolution/variable_pattern_test.dart
rename to pkg/analyzer/test/src/dart/resolution/declared_variable_pattern_test.dart
index f36cd05f..c48bbf1 100644
--- a/pkg/analyzer/test/src/dart/resolution/variable_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/declared_variable_pattern_test.dart
@@ -8,12 +8,12 @@
main() {
defineReflectiveSuite(() {
- defineReflectiveTests(VariablePatternResolutionTest);
+ defineReflectiveTests(DeclaredVariablePatternResolutionTest);
});
}
@reflectiveTest
-class VariablePatternResolutionTest extends PubPackageResolutionTest {
+class DeclaredVariablePatternResolutionTest extends PubPackageResolutionTest {
test_final_switchCase() async {
await assertNoErrorsInCode(r'''
void f(int x) {
@@ -25,7 +25,7 @@
''');
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
keyword: final
name: y
declaredElement: hasImplicitType isFinal y@46
@@ -44,7 +44,7 @@
''');
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
keyword: final
type: NamedType
name: SimpleIdentifier
@@ -69,7 +69,7 @@
''');
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -93,7 +93,7 @@
''');
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -115,7 +115,7 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@54
@@ -137,7 +137,7 @@
''');
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@95
@@ -153,7 +153,7 @@
''');
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@33
@@ -169,7 +169,7 @@
''');
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@36
@@ -185,7 +185,7 @@
''');
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@34
@@ -207,7 +207,7 @@
''');
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@95
@@ -226,7 +226,7 @@
''');
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
-VariablePattern
+DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@44
@@ -246,7 +246,7 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
CastPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@44
diff --git a/pkg/analyzer/test/src/dart/resolution/if_element_test.dart b/pkg/analyzer/test/src/dart/resolution/if_element_test.dart
index 7c2f127..a464d64 100644
--- a/pkg/analyzer/test/src/dart/resolution/if_element_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/if_element_test.dart
@@ -86,7 +86,7 @@
pattern: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -159,7 +159,7 @@
caseClause: CaseClause
caseKeyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
diff --git a/pkg/analyzer/test/src/dart/resolution/if_statement_test.dart b/pkg/analyzer/test/src/dart/resolution/if_statement_test.dart
index a986eef..4bfc8ac 100644
--- a/pkg/analyzer/test/src/dart/resolution/if_statement_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/if_statement_test.dart
@@ -67,7 +67,7 @@
caseKeyword: case
guardedPattern: GuardedPattern
pattern: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -81,7 +81,7 @@
rightOperand: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -146,7 +146,7 @@
caseKeyword: case
guardedPattern: GuardedPattern
pattern: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -160,7 +160,7 @@
rightOperand: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
keyword: final
type: NamedType
name: SimpleIdentifier
@@ -226,7 +226,7 @@
caseKeyword: case
guardedPattern: GuardedPattern
pattern: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -240,7 +240,7 @@
rightOperand: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: double
@@ -307,7 +307,7 @@
guardedPattern: GuardedPattern
pattern: BinaryPattern
leftOperand: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -381,7 +381,7 @@
guardedPattern: GuardedPattern
pattern: BinaryPattern
leftOperand: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -392,7 +392,7 @@
declaredElement: a@37
type: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -459,7 +459,7 @@
guardedPattern: GuardedPattern
pattern: BinaryPattern
leftOperand: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -470,7 +470,7 @@
declaredElement: a@37
type: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -481,7 +481,7 @@
declaredElement: a@46
type: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -545,7 +545,7 @@
guardedPattern: GuardedPattern
pattern: BinaryPattern
leftOperand: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -561,7 +561,7 @@
literal: 2
staticType: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -631,7 +631,7 @@
literal: 1
staticType: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -705,7 +705,7 @@
literal: 1
staticType: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -716,7 +716,7 @@
declaredElement: a@42
type: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -791,7 +791,7 @@
pattern: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -875,7 +875,7 @@
caseClause: CaseClause
caseKeyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
diff --git a/pkg/analyzer/test/src/dart/resolution/list_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/list_pattern_test.dart
index f997a45..08953d5 100644
--- a/pkg/analyzer/test/src/dart/resolution/list_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/list_pattern_test.dart
@@ -28,7 +28,7 @@
ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -57,7 +57,7 @@
ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@41
@@ -91,7 +91,7 @@
rightBracket: >
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@46
@@ -140,7 +140,7 @@
staticType: int
RestPatternElement
operator: ...
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: rest
declaredElement: hasImplicitType rest@46
@@ -164,7 +164,7 @@
ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@51
@@ -198,7 +198,7 @@
rightBracket: >
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@56
@@ -263,7 +263,7 @@
ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -292,7 +292,7 @@
ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@48
@@ -359,7 +359,7 @@
rightBracket: >
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -398,7 +398,7 @@
rightBracket: >
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@53
@@ -421,7 +421,7 @@
pattern: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
name: a
declaredElement: hasImplicitType a@29
type: int
@@ -460,7 +460,7 @@
rightBracket: >
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
name: a
declaredElement: hasImplicitType a@23
type: int
@@ -497,7 +497,7 @@
pattern: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
diff --git a/pkg/analyzer/test/src/dart/resolution/map_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/map_pattern_test.dart
index 5b90e01..20aff16 100644
--- a/pkg/analyzer/test/src/dart/resolution/map_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/map_pattern_test.dart
@@ -34,7 +34,7 @@
literal: 0
staticType: int
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: String
@@ -68,7 +68,7 @@
literal: 0
staticType: int
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@44
@@ -113,7 +113,7 @@
literal: 0
staticType: int
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@57
@@ -173,7 +173,7 @@
literal: ''
RestPatternElement
operator: ...
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: rest
declaredElement: hasImplicitType rest@57
@@ -199,7 +199,7 @@
literal: 0
staticType: int
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@50
@@ -241,7 +241,7 @@
literal: true
staticType: bool
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@62
@@ -307,7 +307,7 @@
literal: true
staticType: bool
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -338,7 +338,7 @@
literal: true
staticType: bool
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@43
@@ -421,7 +421,7 @@
literal: true
staticType: bool
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@54
@@ -482,7 +482,7 @@
literal: true
staticType: bool
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: a
declaredElement: hasImplicitType a@40
type: int
@@ -532,7 +532,7 @@
literal: true
staticType: bool
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
name: a
declaredElement: hasImplicitType a@35
type: int
@@ -574,7 +574,7 @@
literal: true
staticType: bool
separator: :
- value: VariablePattern
+ value: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
diff --git a/pkg/analyzer/test/src/dart/resolution/object_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/object_pattern_test.dart
index eeebf5b..670cde8 100644
--- a/pkg/analyzer/test/src/dart/resolution/object_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/object_pattern_test.dart
@@ -107,7 +107,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: foo2
declaredElement: hasImplicitType foo2@90
@@ -225,7 +225,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@83
@@ -263,7 +263,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: foo2
declaredElement: hasImplicitType foo2@84
@@ -338,7 +338,7 @@
RecordPatternField
fieldName: RecordPatternFieldName
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: foo
declaredElement: hasImplicitType foo@81
@@ -376,7 +376,7 @@
fieldName: RecordPatternFieldName
colon: :
pattern: PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: foo
declaredElement: hasImplicitType foo@82
@@ -416,7 +416,7 @@
colon: :
pattern: ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: foo
declaredElement: hasImplicitType foo@82
@@ -491,7 +491,7 @@
RecordPatternField
fieldName: RecordPatternFieldName
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: foo
declaredElement: hasImplicitType foo@65
@@ -527,7 +527,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@77
@@ -580,7 +580,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@145
@@ -621,7 +621,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@141
@@ -658,7 +658,7 @@
fieldName: RecordPatternFieldName
name: hashCode
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@90
@@ -697,7 +697,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@85
@@ -734,7 +734,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@73
@@ -771,7 +771,7 @@
fieldName: RecordPatternFieldName
name: $0
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@71
@@ -808,7 +808,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
declaredElement: hasImplicitType a@32
type: int
@@ -862,7 +862,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
declaredElement: hasImplicitType a@29
type: int
@@ -918,7 +918,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
diff --git a/pkg/analyzer/test/src/dart/resolution/pattern_variable_declaration_statement_test.dart b/pkg/analyzer/test/src/dart/resolution/pattern_variable_declaration_statement_test.dart
index 023a662..cc715f1 100644
--- a/pkg/analyzer/test/src/dart/resolution/pattern_variable_declaration_statement_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/pattern_variable_declaration_statement_test.dart
@@ -30,7 +30,7 @@
keyword: final
pattern: ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: num
@@ -63,7 +63,7 @@
keyword: final
pattern: ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
declaredElement: hasImplicitType isFinal a@20
type: int
@@ -91,7 +91,7 @@
keyword: var
pattern: ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
declaredElement: hasImplicitType a@18
type: A
@@ -128,7 +128,7 @@
keyword: var
pattern: ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: num
@@ -162,7 +162,7 @@
keyword: var
pattern: ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -204,7 +204,7 @@
keyword: var
pattern: ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
declaredElement: hasImplicitType a@18
type: int
@@ -232,13 +232,13 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
declaredElement: hasImplicitType a@33
type: int
fieldElement: <null>
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: b
declaredElement: hasImplicitType b@36
type: String
diff --git a/pkg/analyzer/test/src/dart/resolution/postfix_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/postfix_pattern_test.dart
index 4bc6471..796b8a9 100644
--- a/pkg/analyzer/test/src/dart/resolution/postfix_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/postfix_pattern_test.dart
@@ -23,7 +23,7 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@34
@@ -44,7 +44,7 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@45
@@ -66,7 +66,7 @@
pattern: ParenthesizedPattern
leftParenthesis: (
pattern: PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
name: a
declaredElement: hasImplicitType a@24
type: int
@@ -89,7 +89,7 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@34
@@ -110,7 +110,7 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@45
diff --git a/pkg/analyzer/test/src/dart/resolution/record_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/record_pattern_test.dart
index e8b0a8c..3e1558c 100644
--- a/pkg/analyzer/test/src/dart/resolution/record_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/record_pattern_test.dart
@@ -50,7 +50,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@46
@@ -73,7 +73,7 @@
assertResolvedNodeText(node, r'''
ParenthesizedPattern
leftParenthesis: (
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@41
@@ -144,7 +144,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -177,7 +177,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@54
@@ -226,7 +226,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -256,7 +256,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@49
@@ -284,7 +284,7 @@
fieldName: RecordPatternFieldName
name: a
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: b
declaredElement: hasImplicitType b@47
@@ -311,7 +311,7 @@
RecordPatternField
fieldName: RecordPatternFieldName
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@46
@@ -338,7 +338,7 @@
RecordPatternField
fieldName: RecordPatternFieldName
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@53
@@ -365,7 +365,7 @@
RecordPatternField
fieldName: RecordPatternFieldName
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@60
@@ -390,7 +390,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@44
@@ -415,7 +415,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@55
@@ -457,7 +457,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@69
@@ -467,14 +467,14 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: b
declaredElement: hasImplicitType b@81
type: String
fieldElement: <null>
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: c
declaredElement: hasImplicitType c@88
@@ -502,7 +502,7 @@
fieldName: RecordPatternFieldName
name: bar
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@58
@@ -530,7 +530,7 @@
fieldName: RecordPatternFieldName
name: foo
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: y
declaredElement: hasImplicitType y@58
@@ -585,7 +585,7 @@
RecordPatternField
fieldName: RecordPatternFieldName
colon: :
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: foo
declaredElement: hasImplicitType foo@55
@@ -613,7 +613,7 @@
fieldName: RecordPatternFieldName
colon: :
pattern: PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
keyword: var
name: foo
declaredElement: hasImplicitType foo@56
@@ -639,7 +639,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@48
@@ -663,13 +663,13 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: a
declaredElement: hasImplicitType a@33
type: int
fieldElement: <null>
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: b
declaredElement: hasImplicitType b@36
type: String
@@ -699,7 +699,7 @@
leftParenthesis: (
fields
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -711,7 +711,7 @@
type: int
fieldElement: <null>
RecordPatternField
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: String
diff --git a/pkg/analyzer/test/src/dart/resolution/switch_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/switch_expression_test.dart
index 21d2928..5da47a3 100644
--- a/pkg/analyzer/test/src/dart/resolution/switch_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/switch_expression_test.dart
@@ -42,7 +42,7 @@
cases
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
arrow: =>
expression: MethodInvocation
@@ -75,7 +75,7 @@
assertResolvedNodeText(node, r'''
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
arrow: =>
expression: FunctionExpressionInvocation
@@ -200,7 +200,7 @@
cases
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
arrow: =>
expression: IntegerLiteral
@@ -245,7 +245,7 @@
staticType: int
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
arrow: =>
expression: NullLiteral
@@ -290,7 +290,7 @@
staticType: int
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
arrow: =>
expression: IntegerLiteral
@@ -332,7 +332,7 @@
pattern: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -373,7 +373,7 @@
staticType: int
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
arrow: =>
expression: IntegerLiteral
@@ -410,7 +410,7 @@
cases
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -442,7 +442,7 @@
staticType: int
SwitchExpressionCase
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
name: _
arrow: =>
expression: SimpleIdentifier
diff --git a/pkg/analyzer/test/src/dart/resolution/switch_statement_test.dart b/pkg/analyzer/test/src/dart/resolution/switch_statement_test.dart
index f9bea66..dd9447c 100644
--- a/pkg/analyzer/test/src/dart/resolution/switch_statement_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/switch_statement_test.dart
@@ -262,7 +262,7 @@
SwitchPatternCase
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -291,7 +291,7 @@
SwitchPatternCase
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -354,7 +354,7 @@
SwitchPatternCase
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
type: NamedType
name: SimpleIdentifier
@@ -384,7 +384,7 @@
SwitchPatternCase
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
type: NamedType
name: SimpleIdentifier
@@ -448,7 +448,7 @@
SwitchPatternCase
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
type: NamedType
name: SimpleIdentifier
@@ -478,7 +478,7 @@
SwitchPatternCase
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: num
@@ -541,7 +541,7 @@
SwitchPatternCase
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -570,7 +570,7 @@
SwitchPatternCase
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: num
@@ -641,7 +641,7 @@
SwitchPatternCase
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -704,7 +704,7 @@
SwitchPatternCase
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -775,7 +775,7 @@
SwitchPatternCase
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -850,7 +850,7 @@
colon: :
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -919,7 +919,7 @@
pattern: ListPattern
leftBracket: [
elements
- VariablePattern
+ DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
@@ -990,7 +990,7 @@
SwitchPatternCase
keyword: case
guardedPattern: GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
type: NamedType
name: SimpleIdentifier
token: int
diff --git a/pkg/analyzer/test/src/dart/resolution/test_all.dart b/pkg/analyzer/test/src/dart/resolution/test_all.dart
index 146e824..94d1943 100644
--- a/pkg/analyzer/test/src/dart/resolution/test_all.dart
+++ b/pkg/analyzer/test/src/dart/resolution/test_all.dart
@@ -19,6 +19,7 @@
import 'constant_test.dart' as constant;
import 'constructor_reference_test.dart' as constructor_reference;
import 'constructor_test.dart' as constructor;
+import 'declared_variable_pattern_test.dart' as declared_variable_pattern;
import 'enum_test.dart' as enum_resolution;
import 'extension_method_test.dart' as extension_method;
import 'extension_override_test.dart' as extension_override;
@@ -88,7 +89,6 @@
import 'type_inference/test_all.dart' as type_inference;
import 'type_literal_test.dart' as type_literal;
import 'type_name_test.dart' as type_name;
-import 'variable_pattern_test.dart' as variable_pattern;
import 'variance_test.dart' as variance_test;
import 'yield_statement_test.dart' as yield_statement;
@@ -107,8 +107,9 @@
constant_pattern.main();
comment.main();
constant.main();
- constructor.main();
constructor_reference.main();
+ constructor.main();
+ declared_variable_pattern.main();
enum_resolution.main();
extension_method.main();
extension_override.main();
@@ -173,7 +174,6 @@
type_inference.main();
type_literal.main();
type_name.main();
- variable_pattern.main();
variance_test.main();
yield_statement.main();
defineReflectiveTests(UpdateNodeTextExpectations);
diff --git a/pkg/analyzer/test/src/diagnostics/duplicate_variable_pattern_test.dart b/pkg/analyzer/test/src/diagnostics/duplicate_variable_pattern_test.dart
index 98be3ae..17e71bd 100644
--- a/pkg/analyzer/test/src/diagnostics/duplicate_variable_pattern_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/duplicate_variable_pattern_test.dart
@@ -27,13 +27,13 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@33
type: int
operator: &&
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@42
@@ -56,13 +56,13 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@44
type: int
operator: &&
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: var
name: a
declaredElement: hasImplicitType a@53
diff --git a/pkg/analyzer/test/src/diagnostics/missing_variable_pattern_test.dart b/pkg/analyzer/test/src/diagnostics/missing_variable_pattern_test.dart
index 422f100..1507a97 100644
--- a/pkg/analyzer/test/src/diagnostics/missing_variable_pattern_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/missing_variable_pattern_test.dart
@@ -27,7 +27,7 @@
final node1 = findNode.caseClause('case final a').guardedPattern;
assertResolvedNodeText(node1, r'''
GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@35
@@ -37,7 +37,7 @@
final node2 = findNode.caseClause('case final b').guardedPattern;
assertResolvedNodeText(node2, r'''
GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
name: b
declaredElement: hasImplicitType isFinal b@61
@@ -56,7 +56,7 @@
final node1 = findNode.caseClause('case final a').guardedPattern;
assertResolvedNodeText(node1, r'''
GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@35
@@ -66,7 +66,7 @@
final node2 = findNode.caseClause('case final b').guardedPattern;
assertResolvedNodeText(node2, r'''
GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
name: b
declaredElement: hasImplicitType isFinal b@60
@@ -83,13 +83,13 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@35
type: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@46
@@ -112,13 +112,13 @@
literal: 0
staticType: int
operator: &&
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@40
type: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@51
@@ -137,7 +137,7 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@35
@@ -166,7 +166,7 @@
literal: 1
staticType: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@40
@@ -187,7 +187,7 @@
assertResolvedNodeText(node, r'''
BinaryPattern
leftOperand: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@35
@@ -217,13 +217,13 @@
assertResolvedNodeText(node, r'''
BinaryPattern
leftOperand: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@35
type: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@46
@@ -246,19 +246,19 @@
assertResolvedNodeText(node, r'''
BinaryPattern
leftOperand: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@35
type: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@46
type: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@57
@@ -278,7 +278,7 @@
assertResolvedNodeText(node, r'''
BinaryPattern
leftOperand: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@35
@@ -289,7 +289,7 @@
literal: 2
staticType: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@51
@@ -315,7 +315,7 @@
literal: 1
staticType: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@40
@@ -345,13 +345,13 @@
literal: 1
staticType: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@40
type: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@51
@@ -381,7 +381,7 @@
literal: 2
staticType: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@45
@@ -401,13 +401,13 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@46
type: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@57
@@ -429,7 +429,7 @@
final node = findNode.singleGuardedPattern.pattern;
assertResolvedNodeText(node, r'''
BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@46
@@ -461,7 +461,7 @@
literal: 1
staticType: int
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@51
@@ -483,7 +483,7 @@
final node1 = findNode.switchPatternCase('case /*1*/').guardedPattern;
assertResolvedNodeText(node1, r'''
GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@52
@@ -493,7 +493,7 @@
final node2 = findNode.switchPatternCase('case /*2*/').guardedPattern;
assertResolvedNodeText(node2, r'''
GuardedPattern
- pattern: VariablePattern
+ pattern: DeclaredVariablePattern
keyword: final
name: a
declaredElement: hasImplicitType isFinal a@76
diff --git a/pkg/analyzer/test/src/diagnostics/refutable_pattern_in_irrefutable_context_test.dart b/pkg/analyzer/test/src/diagnostics/refutable_pattern_in_irrefutable_context_test.dart
index fed6802..1524b7b 100644
--- a/pkg/analyzer/test/src/diagnostics/refutable_pattern_in_irrefutable_context_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/refutable_pattern_in_irrefutable_context_test.dart
@@ -61,10 +61,10 @@
pattern: ParenthesizedPattern
leftParenthesis: (
pattern: BinaryPattern
- leftOperand: VariablePattern
+ leftOperand: DeclaredVariablePattern
name: _
operator: ||
- rightOperand: VariablePattern
+ rightOperand: DeclaredVariablePattern
name: _
rightParenthesis: )
equals: =
@@ -91,7 +91,7 @@
pattern: ParenthesizedPattern
leftParenthesis: (
pattern: PostfixPattern
- operand: VariablePattern
+ operand: DeclaredVariablePattern
name: _
operator: ?
rightParenthesis: )
diff --git a/pkg/analyzer/test/src/diagnostics/sealed_class_subtype_outside_of_library_test.dart b/pkg/analyzer/test/src/diagnostics/sealed_class_subtype_outside_of_library_test.dart
new file mode 100644
index 0000000..5100b9e
--- /dev/null
+++ b/pkg/analyzer/test/src/diagnostics/sealed_class_subtype_outside_of_library_test.dart
@@ -0,0 +1,157 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analyzer/src/error/codes.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import '../dart/resolution/context_collection_resolution.dart';
+
+main() {
+ defineReflectiveSuite(() {
+ defineReflectiveTests(SealedClassSubtypeOutsideOfLibraryTest);
+ });
+}
+
+@reflectiveTest
+class SealedClassSubtypeOutsideOfLibraryTest extends PubPackageResolutionTest {
+ test_class_extends_sealed_inside() async {
+ await assertNoErrorsInCode(r'''
+sealed class Foo {}
+class Bar extends Foo {}
+''');
+ }
+
+ test_class_extends_sealed_outside() async {
+ newFile('$testPackageLibPath/foo.dart', r'''
+sealed class Foo {}
+''');
+
+ await assertErrorsInCode(r'''
+import 'foo.dart';
+class Bar extends Foo {}
+''', [
+ error(
+ CompileTimeErrorCode.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY, 19, 24),
+ ]);
+ }
+
+ test_class_extends_sealed_outside_viaTypedef_inside() async {
+ newFile('$testPackageLibPath/foo.dart', r'''
+sealed class Foo {}
+typedef FooTypedef = Foo;
+''');
+
+ await assertErrorsInCode(r'''
+import 'foo.dart';
+class Bar extends FooTypedef {}
+''', [
+ error(
+ CompileTimeErrorCode.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY, 19, 31),
+ ]);
+ }
+
+ test_class_extends_sealed_outside_viaTypedef_outside() async {
+ newFile('$testPackageLibPath/foo.dart', r'''
+sealed class Foo {}
+''');
+
+ await assertErrorsInCode(r'''
+import 'foo.dart';
+typedef FooTypedef = Foo;
+class Bar extends FooTypedef {}
+''', [
+ error(
+ CompileTimeErrorCode.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY, 45, 31),
+ ]);
+ }
+
+ test_class_extends_subtypeOfSealed_outside() async {
+ newFile('$testPackageLibPath/foo.dart', r'''
+sealed class Foo {}
+class Bar extends Foo {}
+''');
+
+ await assertNoErrorsInCode(r'''
+import 'foo.dart';
+class Bar2 extends Bar {}
+''');
+ }
+
+ test_class_implements_sealed_inside() async {
+ await assertNoErrorsInCode(r'''
+sealed class Foo {}
+class Bar implements Foo {}
+''');
+ }
+
+ test_class_implements_sealed_outside() async {
+ newFile('$testPackageLibPath/foo.dart', r'''
+sealed class Foo {}
+''');
+
+ await assertErrorsInCode(r'''
+import 'foo.dart';
+class Bar implements Foo {}
+''', [
+ error(
+ CompileTimeErrorCode.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY, 19, 27),
+ ]);
+ }
+
+ test_class_implements_sealed_outside_viaTypedef_inside() async {
+ newFile('$testPackageLibPath/foo.dart', r'''
+sealed class Foo {}
+typedef FooTypedef = Foo;
+''');
+
+ await assertErrorsInCode(r'''
+import 'foo.dart';
+class Bar implements FooTypedef {}
+''', [
+ error(
+ CompileTimeErrorCode.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY, 19, 34),
+ ]);
+ }
+
+ test_class_implements_sealed_outside_viaTypedef_outside() async {
+ newFile('$testPackageLibPath/foo.dart', r'''
+sealed class Foo {}
+''');
+
+ await assertErrorsInCode(r'''
+import 'foo.dart';
+typedef FooTypedef = Foo;
+class Bar implements FooTypedef {}
+''', [
+ error(
+ CompileTimeErrorCode.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY, 45, 34),
+ ]);
+ }
+
+ test_class_implements_subtypeOfSealed_outside() async {
+ newFile('$testPackageLibPath/foo.dart', r'''
+sealed class Foo {}
+class Bar implements Foo {}
+''');
+
+ await assertNoErrorsInCode(r'''
+import 'foo.dart';
+class Bar2 implements Bar {}
+''');
+ }
+
+ test_mixin_implements_sealed_outside() async {
+ newFile('$testPackageLibPath/foo.dart', r'''
+sealed class Foo {}
+''');
+
+ await assertErrorsInCode(r'''
+import 'foo.dart';
+mixin Bar implements Foo {}
+''', [
+ error(
+ CompileTimeErrorCode.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY, 19, 27),
+ ]);
+ }
+}
diff --git a/pkg/analyzer/test/src/diagnostics/test_all.dart b/pkg/analyzer/test/src/diagnostics/test_all.dart
index dd56dff3..89fe1b3 100644
--- a/pkg/analyzer/test/src/diagnostics/test_all.dart
+++ b/pkg/analyzer/test/src/diagnostics/test_all.dart
@@ -687,6 +687,8 @@
import 'sdk_version_ui_as_code_in_const_context_test.dart'
as sdk_version_ui_as_code_in_const_context;
import 'sdk_version_ui_as_code_test.dart' as sdk_version_ui_as_code;
+import 'sealed_class_subtype_outside_of_library_test.dart'
+ as sealed_class_subtype_outside_of_library;
import 'set_element_from_deferred_library_test.dart'
as set_element_from_deferred_library;
import 'set_element_type_not_assignable_test.dart'
@@ -1268,6 +1270,7 @@
sdk_version_set_literal.main();
sdk_version_ui_as_code.main();
sdk_version_ui_as_code_in_const_context.main();
+ sealed_class_subtype_outside_of_library.main();
set_element_type_not_assignable.main();
shared_deferred_prefix.main();
size_annotation_dimensions.main();
diff --git a/pkg/analyzer/test/src/summary/elements_test.dart b/pkg/analyzer/test/src/summary/elements_test.dart
index 8f48d74..6734483 100644
--- a/pkg/analyzer/test/src/summary/elements_test.dart
+++ b/pkg/analyzer/test/src/summary/elements_test.dart
@@ -7576,7 +7576,7 @@
library
definingUnit
classes
- sealed class C @13
+ abstract sealed class C @13
constructors
synthetic @-1
''');
@@ -9052,7 +9052,7 @@
library
definingUnit
classes
- sealed class alias C @13
+ abstract sealed class alias C @13
supertype: Object
mixins
M
diff --git a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
index 43734b4..ce27a4e 100644
--- a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
+++ b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
@@ -376,6 +376,29 @@
}
@override
+ void visitDeclaredVariablePattern(
+ covariant DeclaredVariablePatternImpl node,
+ ) {
+ _writeln('DeclaredVariablePattern');
+ _withIndent(() {
+ _writeNamedChildEntities(node);
+ if (_withResolution) {
+ final element = node.declaredElement;
+ if (element != null) {
+ _sink.write(_indent);
+ _sink.write('declaredElement: ');
+ _writeIf(element.hasImplicitType, 'hasImplicitType ');
+ _writeIf(element.isFinal, 'isFinal ');
+ _sink.writeln('${element.name}@${element.nameOffset}');
+ _withIndent(() {
+ _writeType('type', element.type);
+ });
+ }
+ }
+ });
+ }
+
+ @override
void visitDefaultFormalParameter(DefaultFormalParameter node) {
_writeln('DefaultFormalParameter');
_withIndent(() {
@@ -1489,27 +1512,6 @@
}
@override
- void visitVariablePattern(covariant VariablePatternImpl node) {
- _writeln('VariablePattern');
- _withIndent(() {
- _writeNamedChildEntities(node);
- if (_withResolution) {
- final element = node.declaredElement;
- if (element != null) {
- _sink.write(_indent);
- _sink.write('declaredElement: ');
- _writeIf(element.hasImplicitType, 'hasImplicitType ');
- _writeIf(element.isFinal, 'isFinal ');
- _sink.writeln('${element.name}@${element.nameOffset}');
- _withIndent(() {
- _writeType('type', element.type);
- });
- }
- }
- });
- }
-
- @override
void visitWhenClause(WhenClause node) {
_writeln('WhenClause');
_withIndent(() {
diff --git a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart
index b11edb5..9db5d8f 100644
--- a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart
+++ b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart
@@ -1534,15 +1534,15 @@
///
/// If the library [element] is declared in is inside the `src` folder, will
/// try to locate a public URI to import instead.
- Future<void> importElementLibrary(Element element) async {
- // TODO(dantup): Add the ability to pass a cache in to this function so
- // multiple callers can avoid looking up the same elements.
+ Future<void> importElementLibrary(Element element,
+ {Map<Element, LibraryElement?>? resultCache}) async {
if (_isDefinedLocally(element) || _getImportElement(element) != null) {
return;
}
- var libraryWithElement =
- await TopLevelDeclarations(resolvedUnit).publiclyExporting(element);
+ var libraryWithElement = resultCache?[element] ??
+ await TopLevelDeclarations(resolvedUnit)
+ .publiclyExporting(element, resultCache: resultCache);
if (libraryWithElement != null) {
_elementLibrariesToImport[element] =
_importLibrary(libraryWithElement.source.uri);
diff --git a/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart b/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart
index 9af37a5..62be8bb 100644
--- a/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart
+++ b/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart
@@ -4,6 +4,7 @@
// ignore_for_file: camel_case_types
+import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/nullability_suffix.dart';
@@ -12,9 +13,9 @@
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/test_utilities/find_node.dart';
import 'package:analyzer/src/test_utilities/package_config_file_builder.dart';
-import 'package:analyzer_plugin/protocol/protocol_common.dart';
+import 'package:analyzer_plugin/protocol/protocol_common.dart' hide Element;
import 'package:analyzer_plugin/src/utilities/change_builder/change_builder_dart.dart'
- show DartLinkedEditBuilderImpl;
+ show DartFileEditBuilderImpl, DartLinkedEditBuilderImpl;
import 'package:linter/src/rules.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -1804,6 +1805,12 @@
@reflectiveTest
class DartFileEditBuilderImplTest extends AbstractContextTest
with DartChangeBuilderMixin {
+ Future<ResolvedUnitResult> resolveContent(String path, String content) async {
+ path = convertPath(path);
+ addSource(path, content);
+ return resolveFile(path);
+ }
+
Future<void> test_convertFunctionFromSyncToAsync_closure() async {
var path = convertPath('/home/test/lib/test.dart');
addSource(path, '''var f = () {}''');
@@ -1934,6 +1941,96 @@
''');
}
+ Future<void> test_importElementLibrary_libElement() async {
+ var resolvedUnit = await resolveContent('/home/test/lib/test.dart', '');
+
+ var resolvedLibUnit =
+ await resolveContent('/home/test/lib/a.dart', 'class A {}');
+
+ var findNode = FindNode(resolvedLibUnit.content, resolvedLibUnit.unit);
+ var classElement = findNode.classDeclaration('A').declaredElement!;
+ var cache = <Element, LibraryElement?>{};
+ var builder = await newBuilder();
+ await builder.addDartFileEdit(resolvedUnit.path, (builder) async {
+ var builderImpl = builder as DartFileEditBuilderImpl;
+ await builderImpl.importElementLibrary(classElement, resultCache: cache);
+ });
+
+ var edits = getEdits(builder);
+ expect(edits, hasLength(1));
+ expect(edits[0].replacement,
+ equalsIgnoringWhitespace("import 'package:test/a.dart';\n"));
+ expect(cache[classElement], resolvedLibUnit.libraryElement);
+ }
+
+ Future<void> test_importElementLibrary_sdkElement() async {
+ var resolvedUnit = await resolveContent('/home/test/lib/test.dart', '');
+
+ var futureOrElement = resolvedUnit.typeProvider.futureOrElement;
+ var cache = <Element, LibraryElement?>{};
+ var builder = await newBuilder();
+ await builder.addDartFileEdit(resolvedUnit.path, (builder) async {
+ var builderImpl = builder as DartFileEditBuilderImpl;
+ await builderImpl.importElementLibrary(futureOrElement,
+ resultCache: cache);
+ });
+
+ var edits = getEdits(builder);
+ expect(edits, hasLength(1));
+ expect(
+ edits[0].replacement, equalsIgnoringWhitespace("import 'dart:async';"));
+ expect(cache[futureOrElement], futureOrElement.library);
+ }
+
+ Future<void> test_importElementLibrary_srcElement() async {
+ var resolvedUnit = await resolveContent('/home/test/lib/test.dart', '');
+
+ var resolvedSrcUnit =
+ await resolveContent('/home/test/lib/src/a.dart', 'class A {}');
+
+ var resolvedExportUnit =
+ await resolveContent('/home/test/lib/a.dart', "export 'src/a.dart'");
+
+ var findNode = FindNode(resolvedSrcUnit.content, resolvedSrcUnit.unit);
+ var classElement = findNode.classDeclaration('A').declaredElement!;
+ var cache = <Element, LibraryElement?>{};
+ var builder = await newBuilder();
+ await builder.addDartFileEdit(resolvedUnit.path, (builder) async {
+ var builderImpl = builder as DartFileEditBuilderImpl;
+ await builderImpl.importElementLibrary(classElement, resultCache: cache);
+ });
+
+ var edits = getEdits(builder);
+ expect(edits, hasLength(1));
+ expect(edits[0].replacement,
+ equalsIgnoringWhitespace("import 'package:test/a.dart';\n"));
+ expect(cache[classElement], resolvedExportUnit.libraryElement);
+ }
+
+ Future<void> test_importElementLibrary_usesCache() async {
+ var resolvedUnit = await resolveContent('/home/test/lib/test.dart', '');
+
+ // Create a fake file to put into the cache to verify it's being used.
+ var resolvedFakeUnit = await resolveContent('/home/test/lib/fake.dart', '');
+
+ var futureOrElement = resolvedUnit.typeProvider.futureOrElement;
+ var cache = <Element, LibraryElement?>{
+ futureOrElement: resolvedFakeUnit.libraryElement,
+ };
+ var builder = await newBuilder();
+ await builder.addDartFileEdit(resolvedUnit.path, (builder) async {
+ var builderImpl = builder as DartFileEditBuilderImpl;
+ await builderImpl.importElementLibrary(futureOrElement,
+ resultCache: cache);
+ });
+
+ var edits = getEdits(builder);
+ expect(edits, hasLength(1));
+ expect(edits[0].replacement,
+ equalsIgnoringWhitespace("import 'package:test/fake.dart';"));
+ expect(cache[futureOrElement], resolvedFakeUnit.libraryElement);
+ }
+
Future<void> test_multipleEdits_concurrently() async {
var initialCode = '00';
var path = convertPath('/home/test/lib/test.dart');
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index 94025ed..c52be52 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -8428,7 +8428,8 @@
}
@override
- void handleVariablePattern(Token? keyword, Token variable) {
+ void handleVariablePattern(Token? keyword, Token variable,
+ {required bool inAssignmentPattern}) {
debugEvent('VariablePattern');
assert(checkState(keyword ?? variable, [
ValueKinds.TypeBuilderOrNull,
@@ -8443,6 +8444,7 @@
if (variable.lexeme == "_") {
pattern = new WildcardPattern(patternType, variable.charOffset);
} else {
+ // TODO(paulberry): use inAssignmentPattern.
pattern = new VariablePattern(
patternType,
variable.lexeme,
diff --git a/pkg/front_end/lib/src/fasta/kernel/macro/annotation_parser.dart b/pkg/front_end/lib/src/fasta/kernel/macro/annotation_parser.dart
index 27949a2..66bc63e 100644
--- a/pkg/front_end/lib/src/fasta/kernel/macro/annotation_parser.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/macro/annotation_parser.dart
@@ -2032,7 +2032,8 @@
}
@override
- void handleVariablePattern(Token? keyword, Token variable) {
+ void handleVariablePattern(Token? keyword, Token variable,
+ {required bool inAssignmentPattern}) {
_unsupported();
}
diff --git a/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart b/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart
index 72fa1bc..76c11c8 100644
--- a/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart
+++ b/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart
@@ -1906,9 +1906,12 @@
}
@override
- void handleVariablePattern(Token? keyword, Token variable) {
+ void handleVariablePattern(Token? keyword, Token variable,
+ {required bool inAssignmentPattern}) {
VariablePatternHandle data = new VariablePatternHandle(ParserAstType.HANDLE,
- keyword: keyword, variable: variable);
+ keyword: keyword,
+ variable: variable,
+ inAssignmentPattern: inAssignmentPattern);
seen(data);
}
@@ -6329,15 +6332,17 @@
class VariablePatternHandle extends ParserAstNode {
final Token? keyword;
final Token variable;
+ final bool inAssignmentPattern;
VariablePatternHandle(ParserAstType type,
- {this.keyword, required this.variable})
+ {this.keyword, required this.variable, required this.inAssignmentPattern})
: super("VariablePattern", type);
@override
Map<String, Object?> get deprecatedArguments => {
"keyword": keyword,
"variable": variable,
+ "inAssignmentPattern": inAssignmentPattern,
};
}
diff --git a/pkg/front_end/messages.status b/pkg/front_end/messages.status
index fdf1f64..e8dff3a 100644
--- a/pkg/front_end/messages.status
+++ b/pkg/front_end/messages.status
@@ -864,7 +864,6 @@
SdkSpecificationNotFound/example: Fail
SdkSummaryNotFound/analyzerCode: Fail
SdkSummaryNotFound/example: Fail
-SealedClassSubtypeOutsideOfLibrary/analyzerCode: Fail
SealedClassSubtypeOutsideOfLibrary/part_wrapped_script: Fail # Uses imports
SealedMixinSubtypeOutsideOfLibrary/analyzerCode: Fail
SealedMixinSubtypeOutsideOfLibrary/part_wrapped_script: Fail # Uses imports
diff --git a/pkg/front_end/messages.yaml b/pkg/front_end/messages.yaml
index fc7da85..241aedc 100644
--- a/pkg/front_end/messages.yaml
+++ b/pkg/front_end/messages.yaml
@@ -6004,6 +6004,7 @@
SealedClassSubtypeOutsideOfLibrary:
problemMessage: "Sealed class '#name' can't be extended, implemented, or mixed in outside of its library."
+ analyzerCode: SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY
experiments: sealed-class
script:
main.dart:
diff --git a/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_case.dart.intertwined.expect
index b8e0f58..6e00cbb 100644
--- a/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_case.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_cast.dart.intertwined.expect
index 45a8b23..d593584 100644
--- a/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_cast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_if_case.dart.intertwined.expect
index 46139c6..a0d3dd8 100644
--- a/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_if_case.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_null_assert.dart.intertwined.expect
index d4bb2f7..2decdde 100644
--- a/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_null_assert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_null_check.dart.intertwined.expect
index ae5fc42..7f10027 100644
--- a/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/boolean_literal_inside_null_check.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_guarded_insideIfStatement.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_guarded_insideIfStatement.dart.intertwined.expect
index 78ddf45..0cf06bd 100644
--- a/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_guarded_insideIfStatement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_guarded_insideIfStatement.dart.intertwined.expect
@@ -58,8 +58,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_guarded_insideSwitchStatement.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_guarded_insideSwitchStatement.dart.intertwined.expect
index f9f1a37..093794d 100644
--- a/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_guarded_insideSwitchStatement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_guarded_insideSwitchStatement.dart.intertwined.expect
@@ -66,8 +66,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_unguarded_insideIfStatement.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_unguarded_insideIfStatement.dart.intertwined.expect
index f450d63..6df4683 100644
--- a/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_unguarded_insideIfStatement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_unguarded_insideIfStatement.dart.intertwined.expect
@@ -58,8 +58,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_unguarded_insideSwitchStatement.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_unguarded_insideSwitchStatement.dart.intertwined.expect
index 9e9df2a..9e63c00 100644
--- a/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_unguarded_insideSwitchStatement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/caseHead_withClassicPattern_unguarded_insideSwitchStatement.dart.intertwined.expect
@@ -66,8 +66,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_guarded_insideIfStatement.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_guarded_insideIfStatement.dart.intertwined.expect
index b403f66..97e6ad4 100644
--- a/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_guarded_insideIfStatement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_guarded_insideIfStatement.dart.intertwined.expect
@@ -58,8 +58,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_guarded_insideSwitchStatement.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_guarded_insideSwitchStatement.dart.intertwined.expect
index bfc1c6e..e0a4f9e 100644
--- a/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_guarded_insideSwitchStatement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_guarded_insideSwitchStatement.dart.intertwined.expect
@@ -66,8 +66,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_unguarded_insideIfStatement.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_unguarded_insideIfStatement.dart.intertwined.expect
index 94a6fc9..cb7ee39 100644
--- a/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_unguarded_insideIfStatement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_unguarded_insideIfStatement.dart.intertwined.expect
@@ -58,8 +58,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_unguarded_insideSwitchStatement.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_unguarded_insideSwitchStatement.dart.intertwined.expect
index b400811..47bded5 100644
--- a/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_unguarded_insideSwitchStatement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/caseHead_withNewPattern_unguarded_insideSwitchStatement.dart.intertwined.expect
@@ -66,8 +66,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_case.dart.intertwined.expect
index fc08ae6..b311d5e 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_case.dart.intertwined.expect
@@ -98,8 +98,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_extractor_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_extractor_pattern.dart.intertwined.expect
index 256aee6..e6c40fe 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_extractor_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_extractor_pattern.dart.intertwined.expect
@@ -113,14 +113,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: true)
+ parseObjectPatternRest(C, PatternContext.matching)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(f, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_extractor_pattern_implicitly_named.dart.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_extractor_pattern_implicitly_named.dart.expect
index 5d1a77f..9871124 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_extractor_pattern_implicitly_named.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_extractor_pattern_implicitly_named.dart.expect
@@ -56,7 +56,7 @@
handleNoTypeArguments(()
handleNoName(()
handleNoType(var)
- handleVariablePattern(var, f)
+ handleVariablePattern(var, f, false)
beginAsOperatorType(as)
handleIdentifier(int, typeReference)
handleNoTypeArguments())
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_extractor_pattern_implicitly_named.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_extractor_pattern_implicitly_named.dart.intertwined.expect
index af1c600..b37c465 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_extractor_pattern_implicitly_named.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_extractor_pattern_implicitly_named.dart.intertwined.expect
@@ -113,16 +113,16 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: true)
+ parseObjectPatternRest(C, PatternContext.matching)
listener: handleNoName(()
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
+ parseVariablePattern(:, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, f)
+ listener: handleVariablePattern(var, f, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(int, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_if_case.dart.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_if_case.dart.expect
index 8f4e727..7a0fbe4 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_if_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_if_case.dart.expect
@@ -25,7 +25,7 @@
handleNoArguments(case)
handleSend(x, case)
handleNoType(var)
- handleVariablePattern(var, y)
+ handleVariablePattern(var, y, false)
beginAsOperatorType(as)
handleIdentifier(int, typeReference)
handleNoTypeArguments())
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_if_case.dart.intertwined.expect
index dcdbc22..f5a033d 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_if_case.dart.intertwined.expect
@@ -61,11 +61,11 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, y)
+ listener: handleVariablePattern(var, y, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(int, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_list_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_list_pattern.dart.intertwined.expect
index feea266..3d72595 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_list_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_list_pattern.dart.intertwined.expect
@@ -69,12 +69,12 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern([, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern([, isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern([, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern([, PatternContext.matching)
parsePrecedenceExpression([, 17, false)
parseUnaryExpression([, false)
parsePrimary([, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_lhs.dart.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_lhs.dart.expect
index f22bc8d..99b746b 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_lhs.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_lhs.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(?)
handleType(int, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginAsOperatorType(as)
handleIdentifier(double, typeReference)
handleNoTypeArguments(?)
@@ -41,7 +41,7 @@
handleIdentifier(Object, typeReference)
handleNoTypeArguments(?)
handleType(Object, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
endBinaryPattern(&&)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_lhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_lhs.dart.intertwined.expect
index f38103f..1621d04 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_lhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_lhs.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(int, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(double, typeReference)
@@ -84,13 +84,13 @@
listener: endAsOperatorType(as)
listener: handleCastPattern(as)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
- parseVariablePattern(&&, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
+ parseVariablePattern(&&, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(Object, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(Object, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: endBinaryPattern(&&)
ensureColon(_)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_rhs.dart.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_rhs.dart.expect
index 03f6122..92b1779 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_rhs.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_rhs.dart.expect
@@ -30,12 +30,12 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(?)
handleType(int, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginBinaryPattern(&&)
handleIdentifier(double, typeReference)
handleNoTypeArguments(?)
handleType(double, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(?)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_rhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_rhs.dart.intertwined.expect
index 2233b21..95bf73c 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_rhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_and_rhs.dart.intertwined.expect
@@ -69,21 +69,21 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(int, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
- parseVariablePattern(&&, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
+ parseVariablePattern(&&, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(double, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(double, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_lhs.dart.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_lhs.dart.expect
index b0ea97e..ec686a0 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_lhs.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_lhs.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(?)
handleType(int, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginAsOperatorType(as)
handleIdentifier(double, typeReference)
handleNoTypeArguments(?)
@@ -41,7 +41,7 @@
handleIdentifier(Object, typeReference)
handleNoTypeArguments(?)
handleType(Object, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
endBinaryPattern(||)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_lhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_lhs.dart.intertwined.expect
index 8470d81..3ac2b64 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_lhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_lhs.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(int, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(double, typeReference)
@@ -84,13 +84,13 @@
listener: endAsOperatorType(as)
listener: handleCastPattern(as)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
- parseVariablePattern(||, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
+ parseVariablePattern(||, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(Object, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(Object, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: endBinaryPattern(||)
ensureColon(_)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_rhs.dart.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_rhs.dart.expect
index ec337d6..1283c09 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_rhs.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_rhs.dart.expect
@@ -30,12 +30,12 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(?)
handleType(int, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginBinaryPattern(||)
handleIdentifier(double, typeReference)
handleNoTypeArguments(?)
handleType(double, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(?)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_rhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_rhs.dart.intertwined.expect
index 1fc7fdf..e6c550d 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_rhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_logical_or_rhs.dart.intertwined.expect
@@ -69,21 +69,21 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(int, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
- parseVariablePattern(||, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
+ parseVariablePattern(||, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(double, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(double, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_map_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_map_pattern.dart.intertwined.expect
index a4edaa2..b86afa3 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_map_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_map_pattern.dart.intertwined.expect
@@ -69,10 +69,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(case, isRefutableContext: true)
+ parseMapPatternSuffix(case, PatternContext.matching)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -83,8 +83,8 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_parenthesized_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_parenthesized_pattern.dart.intertwined.expect
index aff6005..bd6716e 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_parenthesized_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_parenthesized_pattern.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_implicitly_named.dart.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_implicitly_named.dart.expect
index dabdcb9..85c01f1 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_implicitly_named.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_implicitly_named.dart.expect
@@ -29,7 +29,7 @@
beginCaseExpression(case)
handleNoName(()
handleNoType(var)
- handleVariablePattern(var, n)
+ handleVariablePattern(var, n, false)
beginAsOperatorType(as)
handleIdentifier(int, typeReference)
handleNoTypeArguments(,)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_implicitly_named.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_implicitly_named.dart.intertwined.expect
index f608927..a0a8179 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_implicitly_named.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_implicitly_named.dart.intertwined.expect
@@ -69,15 +69,15 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
listener: handleNoName(()
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
+ parseVariablePattern(:, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, n)
+ listener: handleVariablePattern(var, n, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(int, typeReference)
@@ -86,8 +86,8 @@
listener: endAsOperatorType(as)
listener: handleCastPattern(as)
listener: handlePatternField(:)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_named.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_named.dart.intertwined.expect
index 82dddc2..4a309ea 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_named.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_named.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
ensureIdentifier((, namedRecordFieldReference)
listener: handleIdentifier(n, namedRecordFieldReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
@@ -90,8 +90,8 @@
listener: endAsOperatorType(as)
listener: handleCastPattern(as)
listener: handlePatternField(:)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_unnamed.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_unnamed.dart.intertwined.expect
index cf2cb93..8c639e8 100644
--- a/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_unnamed.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/cast_inside_record_pattern_unnamed.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
@@ -88,8 +88,8 @@
listener: endAsOperatorType(as)
listener: handleCastPattern(as)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_builtin.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_builtin.dart.intertwined.expect
index 97aba29..7a3e069 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_builtin.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_builtin.dart.intertwined.expect
@@ -131,8 +131,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideCase.dart.intertwined.expect
index 3b82366..63f0097 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideCase.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideCast.dart.intertwined.expect
index 9d4779c..9caf2c9 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideCast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideIfCase.dart.intertwined.expect
index bbf6005..1f8ba62 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideIfCase.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideNullAssert.dart.intertwined.expect
index 4474c1e..c055a0a 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideNullAssert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideNullCheck.dart.intertwined.expect
index 0b77517..d52cbbe 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_insideNullCheck.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_pseudoKeyword.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_pseudoKeyword.dart.intertwined.expect
index 112a32d..9e09325 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_pseudoKeyword.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_doublyPrefixed_pseudoKeyword.dart.intertwined.expect
@@ -131,8 +131,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_case.dart.intertwined.expect
index 77d1048..a826821 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_case.dart.intertwined.expect
@@ -98,8 +98,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_cast.dart.intertwined.expect
index bfdbe23..d13f09a2 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_cast.dart.intertwined.expect
@@ -98,8 +98,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_if_case.dart.intertwined.expect
index 5fbdaf0..467dfb9 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_if_case.dart.intertwined.expect
@@ -90,8 +90,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_null_assert.dart.intertwined.expect
index 8eb976c..0edd0ab 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_null_assert.dart.intertwined.expect
@@ -98,8 +98,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_null_check.dart.intertwined.expect
index e6eb394..37406ac 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_inside_null_check.dart.intertwined.expect
@@ -98,8 +98,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixedWithUnderscore_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixedWithUnderscore_insideCase.dart.intertwined.expect
index d2e28a3..53f9175 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixedWithUnderscore_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixedWithUnderscore_insideCase.dart.intertwined.expect
@@ -66,8 +66,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_builtin.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_builtin.dart.intertwined.expect
index b54e7fb..d994b09 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_builtin.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_builtin.dart.intertwined.expect
@@ -118,8 +118,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideCase.dart.intertwined.expect
index 711c7ac..945a9551 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideCase.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideCast.dart.intertwined.expect
index 4cb5a81..1e16276 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideCast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideIfCase.dart.intertwined.expect
index 6b82410..831aef0 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideIfCase.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideNullAssert.dart.intertwined.expect
index 529d859..fcb2700 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideNullAssert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideNullCheck.dart.intertwined.expect
index d4370df..f402196 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_insideNullCheck.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_pseudoKeyword.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_pseudoKeyword.dart.intertwined.expect
index d657127..c2fecd2 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_pseudoKeyword.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_prefixed_pseudoKeyword.dart.intertwined.expect
@@ -118,8 +118,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_beforeWhen.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_beforeWhen.dart.intertwined.expect
index 09b8c7c..53049cb 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_beforeWhen.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_beforeWhen.dart.intertwined.expect
@@ -95,8 +95,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_builtin.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_builtin.dart.intertwined.expect
index 74822cc..6c4acbb 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_builtin.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_builtin.dart.intertwined.expect
@@ -105,8 +105,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_insideSwitchExpression.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_insideSwitchExpression.dart.intertwined.expect
index 6f89a56..2b4316c 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_insideSwitchExpression.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_insideSwitchExpression.dart.intertwined.expect
@@ -68,8 +68,8 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
parsePrecedenceExpression({, 17, false)
parseUnaryExpression({, false)
parsePrimary({, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_pseudoKeyword.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_pseudoKeyword.dart.intertwined.expect
index f93c4b0..625508e 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_pseudoKeyword.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_identifier_unprefixed_pseudoKeyword.dart.intertwined.expect
@@ -105,8 +105,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideCase.dart.intertwined.expect
index cf79697..f1e4d5c 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideCase.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideCast.dart.intertwined.expect
index abda7aa..ffd8541 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideCast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideIfCase.dart.intertwined.expect
index 87bd6d7..8ba24be 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideIfCase.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideNullAssert.dart.intertwined.expect
index 7d76540..e21948c 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideNullAssert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideNullCheck.dart.intertwined.expect
index bbfddee..07f853d 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_typed_empty_insideNullCheck.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideCase.dart.intertwined.expect
index cfecb37..74e32db 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideCase.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideCast.dart.intertwined.expect
index 1df5f1a..cd614ea 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideCast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideIfCase.dart.intertwined.expect
index b46f1cc..b514275 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideIfCase.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideNullAssert.dart.intertwined.expect
index 44a10c23..ab2984e 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideNullAssert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideNullCheck.dart.intertwined.expect
index d6f53f8..5615bdb 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_typed_nonEmpty_insideNullCheck.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideCase.dart.intertwined.expect
index 3d89775..2b091b3 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideCase.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideCast.dart.intertwined.expect
index da751d9..467fb1e 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideCast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideIfCase.dart.intertwined.expect
index bc000dd..23693bd 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideIfCase.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideNullAssert.dart.intertwined.expect
index c8d3737..ef9a1976 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideNullAssert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideNullCheck.dart.intertwined.expect
index 2fa02f0..914214d 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_empty_insideNullCheck.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideCase.dart.intertwined.expect
index 2d16fc6..20b0292 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideCase.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideCast.dart.intertwined.expect
index bc12440..3e8765df 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideCast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideIfCase.dart.intertwined.expect
index f8c8fce..8bc259c 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideIfCase.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideNullAssert.dart.intertwined.expect
index 2c9cb9d..41e00e2 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideNullAssert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideNullCheck.dart.intertwined.expect
index 529c0ca..b58b956 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_list_untyped_nonEmpty_insideNullCheck.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideCase.dart.intertwined.expect
index e66dc5a..62dbd5e 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideCase.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideCast.dart.intertwined.expect
index cec2c64..a19e1cd 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideCast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideIfCase.dart.intertwined.expect
index 814781d..5de20af 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideIfCase.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideNullAssert.dart.intertwined.expect
index 2953c49..1ec5226 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideNullAssert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideNullCheck.dart.intertwined.expect
index 8741a27..287b474 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_map_typed_insideNullCheck.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideCase.dart.intertwined.expect
index b279dfd..1df115c 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideCase.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideCast.dart.intertwined.expect
index 9e8b736..cf08341 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideCast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideIfCase.dart.intertwined.expect
index 922d1a9..5f4a6ff 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideIfCase.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideNullAssert.dart.intertwined.expect
index 1cda99b..55eb8d4 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideNullAssert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideNullCheck.dart.intertwined.expect
index 3bb1045..c2e9b86 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_map_untyped_insideNullCheck.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideCase.dart.intertwined.expect
index 8ed47ae3..7744850 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideCase.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideCast.dart.intertwined.expect
index 9226b57..6163756 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideCast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideIfCase.dart.intertwined.expect
index 19ee169..0c53e46 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideIfCase.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideNullAssert.dart.intertwined.expect
index ef176e8..92d8992 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideNullAssert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideNullCheck.dart.intertwined.expect
index 87732c6..76a331f 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_objectExpression_insideNullCheck.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideCase.dart.intertwined.expect
index 9b548d0..13baa44 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideCase.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideCast.dart.intertwined.expect
index bdaa899..6ef8f98 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideCast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideIfCase.dart.intertwined.expect
index 9e6ce5bb..f689a3e 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideIfCase.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideNullAssert.dart.intertwined.expect
index 039af5b..bc57b81 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideNullAssert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideNullCheck.dart.intertwined.expect
index f8d1a04..01f56bb 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_parenthesized_insideNullCheck.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideCase.dart.intertwined.expect
index 2085bb9..1310d56 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideCase.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideCast.dart.intertwined.expect
index 431879a..fd2e299 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideCast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideIfCase.dart.intertwined.expect
index 668cdb6..1ad4783 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideIfCase.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideNullAssert.dart.intertwined.expect
index 0c2f5e1..c1cbd3d 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideNullAssert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideNullCheck.dart.intertwined.expect
index 5b126ed..90d53ed 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_set_typed_insideNullCheck.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideCase.dart.intertwined.expect
index 3b0d39a..2f86114 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideCase.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideCast.dart.intertwined.expect
index 8bb8e06..ee986c1 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideCast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideIfCase.dart.intertwined.expect
index 7964395..a7d122c 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideIfCase.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideNullAssert.dart.intertwined.expect
index 8575618..09922178 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideNullAssert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideNullCheck.dart.intertwined.expect
index 8afddc3..a43de97 100644
--- a/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/constant_set_untyped_insideNullCheck.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/double_literal_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/double_literal_inside_case.dart.intertwined.expect
index 5dca641..074a32d 100644
--- a/pkg/front_end/parser_testcases/patterns/double_literal_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/double_literal_inside_case.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/double_literal_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/double_literal_inside_cast.dart.intertwined.expect
index 4c8ff87..31882d5 100644
--- a/pkg/front_end/parser_testcases/patterns/double_literal_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/double_literal_inside_cast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/double_literal_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/double_literal_inside_if_case.dart.intertwined.expect
index 721068a..9a582ef 100644
--- a/pkg/front_end/parser_testcases/patterns/double_literal_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/double_literal_inside_if_case.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/double_literal_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/double_literal_inside_null_assert.dart.intertwined.expect
index 9199719..5b52989 100644
--- a/pkg/front_end/parser_testcases/patterns/double_literal_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/double_literal_inside_null_assert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/double_literal_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/double_literal_inside_null_check.dart.intertwined.expect
index c6e5e8d..480b1a1 100644
--- a/pkg/front_end/parser_testcases/patterns/double_literal_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/double_literal_inside_null_check.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/extractor_pattern_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/extractor_pattern_inside_cast.dart.intertwined.expect
index bfae2dc..5dafd3f 100644
--- a/pkg/front_end/parser_testcases/patterns/extractor_pattern_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/extractor_pattern_inside_cast.dart.intertwined.expect
@@ -113,14 +113,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: true)
+ parseObjectPatternRest(C, PatternContext.matching)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(f, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/extractor_pattern_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/extractor_pattern_inside_null_assert.dart.intertwined.expect
index 3a2789a..91d15db 100644
--- a/pkg/front_end/parser_testcases/patterns/extractor_pattern_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/extractor_pattern_inside_null_assert.dart.intertwined.expect
@@ -113,14 +113,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: true)
+ parseObjectPatternRest(C, PatternContext.matching)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(f, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/extractor_pattern_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/extractor_pattern_inside_null_check.dart.intertwined.expect
index 6c79e1c..6a5a19a 100644
--- a/pkg/front_end/parser_testcases/patterns/extractor_pattern_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/extractor_pattern_inside_null_check.dart.intertwined.expect
@@ -113,14 +113,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: true)
+ parseObjectPatternRest(C, PatternContext.matching)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(f, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/extractor_pattern_with_type_args.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/extractor_pattern_with_type_args.dart.intertwined.expect
index 37c544a..8ca26ce 100644
--- a/pkg/front_end/parser_testcases/patterns/extractor_pattern_with_type_args.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/extractor_pattern_with_type_args.dart.intertwined.expect
@@ -104,14 +104,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseObjectPatternRest(>, isRefutableContext: true)
+ parseObjectPatternRest(>, PatternContext.matching)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(C, null, null)
ensureColon())
diff --git a/pkg/front_end/parser_testcases/patterns/extractor_pattern_with_type_args_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/extractor_pattern_with_type_args_inside_null_assert.dart.intertwined.expect
index bf05643..fdf7e27 100644
--- a/pkg/front_end/parser_testcases/patterns/extractor_pattern_with_type_args_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/extractor_pattern_with_type_args_inside_null_assert.dart.intertwined.expect
@@ -121,18 +121,18 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseObjectPatternRest(>, isRefutableContext: true)
+ parseObjectPatternRest(>, PatternContext.matching)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(f, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/extractor_prefixedNamedUnderscore_withTypeArgs_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/extractor_prefixedNamedUnderscore_withTypeArgs_insideCase.dart.intertwined.expect
index c7c4d01..f770d35 100644
--- a/pkg/front_end/parser_testcases/patterns/extractor_prefixedNamedUnderscore_withTypeArgs_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/extractor_prefixedNamedUnderscore_withTypeArgs_insideCase.dart.intertwined.expect
@@ -66,14 +66,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseObjectPatternRest(>, isRefutableContext: true)
+ parseObjectPatternRest(>, PatternContext.matching)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(_, ., Future)
ensureColon())
diff --git a/pkg/front_end/parser_testcases/patterns/extractor_prefixedNamedUnderscore_withoutTypeArgs_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/extractor_prefixedNamedUnderscore_withoutTypeArgs_insideCase.dart.intertwined.expect
index f1a4fb9..bb77a2d 100644
--- a/pkg/front_end/parser_testcases/patterns/extractor_prefixedNamedUnderscore_withoutTypeArgs_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/extractor_prefixedNamedUnderscore_withoutTypeArgs_insideCase.dart.intertwined.expect
@@ -66,10 +66,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(Future, isRefutableContext: true)
+ parseObjectPatternRest(Future, PatternContext.matching)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(_, ., Future)
ensureColon())
diff --git a/pkg/front_end/parser_testcases/patterns/extractor_unprefixedNamedUnderscore_withTypeArgs_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/extractor_unprefixedNamedUnderscore_withTypeArgs_insideCase.dart.intertwined.expect
index 66c28bd..b29259b 100644
--- a/pkg/front_end/parser_testcases/patterns/extractor_unprefixedNamedUnderscore_withTypeArgs_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/extractor_unprefixedNamedUnderscore_withTypeArgs_insideCase.dart.intertwined.expect
@@ -66,14 +66,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseObjectPatternRest(>, isRefutableContext: true)
+ parseObjectPatternRest(>, PatternContext.matching)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(_, null, null)
ensureColon())
diff --git a/pkg/front_end/parser_testcases/patterns/extractor_unprefixedNamedUnderscore_withoutTypeArgs_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/extractor_unprefixedNamedUnderscore_withoutTypeArgs_insideCase.dart.intertwined.expect
index 5e889cc4..a413a46 100644
--- a/pkg/front_end/parser_testcases/patterns/extractor_unprefixedNamedUnderscore_withoutTypeArgs_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/extractor_unprefixedNamedUnderscore_withoutTypeArgs_insideCase.dart.intertwined.expect
@@ -66,10 +66,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(_, isRefutableContext: true)
+ parseObjectPatternRest(_, PatternContext.matching)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(_, null, null)
ensureColon())
diff --git a/pkg/front_end/parser_testcases/patterns/final_variable_inside_case.dart.expect b/pkg/front_end/parser_testcases/patterns/final_variable_inside_case.dart.expect
index 1d75c91..bf701cf 100644
--- a/pkg/front_end/parser_testcases/patterns/final_variable_inside_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/final_variable_inside_case.dart.expect
@@ -28,7 +28,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(final)
- handleVariablePattern(final, y)
+ handleVariablePattern(final, y, false)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
handleBreakStatement(false, break, ;)
diff --git a/pkg/front_end/parser_testcases/patterns/final_variable_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/final_variable_inside_case.dart.intertwined.expect
index 7518379..5039700 100644
--- a/pkg/front_end/parser_testcases/patterns/final_variable_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/final_variable_inside_case.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(final)
- listener: handleVariablePattern(final, y)
+ listener: handleVariablePattern(final, y, false)
ensureColon(y)
listener: endCaseExpression(case, null, :)
peekPastLabels(break)
diff --git a/pkg/front_end/parser_testcases/patterns/final_variable_inside_cast.dart.expect b/pkg/front_end/parser_testcases/patterns/final_variable_inside_cast.dart.expect
index 80d63f7..53d4c95 100644
--- a/pkg/front_end/parser_testcases/patterns/final_variable_inside_cast.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/final_variable_inside_cast.dart.expect
@@ -28,7 +28,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(final)
- handleVariablePattern(final, y)
+ handleVariablePattern(final, y, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(:)
diff --git a/pkg/front_end/parser_testcases/patterns/final_variable_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/final_variable_inside_cast.dart.intertwined.expect
index 7e74dcc..a357004 100644
--- a/pkg/front_end/parser_testcases/patterns/final_variable_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/final_variable_inside_cast.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(final)
- listener: handleVariablePattern(final, y)
+ listener: handleVariablePattern(final, y, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/final_variable_inside_if_case.dart.expect b/pkg/front_end/parser_testcases/patterns/final_variable_inside_if_case.dart.expect
index 58c69d9..3f6453f 100644
--- a/pkg/front_end/parser_testcases/patterns/final_variable_inside_if_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/final_variable_inside_if_case.dart.expect
@@ -25,7 +25,7 @@
handleNoArguments(case)
handleSend(x, case)
handleNoType(final)
- handleVariablePattern(final, y)
+ handleVariablePattern(final, y, false)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
beginBlock({, BlockKind(statement))
diff --git a/pkg/front_end/parser_testcases/patterns/final_variable_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/final_variable_inside_if_case.dart.intertwined.expect
index d4fcfb3..fbe35fd 100644
--- a/pkg/front_end/parser_testcases/patterns/final_variable_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/final_variable_inside_if_case.dart.intertwined.expect
@@ -61,11 +61,11 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(final)
- listener: handleVariablePattern(final, y)
+ listener: handleVariablePattern(final, y, false)
ensureCloseParen(y, ()
listener: handleParenthesizedCondition((, case, null)
listener: beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_assert.dart.expect b/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_assert.dart.expect
index c9bf2ae..6d99048 100644
--- a/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_assert.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_assert.dart.expect
@@ -28,7 +28,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(final)
- handleVariablePattern(final, y)
+ handleVariablePattern(final, y, false)
handleNullAssertPattern(!)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_assert.dart.intertwined.expect
index a05368d..aa192b4 100644
--- a/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_assert.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(final)
- listener: handleVariablePattern(final, y)
+ listener: handleVariablePattern(final, y, false)
listener: handleNullAssertPattern(!)
ensureColon(!)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_check.dart.expect b/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_check.dart.expect
index 9f5f380..af7172d 100644
--- a/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_check.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_check.dart.expect
@@ -28,7 +28,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(final)
- handleVariablePattern(final, y)
+ handleVariablePattern(final, y, false)
handleNullCheckPattern(?)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_check.dart.intertwined.expect
index 87f0321..1ca4c92 100644
--- a/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/final_variable_inside_null_check.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(final)
- listener: handleVariablePattern(final, y)
+ listener: handleVariablePattern(final, y, false)
listener: handleNullCheckPattern(?)
ensureColon(?)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_element.dart.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_element.dart.expect
index 62c4b0d..83bb0ea 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_element.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_element.dart.expect
@@ -30,7 +30,7 @@
handleNoArguments(case)
handleSend(x, case)
handleNoType(case)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleIdentifier(y, expression)
handleNoTypeArguments(+)
handleNoArguments(+)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_element.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_element.dart.intertwined.expect
index 15615fa..de77693 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_element.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_element.dart.intertwined.expect
@@ -73,11 +73,11 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(case)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_statement.dart.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_statement.dart.expect
index 6b1a589..a300270 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_statement.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_statement.dart.expect
@@ -30,7 +30,7 @@
handleNoArguments(case)
handleSend(x, case)
handleNoType(case)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleIdentifier(y, expression)
handleNoTypeArguments(+)
handleNoArguments(+)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_statement.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_statement.dart.intertwined.expect
index 2f39dad..5a9709a 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_statement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideIfCaseWhenClause_statement.dart.intertwined.expect
@@ -69,11 +69,11 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(case)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideListPattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideListPattern.dart.intertwined.expect
index 7f3c915..7697b15 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideListPattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideListPattern.dart.intertwined.expect
@@ -68,12 +68,12 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix({, isRefutableContext: true)
- parsePattern([, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern([, isRefutableContext: true)
+ parseListPatternSuffix({, PatternContext.matching)
+ parsePattern([, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern([, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideMapPattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideMapPattern.dart.intertwined.expect
index d09a90d..9861736 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideMapPattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideMapPattern.dart.intertwined.expect
@@ -68,10 +68,10 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix({, isRefutableContext: true)
+ parseMapPatternSuffix({, PatternContext.matching)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -82,8 +82,8 @@
parseSingleLiteralString({)
listener: beginLiteralString('x')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideObjectPattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideObjectPattern.dart.intertwined.expect
index 758e860..8cb22df 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideObjectPattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideObjectPattern.dart.intertwined.expect
@@ -68,14 +68,14 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(Foo, isRefutableContext: true)
+ parseObjectPatternRest(Foo, PatternContext.matching)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(bar, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideParenthesizedConstPattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideParenthesizedConstPattern.dart.intertwined.expect
index 233de11..9e70f6f 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideParenthesizedConstPattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideParenthesizedConstPattern.dart.intertwined.expect
@@ -68,8 +68,8 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideParenthesizedPattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideParenthesizedPattern.dart.intertwined.expect
index 97b833b..7ee901e 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideParenthesizedPattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideParenthesizedPattern.dart.intertwined.expect
@@ -68,11 +68,11 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern({, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern({, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_guarded.dart.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_guarded.dart.expect
index 2914ad8..839eefc 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_guarded.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_guarded.dart.expect
@@ -25,7 +25,7 @@
beginSwitchExpressionBlock({)
beginSwitchExpressionCase()
handleNoType({)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginSwitchExpression(switch)
handleIdentifier(x, expression)
handleNoTypeArguments())
@@ -35,7 +35,7 @@
beginSwitchExpressionBlock({)
beginSwitchExpressionCase()
handleNoType({)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleLiteralBool(true)
handleNoTypeVariables(()
beginFunctionExpression(()
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_guarded.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_guarded.dart.intertwined.expect
index 4765fe3..2370762 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_guarded.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_guarded.dart.intertwined.expect
@@ -68,11 +68,11 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
- parseVariablePattern({, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
+ parseVariablePattern({, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType({)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
@@ -105,11 +105,11 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
- parseVariablePattern({, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
+ parseVariablePattern({, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType({)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_unguarded.dart.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_unguarded.dart.expect
index 5489461..e75ae7d 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_unguarded.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_unguarded.dart.expect
@@ -25,7 +25,7 @@
beginSwitchExpressionBlock({)
beginSwitchExpressionCase()
handleNoType({)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginSwitchExpression(switch)
handleIdentifier(x, expression)
handleNoTypeArguments())
@@ -35,7 +35,7 @@
beginSwitchExpressionBlock({)
beginSwitchExpressionCase()
handleNoType({)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleNoTypeVariables(()
beginFunctionExpression(()
beginFormalParameters((, MemberKind.Local)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_unguarded.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_unguarded.dart.intertwined.expect
index 83b6117..d39675b 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_unguarded.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchExpressionCase_unguarded.dart.intertwined.expect
@@ -68,11 +68,11 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
- parseVariablePattern({, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
+ parseVariablePattern({, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType({)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
@@ -105,11 +105,11 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
- parseVariablePattern({, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
+ parseVariablePattern({, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType({)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
ensureFunctionArrow(_)
parseExpression(=>)
looksLikeOuterPatternEquals(=>)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchStatementInWhenClause.dart.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchStatementInWhenClause.dart.expect
index 7bcdc50..d20b829 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchStatementInWhenClause.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchStatementInWhenClause.dart.expect
@@ -33,7 +33,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(case)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleIdentifier(y, expression)
handleNoTypeArguments(+)
handleNoArguments(+)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchStatementInWhenClause.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchStatementInWhenClause.dart.intertwined.expect
index 873bb8a..1c663d7 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchStatementInWhenClause.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_insideSwitchStatementInWhenClause.dart.intertwined.expect
@@ -77,11 +77,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(case)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterListPattern.dart.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterListPattern.dart.expect
index a4e8424..71d03d3 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterListPattern.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterListPattern.dart.expect
@@ -26,7 +26,7 @@
beginSwitchExpressionCase()
handleNoTypeArguments([)
handleNoType([)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleListPattern(1, [, ])
beginParenthesizedExpressionOrRecordLiteral(()
endRecordLiteral((, 0, null)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterListPattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterListPattern.dart.intertwined.expect
index 4adb62d..cea5f98 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterListPattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterListPattern.dart.intertwined.expect
@@ -68,15 +68,15 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix({, isRefutableContext: true)
- parsePattern([, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern([, isRefutableContext: true)
- parseVariablePattern([, typeInfo: Instance of 'NoType')
+ parseListPatternSuffix({, PatternContext.matching)
+ parsePattern([, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern([, PatternContext.matching)
+ parseVariablePattern([, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType([)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: handleListPattern(1, [, ])
parseExpression(when)
looksLikeOuterPatternEquals(when)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterMapPattern.dart.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterMapPattern.dart.expect
index 8107fc2..fbdfcf2 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterMapPattern.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterMapPattern.dart.expect
@@ -28,7 +28,7 @@
beginLiteralString('x')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleMapPatternEntry(:, })
handleMapPattern(1, {, })
beginParenthesizedExpressionOrRecordLiteral(()
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterMapPattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterMapPattern.dart.intertwined.expect
index 45e47dd..d3323d4 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterMapPattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterMapPattern.dart.intertwined.expect
@@ -68,10 +68,10 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix({, isRefutableContext: true)
+ parseMapPatternSuffix({, PatternContext.matching)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -82,11 +82,11 @@
parseSingleLiteralString({)
listener: beginLiteralString('x')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
+ parseVariablePattern(:, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: handleMapPatternEntry(:, })
listener: handleMapPattern(1, {, })
parseExpression(when)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterObjectPattern.dart.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterObjectPattern.dart.expect
index fb59b3f..17a47ef 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterObjectPattern.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterObjectPattern.dart.expect
@@ -27,7 +27,7 @@
handleNoTypeArguments(()
handleIdentifier(bar, namedArgumentReference)
handleNoType(:)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handlePatternField(:)
handleObjectPatternFields(1, (, ))
handleObjectPattern(Foo, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterObjectPattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterObjectPattern.dart.intertwined.expect
index bbd787f..362f39b 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterObjectPattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterObjectPattern.dart.intertwined.expect
@@ -68,17 +68,17 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(Foo, isRefutableContext: true)
+ parseObjectPatternRest(Foo, PatternContext.matching)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(bar, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
+ parseVariablePattern(:, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: handlePatternField(:)
listener: handleObjectPatternFields(1, (, ))
listener: handleObjectPattern(Foo, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterParenthesizedPattern.dart.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterParenthesizedPattern.dart.expect
index 3c7c550..adb8c11 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterParenthesizedPattern.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterParenthesizedPattern.dart.expect
@@ -25,7 +25,7 @@
beginSwitchExpressionBlock({)
beginSwitchExpressionCase()
handleNoType(()
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleParenthesizedPattern(()
beginParenthesizedExpressionOrRecordLiteral(()
endRecordLiteral((, 0, null)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterParenthesizedPattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterParenthesizedPattern.dart.intertwined.expect
index 089c757..70f50ec 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterParenthesizedPattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterParenthesizedPattern.dart.intertwined.expect
@@ -68,14 +68,14 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern({, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern({, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
+ parseVariablePattern((, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
ensureCloseParen(_, ()
listener: handleParenthesizedPattern(()
parseExpression(when)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterSwitchExpressionInWhenClause.dart.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterSwitchExpressionInWhenClause.dart.expect
index 3b0ac92..d96cbce 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterSwitchExpressionInWhenClause.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterSwitchExpressionInWhenClause.dart.expect
@@ -25,7 +25,7 @@
beginSwitchExpressionBlock({)
beginSwitchExpressionCase()
handleNoType({)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginSwitchExpression(switch)
handleIdentifier(x, expression)
handleNoTypeArguments())
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterSwitchExpressionInWhenClause.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterSwitchExpressionInWhenClause.dart.intertwined.expect
index ca03d26..50d1a34 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterSwitchExpressionInWhenClause.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_afterSwitchExpressionInWhenClause.dart.intertwined.expect
@@ -68,11 +68,11 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
- parseVariablePattern({, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
+ parseVariablePattern({, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType({)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_insideSwitchExpressionInWhenClause.dart.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_insideSwitchExpressionInWhenClause.dart.expect
index 159847a..1b9122c 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_insideSwitchExpressionInWhenClause.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_insideSwitchExpressionInWhenClause.dart.expect
@@ -32,7 +32,7 @@
beginSwitchExpressionBlock({)
beginSwitchExpressionCase()
handleNoType({)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleIdentifier(y, expression)
handleNoTypeArguments(+)
handleNoArguments(+)
diff --git a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_insideSwitchExpressionInWhenClause.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_insideSwitchExpressionInWhenClause.dart.intertwined.expect
index f8ea54f..4c2f6bf 100644
--- a/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_insideSwitchExpressionInWhenClause.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/functionExpression_disallowed_insideSwitchExpressionInWhenClause.dart.intertwined.expect
@@ -78,11 +78,11 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
- parseVariablePattern({, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
+ parseVariablePattern({, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType({)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
diff --git a/pkg/front_end/parser_testcases/patterns/integer_literal_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/integer_literal_inside_case.dart.intertwined.expect
index 764a624..b35c5c7 100644
--- a/pkg/front_end/parser_testcases/patterns/integer_literal_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/integer_literal_inside_case.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/integer_literal_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/integer_literal_inside_cast.dart.intertwined.expect
index 77fbfe0..03f2ce3 100644
--- a/pkg/front_end/parser_testcases/patterns/integer_literal_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/integer_literal_inside_cast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/integer_literal_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/integer_literal_inside_if_case.dart.intertwined.expect
index b1c0dde..ebf4852 100644
--- a/pkg/front_end/parser_testcases/patterns/integer_literal_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/integer_literal_inside_if_case.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/integer_literal_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/integer_literal_inside_null_assert.dart.intertwined.expect
index e8178df..9684b99 100644
--- a/pkg/front_end/parser_testcases/patterns/integer_literal_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/integer_literal_inside_null_assert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/integer_literal_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/integer_literal_inside_null_check.dart.intertwined.expect
index aecb835..4fc7a7c 100644
--- a/pkg/front_end/parser_testcases/patterns/integer_literal_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/integer_literal_inside_null_check.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/issue50591.dart.expect b/pkg/front_end/parser_testcases/patterns/issue50591.dart.expect
index 96aa656..616b764 100644
--- a/pkg/front_end/parser_testcases/patterns/issue50591.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/issue50591.dart.expect
@@ -39,7 +39,7 @@
beginSwitchExpressionBlock({)
beginSwitchExpressionCase()
handleNoType({)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleIdentifier(a, expression)
handleNoTypeArguments(()
beginArguments(()
diff --git a/pkg/front_end/parser_testcases/patterns/issue50591.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/issue50591.dart.intertwined.expect
index e86e853..c5b75b9 100644
--- a/pkg/front_end/parser_testcases/patterns/issue50591.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/issue50591.dart.intertwined.expect
@@ -88,11 +88,11 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
- parseVariablePattern({, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
+ parseVariablePattern({, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType({)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
diff --git a/pkg/front_end/parser_testcases/patterns/issue50591_example2.dart.expect b/pkg/front_end/parser_testcases/patterns/issue50591_example2.dart.expect
index abb05ed..3753b96 100644
--- a/pkg/front_end/parser_testcases/patterns/issue50591_example2.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/issue50591_example2.dart.expect
@@ -44,7 +44,7 @@
endSwitchExpressionCase(null, =>, 0)
beginSwitchExpressionCase()
handleNoType(,)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleLiteralInt(1)
endSwitchExpressionCase(null, =>, 1)
endSwitchExpressionBlock(2, {, })
diff --git a/pkg/front_end/parser_testcases/patterns/issue50591_example2.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/issue50591_example2.dart.intertwined.expect
index fa4b238..dfde1aaf 100644
--- a/pkg/front_end/parser_testcases/patterns/issue50591_example2.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/issue50591_example2.dart.intertwined.expect
@@ -85,8 +85,8 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
@@ -114,11 +114,11 @@
listener: handleLiteralInt(0)
listener: endSwitchExpressionCase(null, =>, 0)
listener: beginSwitchExpressionCase()
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
+ parseVariablePattern(,, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
ensureFunctionArrow(_)
parseExpression(=>)
looksLikeOuterPatternEquals(=>)
diff --git a/pkg/front_end/parser_testcases/patterns/list_insideAssignment_typed_nonEmpty.dart.expect b/pkg/front_end/parser_testcases/patterns/list_insideAssignment_typed_nonEmpty.dart.expect
index 5a0299c..0e83f25 100644
--- a/pkg/front_end/parser_testcases/patterns/list_insideAssignment_typed_nonEmpty.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_insideAssignment_typed_nonEmpty.dart.expect
@@ -23,9 +23,9 @@
handleType(int, null)
endTypeArguments(1, <, >)
handleNoType([)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, true)
handleNoType(,)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, true)
handleListPattern(2, [, ])
handleIdentifier(x, expression)
handleNoTypeArguments(;)
diff --git a/pkg/front_end/parser_testcases/patterns/list_insideAssignment_typed_nonEmpty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_insideAssignment_typed_nonEmpty.dart.intertwined.expect
index 370c1c3..edc3cbe 100644
--- a/pkg/front_end/parser_testcases/patterns/list_insideAssignment_typed_nonEmpty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_insideAssignment_typed_nonEmpty.dart.intertwined.expect
@@ -46,24 +46,24 @@
looksLikeOuterPatternEquals({)
skipOuterPattern({)
parsePatternAssignment({)
- parsePattern({, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern({, isRefutableContext: false)
+ parsePattern({, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern({, PatternContext.assignment)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseListPatternSuffix(>, isRefutableContext: false)
- parsePattern([, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern([, isRefutableContext: false)
- parseVariablePattern([, typeInfo: Instance of 'NoType')
+ parseListPatternSuffix(>, PatternContext.assignment)
+ parsePattern([, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern([, PatternContext.assignment)
+ parseVariablePattern([, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType([)
- listener: handleVariablePattern(null, a)
- parsePattern(,, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(,, isRefutableContext: false)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ listener: handleVariablePattern(null, a, true)
+ parsePattern(,, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.assignment)
+ parseVariablePattern(,, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, true)
listener: handleListPattern(2, [, ])
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_empty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_empty.dart.intertwined.expect
index 765865e..6e5150e 100644
--- a/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_empty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_empty.dart.intertwined.expect
@@ -46,10 +46,10 @@
looksLikeOuterPatternEquals({)
skipOuterPattern({)
parsePatternAssignment({)
- parsePattern({, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern({, isRefutableContext: false)
+ parsePattern({, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern({, PatternContext.assignment)
listener: handleNoTypeArguments([])
- parseListPatternSuffix({, isRefutableContext: false)
+ parseListPatternSuffix({, PatternContext.assignment)
rewriteSquareBrackets({)
link([, ])
rewriter()
diff --git a/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_emptyWithWhitespace.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_emptyWithWhitespace.dart.intertwined.expect
index 7f9f607..167ef33 100644
--- a/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_emptyWithWhitespace.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_emptyWithWhitespace.dart.intertwined.expect
@@ -46,10 +46,10 @@
looksLikeOuterPatternEquals({)
skipOuterPattern({)
parsePatternAssignment({)
- parsePattern({, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern({, isRefutableContext: false)
+ parsePattern({, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern({, PatternContext.assignment)
listener: handleNoTypeArguments([)
- parseListPatternSuffix({, isRefutableContext: false)
+ parseListPatternSuffix({, PatternContext.assignment)
listener: handleListPattern(0, [, ])
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_nonEmpty.dart.expect b/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_nonEmpty.dart.expect
index 5aba751..a005029 100644
--- a/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_nonEmpty.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_nonEmpty.dart.expect
@@ -19,9 +19,9 @@
beginBlockFunctionBody({)
handleNoTypeArguments([)
handleNoType([)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, true)
handleNoType(,)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, true)
handleListPattern(2, [, ])
handleIdentifier(x, expression)
handleNoTypeArguments(;)
diff --git a/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_nonEmpty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_nonEmpty.dart.intertwined.expect
index a32fef8..130bfe6 100644
--- a/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_nonEmpty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_insideAssignment_untyped_nonEmpty.dart.intertwined.expect
@@ -46,20 +46,20 @@
looksLikeOuterPatternEquals({)
skipOuterPattern({)
parsePatternAssignment({)
- parsePattern({, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern({, isRefutableContext: false)
+ parsePattern({, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern({, PatternContext.assignment)
listener: handleNoTypeArguments([)
- parseListPatternSuffix({, isRefutableContext: false)
- parsePattern([, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern([, isRefutableContext: false)
- parseVariablePattern([, typeInfo: Instance of 'NoType')
+ parseListPatternSuffix({, PatternContext.assignment)
+ parsePattern([, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern([, PatternContext.assignment)
+ parseVariablePattern([, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType([)
- listener: handleVariablePattern(null, a)
- parsePattern(,, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(,, isRefutableContext: false)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ listener: handleVariablePattern(null, a, true)
+ parsePattern(,, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.assignment)
+ parseVariablePattern(,, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, true)
listener: handleListPattern(2, [, ])
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_typed_nonEmpty.dart.expect b/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_typed_nonEmpty.dart.expect
index bf8cf1d..9cdca2a 100644
--- a/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_typed_nonEmpty.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_typed_nonEmpty.dart.expect
@@ -25,9 +25,9 @@
handleType(int, null)
endTypeArguments(1, <, >)
handleNoType([)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleNoType(,)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, false)
handleListPattern(2, [, ])
handleIdentifier(x, expression)
handleNoTypeArguments(;)
diff --git a/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_typed_nonEmpty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_typed_nonEmpty.dart.intertwined.expect
index 024b16b..e4b1685 100644
--- a/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_typed_nonEmpty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_typed_nonEmpty.dart.intertwined.expect
@@ -43,24 +43,24 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseListPatternSuffix(>, isRefutableContext: false)
- parsePattern([, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern([, isRefutableContext: false)
- parseVariablePattern([, typeInfo: Instance of 'NoType')
+ parseListPatternSuffix(>, PatternContext.declaration)
+ parsePattern([, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern([, PatternContext.declaration)
+ parseVariablePattern([, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType([)
- listener: handleVariablePattern(null, a)
- parsePattern(,, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(,, isRefutableContext: false)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ listener: handleVariablePattern(null, a, false)
+ parsePattern(,, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.declaration)
+ parseVariablePattern(,, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, false)
listener: handleListPattern(2, [, ])
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_empty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_empty.dart.intertwined.expect
index e144134..30f3472 100644
--- a/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_empty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_empty.dart.intertwined.expect
@@ -43,10 +43,10 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleNoTypeArguments([])
- parseListPatternSuffix(var, isRefutableContext: false)
+ parseListPatternSuffix(var, PatternContext.declaration)
rewriteSquareBrackets(var)
link([, ])
rewriter()
diff --git a/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_emptyWithWhitespace.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_emptyWithWhitespace.dart.intertwined.expect
index c07267a..ddb8436 100644
--- a/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_emptyWithWhitespace.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_emptyWithWhitespace.dart.intertwined.expect
@@ -43,10 +43,10 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(var, isRefutableContext: false)
+ parseListPatternSuffix(var, PatternContext.declaration)
listener: handleListPattern(0, [, ])
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_nonEmpty.dart.expect b/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_nonEmpty.dart.expect
index deb1c8a..8de6776 100644
--- a/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_nonEmpty.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_nonEmpty.dart.expect
@@ -21,9 +21,9 @@
endMetadataStar(0)
handleNoTypeArguments([)
handleNoType([)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleNoType(,)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, false)
handleListPattern(2, [, ])
handleIdentifier(x, expression)
handleNoTypeArguments(;)
diff --git a/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_nonEmpty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_nonEmpty.dart.intertwined.expect
index c1cd259..7f4fa2b 100644
--- a/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_nonEmpty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_insideDeclaration_untyped_nonEmpty.dart.intertwined.expect
@@ -43,20 +43,20 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(var, isRefutableContext: false)
- parsePattern([, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern([, isRefutableContext: false)
- parseVariablePattern([, typeInfo: Instance of 'NoType')
+ parseListPatternSuffix(var, PatternContext.declaration)
+ parsePattern([, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern([, PatternContext.declaration)
+ parseVariablePattern([, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType([)
- listener: handleVariablePattern(null, a)
- parsePattern(,, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(,, isRefutableContext: false)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ listener: handleVariablePattern(null, a, false)
+ parsePattern(,, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.declaration)
+ parseVariablePattern(,, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, false)
listener: handleListPattern(2, [, ])
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case.dart.intertwined.expect
index 9bee1bd..21e2fe9 100644
--- a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case.dart.intertwined.expect
@@ -69,20 +69,20 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern([, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern([, isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern([, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern([, PatternContext.matching)
parsePrecedenceExpression([, 17, false)
parseUnaryExpression([, false)
parsePrimary([, expression)
parseLiteralInt([)
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case_empty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case_empty.dart.intertwined.expect
index a64a4de..d4972bc 100644
--- a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case_empty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case_empty.dart.intertwined.expect
@@ -69,10 +69,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([])
- parseListPatternSuffix(case, isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
rewriteSquareBrackets(case)
link([, ])
rewriter()
diff --git a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case_empty_whitespace.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case_empty_whitespace.dart.intertwined.expect
index 328818b..b581b40 100644
--- a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case_empty_whitespace.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case_empty_whitespace.dart.intertwined.expect
@@ -69,10 +69,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
listener: handleListPattern(0, [, ])
ensureColon(])
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case_with_type_arguments.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case_with_type_arguments.dart.intertwined.expect
index ef3375b..6778fca 100644
--- a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case_with_type_arguments.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_case_with_type_arguments.dart.intertwined.expect
@@ -69,24 +69,24 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseListPatternSuffix(>, isRefutableContext: true)
- parsePattern([, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern([, isRefutableContext: true)
+ parseListPatternSuffix(>, PatternContext.matching)
+ parsePattern([, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern([, PatternContext.matching)
parsePrecedenceExpression([, 17, false)
parseUnaryExpression([, false)
parsePrimary([, expression)
parseLiteralInt([)
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_cast.dart.intertwined.expect
index a5ffa1e..1944f7a 100644
--- a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_cast.dart.intertwined.expect
@@ -69,12 +69,12 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern([, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern([, isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern([, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern([, PatternContext.matching)
parsePrecedenceExpression([, 17, false)
parseUnaryExpression([, false)
parsePrimary([, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_null_assert.dart.intertwined.expect
index 2baba3e..89df196 100644
--- a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_null_assert.dart.intertwined.expect
@@ -69,12 +69,12 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern([, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern([, isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern([, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern([, PatternContext.matching)
parsePrecedenceExpression([, 17, false)
parseUnaryExpression([, false)
parsePrimary([, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_null_check.dart.intertwined.expect
index 0fbbdd9..ede71b0 100644
--- a/pkg/front_end/parser_testcases/patterns/list_pattern_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/list_pattern_inside_null_check.dart.intertwined.expect
@@ -69,12 +69,12 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern([, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern([, isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern([, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern([, PatternContext.matching)
parsePrecedenceExpression([, 17, false)
parseUnaryExpression([, false)
parsePrimary([, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/logical_and_inside_if_case.dart.expect b/pkg/front_end/parser_testcases/patterns/logical_and_inside_if_case.dart.expect
index a443956..6c81437 100644
--- a/pkg/front_end/parser_testcases/patterns/logical_and_inside_if_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/logical_and_inside_if_case.dart.expect
@@ -27,12 +27,12 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(?)
handleType(int, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginBinaryPattern(&&)
handleIdentifier(double, typeReference)
handleNoTypeArguments(?)
handleType(double, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
endBinaryPattern(&&)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/logical_and_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/logical_and_inside_if_case.dart.intertwined.expect
index 1c74567..7f54f3e 100644
--- a/pkg/front_end/parser_testcases/patterns/logical_and_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/logical_and_inside_if_case.dart.intertwined.expect
@@ -61,21 +61,21 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(int, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
- parseVariablePattern(&&, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
+ parseVariablePattern(&&, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(double, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(double, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: endBinaryPattern(&&)
ensureCloseParen(_, ()
listener: handleParenthesizedCondition((, case, null)
diff --git a/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_and_lhs.dart.expect b/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_and_lhs.dart.expect
index e37b8ce..aaa22b6 100644
--- a/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_and_lhs.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_and_lhs.dart.expect
@@ -30,18 +30,18 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(?)
handleType(int, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginBinaryPattern(&&)
handleIdentifier(double, typeReference)
handleNoTypeArguments(?)
handleType(double, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
endBinaryPattern(&&)
beginBinaryPattern(&&)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(?)
handleType(Object, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
endBinaryPattern(&&)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_and_lhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_and_lhs.dart.intertwined.expect
index 71b1314..cc0ed4e 100644
--- a/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_and_lhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_and_lhs.dart.intertwined.expect
@@ -69,30 +69,30 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(int, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
- parseVariablePattern(&&, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
+ parseVariablePattern(&&, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(double, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(double, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: endBinaryPattern(&&)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
- parseVariablePattern(&&, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
+ parseVariablePattern(&&, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(Object, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(Object, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: endBinaryPattern(&&)
ensureColon(_)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_lhs.dart.expect b/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_lhs.dart.expect
index a0d09fd..da67e08 100644
--- a/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_lhs.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_lhs.dart.expect
@@ -30,18 +30,18 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(?)
handleType(int, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginBinaryPattern(&&)
handleIdentifier(double, typeReference)
handleNoTypeArguments(?)
handleType(double, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
endBinaryPattern(&&)
beginBinaryPattern(||)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(?)
handleType(Object, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
endBinaryPattern(||)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_lhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_lhs.dart.intertwined.expect
index 3fd4460..de424ac 100644
--- a/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_lhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_lhs.dart.intertwined.expect
@@ -69,30 +69,30 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(int, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
- parseVariablePattern(&&, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
+ parseVariablePattern(&&, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(double, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(double, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: endBinaryPattern(&&)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
- parseVariablePattern(||, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
+ parseVariablePattern(||, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(Object, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(Object, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: endBinaryPattern(||)
ensureColon(_)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_rhs.dart.expect b/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_rhs.dart.expect
index 62b3b2a..ea6cae1 100644
--- a/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_rhs.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_rhs.dart.expect
@@ -30,17 +30,17 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(?)
handleType(int, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginBinaryPattern(||)
handleIdentifier(double, typeReference)
handleNoTypeArguments(?)
handleType(double, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginBinaryPattern(&&)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(?)
handleType(Object, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
endBinaryPattern(&&)
endBinaryPattern(||)
endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_rhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_rhs.dart.intertwined.expect
index 0c70eaf..1d9d713 100644
--- a/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_rhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/logical_and_inside_logical_or_rhs.dart.intertwined.expect
@@ -69,29 +69,29 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(int, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
- parseVariablePattern(||, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
+ parseVariablePattern(||, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(double, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(double, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
- parseVariablePattern(&&, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
+ parseVariablePattern(&&, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(Object, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(Object, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: endBinaryPattern(&&)
listener: endBinaryPattern(||)
ensureColon(_)
diff --git a/pkg/front_end/parser_testcases/patterns/logical_or_inside_if_case.dart.expect b/pkg/front_end/parser_testcases/patterns/logical_or_inside_if_case.dart.expect
index bee0cb6..50919db 100644
--- a/pkg/front_end/parser_testcases/patterns/logical_or_inside_if_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/logical_or_inside_if_case.dart.expect
@@ -27,12 +27,12 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(?)
handleType(int, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginBinaryPattern(||)
handleIdentifier(double, typeReference)
handleNoTypeArguments(?)
handleType(double, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
endBinaryPattern(||)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/logical_or_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/logical_or_inside_if_case.dart.intertwined.expect
index 270f6af..90a7bfb 100644
--- a/pkg/front_end/parser_testcases/patterns/logical_or_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/logical_or_inside_if_case.dart.intertwined.expect
@@ -61,21 +61,21 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(int, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
- parseVariablePattern(||, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
+ parseVariablePattern(||, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(double, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(double, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: endBinaryPattern(||)
ensureCloseParen(_, ()
listener: handleParenthesizedCondition((, case, null)
diff --git a/pkg/front_end/parser_testcases/patterns/logical_or_inside_logical_or_lhs.dart.expect b/pkg/front_end/parser_testcases/patterns/logical_or_inside_logical_or_lhs.dart.expect
index 585ccbd..7de3cea 100644
--- a/pkg/front_end/parser_testcases/patterns/logical_or_inside_logical_or_lhs.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/logical_or_inside_logical_or_lhs.dart.expect
@@ -30,18 +30,18 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(?)
handleType(int, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginBinaryPattern(||)
handleIdentifier(double, typeReference)
handleNoTypeArguments(?)
handleType(double, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
endBinaryPattern(||)
beginBinaryPattern(||)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(?)
handleType(Object, ?)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
endBinaryPattern(||)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/logical_or_inside_logical_or_lhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/logical_or_inside_logical_or_lhs.dart.intertwined.expect
index 5f60873..bf48544 100644
--- a/pkg/front_end/parser_testcases/patterns/logical_or_inside_logical_or_lhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/logical_or_inside_logical_or_lhs.dart.intertwined.expect
@@ -69,30 +69,30 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(int, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
- parseVariablePattern(||, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
+ parseVariablePattern(||, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(double, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(double, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: endBinaryPattern(||)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
- parseVariablePattern(||, typeInfo: Instance of 'SimpleNullableType')
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
+ parseVariablePattern(||, PatternContext.matching, typeInfo: Instance of 'SimpleNullableType')
listener: handleIdentifier(Object, typeReference)
listener: handleNoTypeArguments(?)
listener: handleType(Object, ?)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: endBinaryPattern(||)
ensureColon(_)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_typed_nonEmpty.dart.expect b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_typed_nonEmpty.dart.expect
index ba77159..0bbb0aa 100644
--- a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_typed_nonEmpty.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_typed_nonEmpty.dart.expect
@@ -28,12 +28,12 @@
beginLiteralString('a')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, true)
handleMapPatternEntry(:, ,)
beginLiteralString('b')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, true)
handleMapPatternEntry(:, })
handleMapPattern(2, {, })
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_typed_nonEmpty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_typed_nonEmpty.dart.intertwined.expect
index 0cc0b7b..2258fb0 100644
--- a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_typed_nonEmpty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_typed_nonEmpty.dart.intertwined.expect
@@ -46,8 +46,8 @@
looksLikeOuterPatternEquals({)
skipOuterPattern({)
parsePatternAssignment({)
- parsePattern({, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern({, isRefutableContext: false)
+ parsePattern({, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern({, PatternContext.assignment)
listener: beginTypeArguments(<)
listener: handleIdentifier(String, typeReference)
listener: handleNoTypeArguments(,)
@@ -56,7 +56,7 @@
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(2, <, >)
- parseMapPatternSuffix(>, isRefutableContext: false)
+ parseMapPatternSuffix(>, PatternContext.assignment)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -67,11 +67,11 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.assignment)
+ parseVariablePattern(:, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, true)
listener: handleMapPatternEntry(:, ,)
parseExpression(,)
looksLikeOuterPatternEquals(,)
@@ -83,11 +83,11 @@
parseSingleLiteralString(,)
listener: beginLiteralString('b')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.assignment)
+ parseVariablePattern(:, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, true)
listener: handleMapPatternEntry(:, })
listener: handleMapPattern(2, {, })
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_empty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_empty.dart.intertwined.expect
index aa5a74b..537011c 100644
--- a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_empty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_empty.dart.intertwined.expect
@@ -55,10 +55,10 @@
looksLikeOuterPatternEquals(()
skipOuterPattern(()
parsePatternAssignment(()
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
+ parsePattern((, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern((, PatternContext.assignment)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix((, isRefutableContext: false)
+ parseMapPatternSuffix((, PatternContext.assignment)
listener: handleMapPattern(0, {, })
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_empty_beginningOfStatement.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_empty_beginningOfStatement.dart.intertwined.expect
index 46b43db..be77126 100644
--- a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_empty_beginningOfStatement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_empty_beginningOfStatement.dart.intertwined.expect
@@ -43,10 +43,10 @@
looksLikeOuterPatternEquals({)
skipOuterPattern({)
parsePatternAssignment({)
- parsePattern({, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern({, isRefutableContext: false)
+ parsePattern({, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern({, PatternContext.assignment)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix({, isRefutableContext: false)
+ parseMapPatternSuffix({, PatternContext.assignment)
listener: handleMapPattern(0, {, })
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty.dart.expect b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty.dart.expect
index c20886b..4ece6138 100644
--- a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty.dart.expect
@@ -22,12 +22,12 @@
beginLiteralString('a')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, true)
handleMapPatternEntry(:, ,)
beginLiteralString('b')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, true)
handleMapPatternEntry(:, })
handleMapPattern(2, {, })
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty.dart.intertwined.expect
index 85484c9..cf8b2e0 100644
--- a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty.dart.intertwined.expect
@@ -55,10 +55,10 @@
looksLikeOuterPatternEquals(()
skipOuterPattern(()
parsePatternAssignment(()
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
+ parsePattern((, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern((, PatternContext.assignment)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix((, isRefutableContext: false)
+ parseMapPatternSuffix((, PatternContext.assignment)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -69,11 +69,11 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.assignment)
+ parseVariablePattern(:, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, true)
listener: handleMapPatternEntry(:, ,)
parseExpression(,)
looksLikeOuterPatternEquals(,)
@@ -85,11 +85,11 @@
parseSingleLiteralString(,)
listener: beginLiteralString('b')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.assignment)
+ parseVariablePattern(:, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, true)
listener: handleMapPatternEntry(:, })
listener: handleMapPattern(2, {, })
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty_beginningOfStatement.dart.expect b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty_beginningOfStatement.dart.expect
index 1d37e82..80d63fd 100644
--- a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty_beginningOfStatement.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty_beginningOfStatement.dart.expect
@@ -21,12 +21,12 @@
beginLiteralString('a')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, true)
handleMapPatternEntry(:, ,)
beginLiteralString('b')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, true)
handleMapPatternEntry(:, })
handleMapPattern(2, {, })
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty_beginningOfStatement.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty_beginningOfStatement.dart.intertwined.expect
index 3337095..fbe6ce6 100644
--- a/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty_beginningOfStatement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_insideAssignment_untyped_nonEmpty_beginningOfStatement.dart.intertwined.expect
@@ -43,10 +43,10 @@
looksLikeOuterPatternEquals({)
skipOuterPattern({)
parsePatternAssignment({)
- parsePattern({, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern({, isRefutableContext: false)
+ parsePattern({, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern({, PatternContext.assignment)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix({, isRefutableContext: false)
+ parseMapPatternSuffix({, PatternContext.assignment)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -57,11 +57,11 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.assignment)
+ parseVariablePattern(:, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, true)
listener: handleMapPatternEntry(:, ,)
parseExpression(,)
looksLikeOuterPatternEquals(,)
@@ -73,11 +73,11 @@
parseSingleLiteralString(,)
listener: beginLiteralString('b')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.assignment)
+ parseVariablePattern(:, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, true)
listener: handleMapPatternEntry(:, })
listener: handleMapPattern(2, {, })
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_typed_nonEmpty.dart.expect b/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_typed_nonEmpty.dart.expect
index b839413..1efd19a 100644
--- a/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_typed_nonEmpty.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_typed_nonEmpty.dart.expect
@@ -30,12 +30,12 @@
beginLiteralString('a')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleMapPatternEntry(:, ,)
beginLiteralString('b')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, false)
handleMapPatternEntry(:, })
handleMapPattern(2, {, })
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_typed_nonEmpty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_typed_nonEmpty.dart.intertwined.expect
index 4d7cb65..473cc3d 100644
--- a/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_typed_nonEmpty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_typed_nonEmpty.dart.intertwined.expect
@@ -43,8 +43,8 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: beginTypeArguments(<)
listener: handleIdentifier(String, typeReference)
listener: handleNoTypeArguments(,)
@@ -53,7 +53,7 @@
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(2, <, >)
- parseMapPatternSuffix(>, isRefutableContext: false)
+ parseMapPatternSuffix(>, PatternContext.declaration)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -64,11 +64,11 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.declaration)
+ parseVariablePattern(:, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handleMapPatternEntry(:, ,)
parseExpression(,)
looksLikeOuterPatternEquals(,)
@@ -80,11 +80,11 @@
parseSingleLiteralString(,)
listener: beginLiteralString('b')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.declaration)
+ parseVariablePattern(:, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, false)
listener: handleMapPatternEntry(:, })
listener: handleMapPattern(2, {, })
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_untyped_empty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_untyped_empty.dart.intertwined.expect
index 50f3979..8877636 100644
--- a/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_untyped_empty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_untyped_empty.dart.intertwined.expect
@@ -43,10 +43,10 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(var, isRefutableContext: false)
+ parseMapPatternSuffix(var, PatternContext.declaration)
listener: handleMapPattern(0, {, })
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_untyped_nonEmpty.dart.expect b/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_untyped_nonEmpty.dart.expect
index 4f41088..bdb2c58 100644
--- a/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_untyped_nonEmpty.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_untyped_nonEmpty.dart.expect
@@ -23,12 +23,12 @@
beginLiteralString('a')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleMapPatternEntry(:, ,)
beginLiteralString('b')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, false)
handleMapPatternEntry(:, })
handleMapPattern(2, {, })
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_untyped_nonEmpty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_untyped_nonEmpty.dart.intertwined.expect
index de604f2..b19d2bc 100644
--- a/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_untyped_nonEmpty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_insideDeclaration_untyped_nonEmpty.dart.intertwined.expect
@@ -43,10 +43,10 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(var, isRefutableContext: false)
+ parseMapPatternSuffix(var, PatternContext.declaration)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -57,11 +57,11 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.declaration)
+ parseVariablePattern(:, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handleMapPatternEntry(:, ,)
parseExpression(,)
looksLikeOuterPatternEquals(,)
@@ -73,11 +73,11 @@
parseSingleLiteralString(,)
listener: beginLiteralString('b')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.declaration)
+ parseVariablePattern(:, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, false)
listener: handleMapPatternEntry(:, })
listener: handleMapPattern(2, {, })
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/map_pattern_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_pattern_inside_case.dart.intertwined.expect
index 4d288c1..3635047 100644
--- a/pkg/front_end/parser_testcases/patterns/map_pattern_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_pattern_inside_case.dart.intertwined.expect
@@ -69,10 +69,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(case, isRefutableContext: true)
+ parseMapPatternSuffix(case, PatternContext.matching)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -83,8 +83,8 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
@@ -102,8 +102,8 @@
parseSingleLiteralString(,)
listener: beginLiteralString('b')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/map_pattern_inside_case_empty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_pattern_inside_case_empty.dart.intertwined.expect
index 4fe0102..4178f51 100644
--- a/pkg/front_end/parser_testcases/patterns/map_pattern_inside_case_empty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_pattern_inside_case_empty.dart.intertwined.expect
@@ -69,10 +69,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(case, isRefutableContext: true)
+ parseMapPatternSuffix(case, PatternContext.matching)
listener: handleMapPattern(0, {, })
ensureColon(})
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/map_pattern_inside_case_with_type_arguments.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_pattern_inside_case_with_type_arguments.dart.intertwined.expect
index cbf3d1a..a140d56 100644
--- a/pkg/front_end/parser_testcases/patterns/map_pattern_inside_case_with_type_arguments.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_pattern_inside_case_with_type_arguments.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: beginTypeArguments(<)
listener: handleIdentifier(String, typeReference)
listener: handleNoTypeArguments(,)
@@ -79,7 +79,7 @@
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(2, <, >)
- parseMapPatternSuffix(>, isRefutableContext: true)
+ parseMapPatternSuffix(>, PatternContext.matching)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -90,8 +90,8 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
@@ -109,8 +109,8 @@
parseSingleLiteralString(,)
listener: beginLiteralString('b')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/map_pattern_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_pattern_inside_cast.dart.intertwined.expect
index ea06d8b..a2632c7 100644
--- a/pkg/front_end/parser_testcases/patterns/map_pattern_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_pattern_inside_cast.dart.intertwined.expect
@@ -69,10 +69,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(case, isRefutableContext: true)
+ parseMapPatternSuffix(case, PatternContext.matching)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -83,8 +83,8 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/map_pattern_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_pattern_inside_null_assert.dart.intertwined.expect
index 5f2a2cd..177c912 100644
--- a/pkg/front_end/parser_testcases/patterns/map_pattern_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_pattern_inside_null_assert.dart.intertwined.expect
@@ -69,10 +69,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(case, isRefutableContext: true)
+ parseMapPatternSuffix(case, PatternContext.matching)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -83,8 +83,8 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/map_pattern_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/map_pattern_inside_null_check.dart.intertwined.expect
index a4defa8..47c3489 100644
--- a/pkg/front_end/parser_testcases/patterns/map_pattern_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/map_pattern_inside_null_check.dart.intertwined.expect
@@ -69,10 +69,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(case, isRefutableContext: true)
+ parseMapPatternSuffix(case, PatternContext.matching)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -83,8 +83,8 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_case.dart.intertwined.expect
index 8eb976c..0edd0ab 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_case.dart.intertwined.expect
@@ -98,8 +98,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_extractor_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_extractor_pattern.dart.intertwined.expect
index 285cc52..7f82ff4 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_extractor_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_extractor_pattern.dart.intertwined.expect
@@ -113,14 +113,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: true)
+ parseObjectPatternRest(C, PatternContext.matching)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(f, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_extractor_pattern_implicitly_named.dart.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_extractor_pattern_implicitly_named.dart.expect
index 3e73904..bf9caa7 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_extractor_pattern_implicitly_named.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_extractor_pattern_implicitly_named.dart.expect
@@ -56,7 +56,7 @@
handleNoTypeArguments(()
handleNoName(()
handleNoType(var)
- handleVariablePattern(var, f)
+ handleVariablePattern(var, f, false)
handleNullAssertPattern(!)
handlePatternField(:)
handleObjectPatternFields(1, (, ))
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_extractor_pattern_implicitly_named.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_extractor_pattern_implicitly_named.dart.intertwined.expect
index 4ed032b..4aaea54 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_extractor_pattern_implicitly_named.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_extractor_pattern_implicitly_named.dart.intertwined.expect
@@ -113,16 +113,16 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: true)
+ parseObjectPatternRest(C, PatternContext.matching)
listener: handleNoName(()
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
+ parseVariablePattern(:, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, f)
+ listener: handleVariablePattern(var, f, false)
listener: handleNullAssertPattern(!)
listener: handlePatternField(:)
listener: handleObjectPatternFields(1, (, ))
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_if_case.dart.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_if_case.dart.expect
index b2d7bdb..50e9e05 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_if_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_if_case.dart.expect
@@ -25,7 +25,7 @@
handleNoArguments(case)
handleSend(x, case)
handleNoType(var)
- handleVariablePattern(var, y)
+ handleVariablePattern(var, y, false)
handleNullAssertPattern(!)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_if_case.dart.intertwined.expect
index e16d340..d946278 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_if_case.dart.intertwined.expect
@@ -61,11 +61,11 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, y)
+ listener: handleVariablePattern(var, y, false)
listener: handleNullAssertPattern(!)
ensureCloseParen(!, ()
listener: handleParenthesizedCondition((, case, null)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_list_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_list_pattern.dart.intertwined.expect
index 0247763..a94e34b 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_list_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_list_pattern.dart.intertwined.expect
@@ -69,12 +69,12 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern([, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern([, isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern([, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern([, PatternContext.matching)
parsePrecedenceExpression([, 17, false)
parseUnaryExpression([, false)
parsePrimary([, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_and_lhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_and_lhs.dart.intertwined.expect
index 90ecf8f..a7426cc 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_and_lhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_and_lhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
@@ -79,8 +79,8 @@
listener: handleConstantPattern(null)
listener: handleNullAssertPattern(!)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
parsePrecedenceExpression(&&, 17, false)
parseUnaryExpression(&&, false)
parsePrimary(&&, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_and_rhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_and_rhs.dart.intertwined.expect
index da8754e..283fedf 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_and_rhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_and_rhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
@@ -78,8 +78,8 @@
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
parsePrecedenceExpression(&&, 17, false)
parseUnaryExpression(&&, false)
parsePrimary(&&, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_or_lhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_or_lhs.dart.intertwined.expect
index 76c0a53..c01c1a8 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_or_lhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_or_lhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
@@ -79,8 +79,8 @@
listener: handleConstantPattern(null)
listener: handleNullAssertPattern(!)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
parsePrecedenceExpression(||, 17, false)
parseUnaryExpression(||, false)
parsePrimary(||, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_or_rhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_or_rhs.dart.intertwined.expect
index e5037f4..38a236e1 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_or_rhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_logical_or_rhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
@@ -78,8 +78,8 @@
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
parsePrecedenceExpression(||, 17, false)
parseUnaryExpression(||, false)
parsePrimary(||, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_map_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_map_pattern.dart.intertwined.expect
index d125efa..b863dd4 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_map_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_map_pattern.dart.intertwined.expect
@@ -69,10 +69,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(case, isRefutableContext: true)
+ parseMapPatternSuffix(case, PatternContext.matching)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -83,8 +83,8 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_parenthesized_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_parenthesized_pattern.dart.intertwined.expect
index 8f344ec..b0619fa 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_parenthesized_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_parenthesized_pattern.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_implicitly_named.dart.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_implicitly_named.dart.expect
index e5eb56e..f9147db 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_implicitly_named.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_implicitly_named.dart.expect
@@ -29,7 +29,7 @@
beginCaseExpression(case)
handleNoName(()
handleNoType(var)
- handleVariablePattern(var, n)
+ handleVariablePattern(var, n, false)
handleNullAssertPattern(!)
handlePatternField(:)
handleLiteralInt(2)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_implicitly_named.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_implicitly_named.dart.intertwined.expect
index fb30f4f..808aa29 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_implicitly_named.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_implicitly_named.dart.intertwined.expect
@@ -69,19 +69,19 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
listener: handleNoName(()
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
+ parseVariablePattern(:, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, n)
+ listener: handleVariablePattern(var, n, false)
listener: handleNullAssertPattern(!)
listener: handlePatternField(:)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_named.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_named.dart.intertwined.expect
index 65e5bce..24214fc 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_named.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_named.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
ensureIdentifier((, namedRecordFieldReference)
listener: handleIdentifier(n, namedRecordFieldReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
@@ -84,8 +84,8 @@
listener: handleConstantPattern(null)
listener: handleNullAssertPattern(!)
listener: handlePatternField(:)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_unnamed.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_unnamed.dart.intertwined.expect
index af80369..8d8f124 100644
--- a/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_unnamed.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_assert_inside_record_pattern_unnamed.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
@@ -82,8 +82,8 @@
listener: handleConstantPattern(null)
listener: handleNullAssertPattern(!)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_case.dart.intertwined.expect
index e6eb394..37406ac 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_case.dart.intertwined.expect
@@ -98,8 +98,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_extractor_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_extractor_pattern.dart.intertwined.expect
index 6047b92..43584a9 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_extractor_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_extractor_pattern.dart.intertwined.expect
@@ -113,14 +113,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: true)
+ parseObjectPatternRest(C, PatternContext.matching)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(f, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_extractor_pattern_implicitly_named.dart.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_extractor_pattern_implicitly_named.dart.expect
index 91fc022..f70fe79 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_extractor_pattern_implicitly_named.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_extractor_pattern_implicitly_named.dart.expect
@@ -56,7 +56,7 @@
handleNoTypeArguments(()
handleNoName(()
handleNoType(var)
- handleVariablePattern(var, f)
+ handleVariablePattern(var, f, false)
handleNullCheckPattern(?)
handlePatternField(:)
handleObjectPatternFields(1, (, ))
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_extractor_pattern_implicitly_named.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_extractor_pattern_implicitly_named.dart.intertwined.expect
index 742ccec..7ff83df 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_extractor_pattern_implicitly_named.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_extractor_pattern_implicitly_named.dart.intertwined.expect
@@ -113,16 +113,16 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: true)
+ parseObjectPatternRest(C, PatternContext.matching)
listener: handleNoName(()
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
+ parseVariablePattern(:, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, f)
+ listener: handleVariablePattern(var, f, false)
listener: handleNullCheckPattern(?)
listener: handlePatternField(:)
listener: handleObjectPatternFields(1, (, ))
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_if_case.dart.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_if_case.dart.expect
index 00e9683..f3fa194 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_if_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_if_case.dart.expect
@@ -25,7 +25,7 @@
handleNoArguments(case)
handleSend(x, case)
handleNoType(var)
- handleVariablePattern(var, y)
+ handleVariablePattern(var, y, false)
handleNullCheckPattern(?)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_if_case.dart.intertwined.expect
index f28e4e9..c7d077b 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_if_case.dart.intertwined.expect
@@ -61,11 +61,11 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, y)
+ listener: handleVariablePattern(var, y, false)
listener: handleNullCheckPattern(?)
ensureCloseParen(?, ()
listener: handleParenthesizedCondition((, case, null)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_list_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_list_pattern.dart.intertwined.expect
index 9ad5e5f..6cb1fe2 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_list_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_list_pattern.dart.intertwined.expect
@@ -69,12 +69,12 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern([, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern([, isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern([, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern([, PatternContext.matching)
parsePrecedenceExpression([, 17, false)
parseUnaryExpression([, false)
parsePrimary([, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_and_lhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_and_lhs.dart.intertwined.expect
index 628460e..002765d 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_and_lhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_and_lhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
@@ -79,8 +79,8 @@
listener: handleConstantPattern(null)
listener: handleNullCheckPattern(?)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
parsePrecedenceExpression(&&, 17, false)
parseUnaryExpression(&&, false)
parsePrimary(&&, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_and_rhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_and_rhs.dart.intertwined.expect
index ce7fa20..6f85c7c 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_and_rhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_and_rhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
@@ -78,8 +78,8 @@
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
parsePrecedenceExpression(&&, 17, false)
parseUnaryExpression(&&, false)
parsePrimary(&&, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_or_lhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_or_lhs.dart.intertwined.expect
index ee4de62..5a3d2d3 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_or_lhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_or_lhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
@@ -79,8 +79,8 @@
listener: handleConstantPattern(null)
listener: handleNullCheckPattern(?)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
parsePrecedenceExpression(||, 17, false)
parseUnaryExpression(||, false)
parsePrimary(||, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_or_rhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_or_rhs.dart.intertwined.expect
index c171ba9..88b40c1 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_or_rhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_logical_or_rhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
@@ -78,8 +78,8 @@
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
parsePrecedenceExpression(||, 17, false)
parseUnaryExpression(||, false)
parsePrimary(||, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_map_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_map_pattern.dart.intertwined.expect
index ee5071b..f76bdb1 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_map_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_map_pattern.dart.intertwined.expect
@@ -69,10 +69,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(case, isRefutableContext: true)
+ parseMapPatternSuffix(case, PatternContext.matching)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -83,8 +83,8 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_parenthesized_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_parenthesized_pattern.dart.intertwined.expect
index e68c63b..8917aca 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_parenthesized_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_parenthesized_pattern.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_implicitly_named.dart.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_implicitly_named.dart.expect
index 675b06e..debfad2 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_implicitly_named.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_implicitly_named.dart.expect
@@ -29,7 +29,7 @@
beginCaseExpression(case)
handleNoName(()
handleNoType(var)
- handleVariablePattern(var, n)
+ handleVariablePattern(var, n, false)
handleNullCheckPattern(?)
handlePatternField(:)
handleLiteralInt(2)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_implicitly_named.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_implicitly_named.dart.intertwined.expect
index a967b68..0cc84b3 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_implicitly_named.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_implicitly_named.dart.intertwined.expect
@@ -69,19 +69,19 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
listener: handleNoName(()
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
+ parseVariablePattern(:, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, n)
+ listener: handleVariablePattern(var, n, false)
listener: handleNullCheckPattern(?)
listener: handlePatternField(:)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_named.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_named.dart.intertwined.expect
index f2c778e..29d6e35 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_named.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_named.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
ensureIdentifier((, namedRecordFieldReference)
listener: handleIdentifier(n, namedRecordFieldReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(:, 17, false)
parseUnaryExpression(:, false)
parsePrimary(:, expression)
@@ -84,8 +84,8 @@
listener: handleConstantPattern(null)
listener: handleNullCheckPattern(?)
listener: handlePatternField(:)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_unnamed.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_unnamed.dart.intertwined.expect
index 94fa288..deb6809 100644
--- a/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_unnamed.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_check_inside_record_pattern_unnamed.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
@@ -82,8 +82,8 @@
listener: handleConstantPattern(null)
listener: handleNullCheckPattern(?)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_literal_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_literal_inside_case.dart.intertwined.expect
index fb69cf4..0b112a6 100644
--- a/pkg/front_end/parser_testcases/patterns/null_literal_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_literal_inside_case.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_literal_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_literal_inside_cast.dart.intertwined.expect
index a15d7da..b469529 100644
--- a/pkg/front_end/parser_testcases/patterns/null_literal_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_literal_inside_cast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_literal_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_literal_inside_if_case.dart.intertwined.expect
index ae737f3..5f4ef70 100644
--- a/pkg/front_end/parser_testcases/patterns/null_literal_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_literal_inside_if_case.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_literal_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_literal_inside_null_assert.dart.intertwined.expect
index fc60c6b..1ccabe5 100644
--- a/pkg/front_end/parser_testcases/patterns/null_literal_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_literal_inside_null_assert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/null_literal_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/null_literal_inside_null_check.dart.intertwined.expect
index a9f117e..5fe7a47e 100644
--- a/pkg/front_end/parser_testcases/patterns/null_literal_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/null_literal_inside_null_check.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/object_prefixedNamedUnderscore_withoutTypeArgs_insideDeclaration.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/object_prefixedNamedUnderscore_withoutTypeArgs_insideDeclaration.dart.intertwined.expect
index 1234770..a05efc1 100644
--- a/pkg/front_end/parser_testcases/patterns/object_prefixedNamedUnderscore_withoutTypeArgs_insideDeclaration.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/object_prefixedNamedUnderscore_withoutTypeArgs_insideDeclaration.dart.intertwined.expect
@@ -44,10 +44,10 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(Future, isRefutableContext: false)
+ parseObjectPatternRest(Future, PatternContext.declaration)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(_, ., Future)
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/object_prefixed_withTypeArgs_insideAssignment.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/object_prefixed_withTypeArgs_insideAssignment.dart.intertwined.expect
index 8171b60..e84eae5 100644
--- a/pkg/front_end/parser_testcases/patterns/object_prefixed_withTypeArgs_insideAssignment.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/object_prefixed_withTypeArgs_insideAssignment.dart.intertwined.expect
@@ -47,14 +47,14 @@
skipOuterPattern({)
skipObjectPatternRest(Future)
parsePatternAssignment({)
- parsePattern({, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern({, isRefutableContext: false)
+ parsePattern({, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern({, PatternContext.assignment)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseObjectPatternRest(>, isRefutableContext: false)
+ parseObjectPatternRest(>, PatternContext.assignment)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(async, ., Future)
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/object_prefixed_withTypeArgs_insideDeclaration.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/object_prefixed_withTypeArgs_insideDeclaration.dart.intertwined.expect
index e5d58ee..9a0854c8 100644
--- a/pkg/front_end/parser_testcases/patterns/object_prefixed_withTypeArgs_insideDeclaration.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/object_prefixed_withTypeArgs_insideDeclaration.dart.intertwined.expect
@@ -44,14 +44,14 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseObjectPatternRest(>, isRefutableContext: false)
+ parseObjectPatternRest(>, PatternContext.declaration)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(async, ., Future)
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/object_unprefixedNamedUnderscore_withTypeArgs_insideDeclaration.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/object_unprefixedNamedUnderscore_withTypeArgs_insideDeclaration.dart.intertwined.expect
index 430f2d7..8e56a96 100644
--- a/pkg/front_end/parser_testcases/patterns/object_unprefixedNamedUnderscore_withTypeArgs_insideDeclaration.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/object_unprefixedNamedUnderscore_withTypeArgs_insideDeclaration.dart.intertwined.expect
@@ -44,14 +44,14 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseObjectPatternRest(>, isRefutableContext: false)
+ parseObjectPatternRest(>, PatternContext.declaration)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(_, null, null)
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/object_unprefixedNamedUnderscore_withoutTypeArgs_insideDeclaration.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/object_unprefixedNamedUnderscore_withoutTypeArgs_insideDeclaration.dart.intertwined.expect
index 8380688..5be4c38 100644
--- a/pkg/front_end/parser_testcases/patterns/object_unprefixedNamedUnderscore_withoutTypeArgs_insideDeclaration.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/object_unprefixedNamedUnderscore_withoutTypeArgs_insideDeclaration.dart.intertwined.expect
@@ -44,10 +44,10 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(_, isRefutableContext: false)
+ parseObjectPatternRest(_, PatternContext.declaration)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(_, null, null)
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/object_unprefixed_withTypeArgs_insideDeclaration.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/object_unprefixed_withTypeArgs_insideDeclaration.dart.intertwined.expect
index a7b9b5e..505a32f 100644
--- a/pkg/front_end/parser_testcases/patterns/object_unprefixed_withTypeArgs_insideDeclaration.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/object_unprefixed_withTypeArgs_insideDeclaration.dart.intertwined.expect
@@ -79,14 +79,14 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseObjectPatternRest(>, isRefutableContext: false)
+ parseObjectPatternRest(>, PatternContext.declaration)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(C, null, null)
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/parenthesized_insideAssignment.dart.expect b/pkg/front_end/parser_testcases/patterns/parenthesized_insideAssignment.dart.expect
index 99e8f880..e65a41e 100644
--- a/pkg/front_end/parser_testcases/patterns/parenthesized_insideAssignment.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/parenthesized_insideAssignment.dart.expect
@@ -18,7 +18,7 @@
handleAsyncModifier(null, null)
beginBlockFunctionBody({)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, true)
handleParenthesizedPattern(()
handleIdentifier(x, expression)
handleNoTypeArguments(;)
diff --git a/pkg/front_end/parser_testcases/patterns/parenthesized_insideAssignment.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/parenthesized_insideAssignment.dart.intertwined.expect
index ab37f5d..ecba959 100644
--- a/pkg/front_end/parser_testcases/patterns/parenthesized_insideAssignment.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/parenthesized_insideAssignment.dart.intertwined.expect
@@ -47,14 +47,14 @@
looksLikeOuterPatternEquals({)
skipOuterPattern({)
parsePatternAssignment({)
- parsePattern({, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern({, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern({, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern({, PatternContext.assignment)
+ parseParenthesizedPatternOrRecordPattern({, PatternContext.assignment)
+ parsePattern((, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern((, PatternContext.assignment)
+ parseVariablePattern((, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, true)
ensureCloseParen(a, ()
listener: handleParenthesizedPattern(()
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/parenthesized_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/parenthesized_insideCase.dart.intertwined.expect
index 6bd438b..8797a44 100644
--- a/pkg/front_end/parser_testcases/patterns/parenthesized_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/parenthesized_insideCase.dart.intertwined.expect
@@ -67,11 +67,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/parenthesized_insideDeclaration.dart.expect b/pkg/front_end/parser_testcases/patterns/parenthesized_insideDeclaration.dart.expect
index 9433514..ddbadb4 100644
--- a/pkg/front_end/parser_testcases/patterns/parenthesized_insideDeclaration.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/parenthesized_insideDeclaration.dart.expect
@@ -20,7 +20,7 @@
beginMetadataStar(var)
endMetadataStar(0)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleParenthesizedPattern(()
handleIdentifier(x, expression)
handleNoTypeArguments(;)
diff --git a/pkg/front_end/parser_testcases/patterns/parenthesized_insideDeclaration.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/parenthesized_insideDeclaration.dart.intertwined.expect
index 005421f..a95645f 100644
--- a/pkg/front_end/parser_testcases/patterns/parenthesized_insideDeclaration.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/parenthesized_insideDeclaration.dart.intertwined.expect
@@ -44,14 +44,14 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
ensureCloseParen(a, ()
listener: handleParenthesizedPattern(()
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/parenthesized_pattern_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/parenthesized_pattern_inside_cast.dart.intertwined.expect
index cffc2cf..129eacb 100644
--- a/pkg/front_end/parser_testcases/patterns/parenthesized_pattern_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/parenthesized_pattern_inside_cast.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/parenthesized_pattern_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/parenthesized_pattern_inside_null_assert.dart.intertwined.expect
index 4b3656f..52cbc7f 100644
--- a/pkg/front_end/parser_testcases/patterns/parenthesized_pattern_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/parenthesized_pattern_inside_null_assert.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/parenthesized_pattern_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/parenthesized_pattern_inside_null_check.dart.intertwined.expect
index 5af2d83..ad2f816 100644
--- a/pkg/front_end/parser_testcases/patterns/parenthesized_pattern_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/parenthesized_pattern_inside_null_check.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_final_extractor.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_final_extractor.dart.expect
index 68e1e4d..e60b59e 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_final_extractor.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_final_extractor.dart.expect
@@ -22,7 +22,7 @@
handleNoTypeArguments(()
handleIdentifier(f, namedArgumentReference)
handleNoType(:)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(:)
handleObjectPatternFields(1, (, ))
handleObjectPattern(C, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_final_extractor.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_final_extractor.dart.intertwined.expect
index 9fbb680..f73b7b0 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_final_extractor.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_final_extractor.dart.intertwined.expect
@@ -45,17 +45,17 @@
listener: beginMetadataStar(final)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(final, {, final)
- parsePattern(final, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(final, isRefutableContext: false)
+ parsePattern(final, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(final, PatternContext.declaration)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: false)
+ parseObjectPatternRest(C, PatternContext.declaration)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(f, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.declaration)
+ parseVariablePattern(:, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(:)
listener: handleObjectPatternFields(1, (, ))
listener: handleObjectPattern(C, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_extractor.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_extractor.dart.expect
index f1cb460..d760397 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_extractor.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_extractor.dart.expect
@@ -22,7 +22,7 @@
handleNoTypeArguments(()
handleIdentifier(f, namedArgumentReference)
handleNoType(:)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(:)
handleObjectPatternFields(1, (, ))
handleObjectPattern(C, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_extractor.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_extractor.dart.intertwined.expect
index 343b018..aadc9546 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_extractor.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_extractor.dart.intertwined.expect
@@ -45,17 +45,17 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: false)
+ parseObjectPatternRest(C, PatternContext.declaration)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(f, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.declaration)
+ parseVariablePattern(:, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(:)
listener: handleObjectPatternFields(1, (, ))
listener: handleObjectPattern(C, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_list.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_list.dart.expect
index 0e70c97..5dfe376 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_list.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_list.dart.expect
@@ -21,7 +21,7 @@
endMetadataStar(0)
handleNoTypeArguments([)
handleNoType([)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleListPattern(1, [, ])
handleIdentifier(x, expression)
handleNoTypeArguments(;)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_list.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_list.dart.intertwined.expect
index 935ec12..b11d0be 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_list.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_list.dart.intertwined.expect
@@ -44,15 +44,15 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(var, isRefutableContext: false)
- parsePattern([, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern([, isRefutableContext: false)
- parseVariablePattern([, typeInfo: Instance of 'NoType')
+ parseListPatternSuffix(var, PatternContext.declaration)
+ parsePattern([, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern([, PatternContext.declaration)
+ parseVariablePattern([, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType([)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handleListPattern(1, [, ])
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_map.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_map.dart.expect
index 46117ad..b1d68da 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_map.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_map.dart.expect
@@ -23,7 +23,7 @@
beginLiteralString('a')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleMapPatternEntry(:, })
handleMapPattern(1, {, })
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_map.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_map.dart.intertwined.expect
index efbc9f3..584da9d 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_map.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_map.dart.intertwined.expect
@@ -44,10 +44,10 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(var, isRefutableContext: false)
+ parseMapPatternSuffix(var, PatternContext.declaration)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -58,11 +58,11 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.declaration)
+ parseVariablePattern(:, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handleMapPatternEntry(:, })
listener: handleMapPattern(1, {, })
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_parenthesized.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_parenthesized.dart.expect
index 9433514..ddbadb4 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_parenthesized.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_parenthesized.dart.expect
@@ -20,7 +20,7 @@
beginMetadataStar(var)
endMetadataStar(0)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleParenthesizedPattern(()
handleIdentifier(x, expression)
handleNoTypeArguments(;)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_parenthesized.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_parenthesized.dart.intertwined.expect
index 005421f..a95645f 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_parenthesized.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_parenthesized.dart.intertwined.expect
@@ -44,14 +44,14 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
ensureCloseParen(a, ()
listener: handleParenthesizedPattern(()
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_record.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_record.dart.expect
index 1a8c47a..73a7d53 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_record.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_record.dart.expect
@@ -20,7 +20,7 @@
beginMetadataStar(var)
endMetadataStar(0)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(null)
handleRecordPattern((, 1)
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_record.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_record.dart.intertwined.expect
index e79dabe..5bf0080 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_record.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_noMetadata_var_record.dart.intertwined.expect
@@ -44,14 +44,14 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(null)
ensureCloseParen(,, ()
listener: handleRecordPattern((, 1)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_extractor.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_extractor.dart.expect
index fa819b7..5c3a57c 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_extractor.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_extractor.dart.expect
@@ -27,7 +27,7 @@
handleNoTypeArguments(()
handleIdentifier(f, namedArgumentReference)
handleNoType(:)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(:)
handleObjectPatternFields(1, (, ))
handleObjectPattern(C, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_extractor.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_extractor.dart.intertwined.expect
index 38c8c17..c2f1ffa 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_extractor.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_extractor.dart.intertwined.expect
@@ -56,17 +56,17 @@
skipOuterPattern(final)
skipObjectPatternRest(C)
parsePatternVariableDeclarationStatement(final, {, final)
- parsePattern(final, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(final, isRefutableContext: false)
+ parsePattern(final, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(final, PatternContext.declaration)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: false)
+ parseObjectPatternRest(C, PatternContext.declaration)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(f, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.declaration)
+ parseVariablePattern(:, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(:)
listener: handleObjectPatternFields(1, (, ))
listener: handleObjectPattern(C, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_list.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_list.dart.expect
index c223f8a..3a515f4 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_list.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_list.dart.expect
@@ -26,7 +26,7 @@
endMetadataStar(1)
handleNoTypeArguments([)
handleNoType([)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleListPattern(1, [, ])
handleIdentifier(x, expression)
handleNoTypeArguments(;)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_list.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_list.dart.intertwined.expect
index bdf621f..4a45050 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_list.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_list.dart.intertwined.expect
@@ -55,15 +55,15 @@
parseExpressionStatementOrDeclarationAfterModifiers(final, {, null, final, null, null)
skipOuterPattern(final)
parsePatternVariableDeclarationStatement(final, {, final)
- parsePattern(final, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(final, isRefutableContext: false)
+ parsePattern(final, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(final, PatternContext.declaration)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(final, isRefutableContext: false)
- parsePattern([, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern([, isRefutableContext: false)
- parseVariablePattern([, typeInfo: Instance of 'NoType')
+ parseListPatternSuffix(final, PatternContext.declaration)
+ parsePattern([, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern([, PatternContext.declaration)
+ parseVariablePattern([, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType([)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handleListPattern(1, [, ])
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_map.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_map.dart.expect
index e2a2e95..0eb9ae9 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_map.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_map.dart.expect
@@ -28,7 +28,7 @@
beginLiteralString('a')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleMapPatternEntry(:, })
handleMapPattern(1, {, })
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_map.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_map.dart.intertwined.expect
index abc339e..63dea9f 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_map.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_map.dart.intertwined.expect
@@ -55,10 +55,10 @@
parseExpressionStatementOrDeclarationAfterModifiers(final, {, null, final, null, null)
skipOuterPattern(final)
parsePatternVariableDeclarationStatement(final, {, final)
- parsePattern(final, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(final, isRefutableContext: false)
+ parsePattern(final, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(final, PatternContext.declaration)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(final, isRefutableContext: false)
+ parseMapPatternSuffix(final, PatternContext.declaration)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -69,11 +69,11 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.declaration)
+ parseVariablePattern(:, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handleMapPatternEntry(:, })
listener: handleMapPattern(1, {, })
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_parenthesized.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_parenthesized.dart.expect
index 289c8d2..51c7417 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_parenthesized.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_parenthesized.dart.expect
@@ -25,7 +25,7 @@
endMetadata(@, null, final)
endMetadataStar(1)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleParenthesizedPattern(()
handleIdentifier(x, expression)
handleNoTypeArguments(;)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_parenthesized.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_parenthesized.dart.intertwined.expect
index e8de68b..b31dea6 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_parenthesized.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_parenthesized.dart.intertwined.expect
@@ -55,14 +55,14 @@
parseExpressionStatementOrDeclarationAfterModifiers(final, {, null, final, null, null)
skipOuterPattern(final)
parsePatternVariableDeclarationStatement(final, {, final)
- parsePattern(final, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(final, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(final, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(final, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(final, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(final, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
ensureCloseParen(a, ()
listener: handleParenthesizedPattern(()
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_record.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_record.dart.expect
index beab512..0b64c13 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_record.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_record.dart.expect
@@ -25,7 +25,7 @@
endMetadata(@, null, final)
endMetadataStar(1)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(null)
handleRecordPattern((, 1)
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_record.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_record.dart.intertwined.expect
index b3db92d..f0d647b 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_record.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_final_record.dart.intertwined.expect
@@ -55,14 +55,14 @@
parseExpressionStatementOrDeclarationAfterModifiers(final, {, null, final, null, null)
skipOuterPattern(final)
parsePatternVariableDeclarationStatement(final, {, final)
- parsePattern(final, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(final, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(final, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(final, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(final, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(final, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(null)
ensureCloseParen(,, ()
listener: handleRecordPattern((, 1)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_extractor.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_extractor.dart.expect
index eb25e24..63859cf 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_extractor.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_extractor.dart.expect
@@ -27,7 +27,7 @@
handleNoTypeArguments(()
handleIdentifier(f, namedArgumentReference)
handleNoType(:)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(:)
handleObjectPatternFields(1, (, ))
handleObjectPattern(C, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_extractor.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_extractor.dart.intertwined.expect
index b425558..537eefc 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_extractor.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_extractor.dart.intertwined.expect
@@ -56,17 +56,17 @@
skipOuterPattern(var)
skipObjectPatternRest(C)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: false)
+ parseObjectPatternRest(C, PatternContext.declaration)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(f, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.declaration)
+ parseVariablePattern(:, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(:)
listener: handleObjectPatternFields(1, (, ))
listener: handleObjectPattern(C, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_list.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_list.dart.expect
index 9863e06..89abea1 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_list.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_list.dart.expect
@@ -26,7 +26,7 @@
endMetadataStar(1)
handleNoTypeArguments([)
handleNoType([)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleListPattern(1, [, ])
handleIdentifier(x, expression)
handleNoTypeArguments(;)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_list.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_list.dart.intertwined.expect
index 6884531..b3babc6 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_list.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_list.dart.intertwined.expect
@@ -55,15 +55,15 @@
parseExpressionStatementOrDeclarationAfterModifiers(var, {, null, var, null, null)
skipOuterPattern(var)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(var, isRefutableContext: false)
- parsePattern([, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern([, isRefutableContext: false)
- parseVariablePattern([, typeInfo: Instance of 'NoType')
+ parseListPatternSuffix(var, PatternContext.declaration)
+ parsePattern([, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern([, PatternContext.declaration)
+ parseVariablePattern([, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType([)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handleListPattern(1, [, ])
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_map.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_map.dart.expect
index a5e4077..5698def 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_map.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_map.dart.expect
@@ -28,7 +28,7 @@
beginLiteralString('a')
endLiteralString(0, :)
handleNoType(:)
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleMapPatternEntry(:, })
handleMapPattern(1, {, })
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_map.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_map.dart.intertwined.expect
index aa22f12..4f9dbfa 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_map.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_map.dart.intertwined.expect
@@ -55,10 +55,10 @@
parseExpressionStatementOrDeclarationAfterModifiers(var, {, null, var, null, null)
skipOuterPattern(var)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(var, isRefutableContext: false)
+ parseMapPatternSuffix(var, PatternContext.declaration)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -69,11 +69,11 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(:, isRefutableContext: false)
- parseVariablePattern(:, typeInfo: Instance of 'NoType')
+ parsePattern(:, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.declaration)
+ parseVariablePattern(:, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(:)
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handleMapPatternEntry(:, })
listener: handleMapPattern(1, {, })
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_parenthesized.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_parenthesized.dart.expect
index 3f694a5..f2ab180 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_parenthesized.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_parenthesized.dart.expect
@@ -25,7 +25,7 @@
endMetadata(@, null, var)
endMetadataStar(1)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handleParenthesizedPattern(()
handleIdentifier(x, expression)
handleNoTypeArguments(;)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_parenthesized.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_parenthesized.dart.intertwined.expect
index 5a2aa1c..3e51e33 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_parenthesized.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_parenthesized.dart.intertwined.expect
@@ -55,14 +55,14 @@
parseExpressionStatementOrDeclarationAfterModifiers(var, {, null, var, null, null)
skipOuterPattern(var)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
ensureCloseParen(a, ()
listener: handleParenthesizedPattern(()
parseExpression(=)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_record.dart.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_record.dart.expect
index 58b0912..bf48b06 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_record.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_record.dart.expect
@@ -25,7 +25,7 @@
endMetadata(@, null, var)
endMetadataStar(1)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(null)
handleRecordPattern((, 1)
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_record.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_record.dart.intertwined.expect
index 64161f0..34152dc 100644
--- a/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_record.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/patternVariableDeclarationStatement_withMetadata_var_record.dart.intertwined.expect
@@ -55,14 +55,14 @@
parseExpressionStatementOrDeclarationAfterModifiers(var, {, null, var, null, null)
skipOuterPattern(var)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(null)
ensureCloseParen(,, ()
listener: handleRecordPattern((, 1)
diff --git a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element.dart.expect b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element.dart.expect
index cf7b5c5..dce7a8f 100644
--- a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element.dart.expect
@@ -21,10 +21,10 @@
beginMetadataStar(var)
endMetadataStar(0)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(null)
handleNoType(,)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, false)
handlePatternField(null)
handleRecordPattern((, 2)
beginForInExpression(x)
diff --git a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element.dart.intertwined.expect
index 50e3bc5..e469acf 100644
--- a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element.dart.intertwined.expect
@@ -50,20 +50,20 @@
skipOuterPattern(var)
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(,, isRefutableContext: false)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ parsePattern(,, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.declaration)
+ parseVariablePattern(,, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, false)
listener: handlePatternField(null)
ensureCloseParen(b, ()
listener: handleRecordPattern((, 2)
diff --git a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element_withMetadata.dart.expect b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element_withMetadata.dart.expect
index d24ff18..b16e31c 100644
--- a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element_withMetadata.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element_withMetadata.dart.expect
@@ -26,10 +26,10 @@
endMetadata(@, null, var)
endMetadataStar(1)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(null)
handleNoType(,)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, false)
handlePatternField(null)
handleRecordPattern((, 2)
beginForInExpression(x)
diff --git a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element_withMetadata.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element_withMetadata.dart.intertwined.expect
index 1193376..96d9a60 100644
--- a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element_withMetadata.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_element_withMetadata.dart.intertwined.expect
@@ -60,20 +60,20 @@
listener: endMetadataStar(1)
parseExpressionStatementOrDeclarationAfterModifiers(var, (, null, var, null, ForPartsContext(null))
skipOuterPattern(var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(,, isRefutableContext: false)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ parsePattern(,, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.declaration)
+ parseVariablePattern(,, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, false)
listener: handlePatternField(null)
ensureCloseParen(b, ()
listener: handleRecordPattern((, 2)
diff --git a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement.dart.expect b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement.dart.expect
index 9d6ceb6..988d2c3 100644
--- a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement.dart.expect
@@ -21,10 +21,10 @@
beginMetadataStar(var)
endMetadataStar(0)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(null)
handleNoType(,)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, false)
handlePatternField(null)
handleRecordPattern((, 2)
beginForInExpression(x)
diff --git a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement.dart.intertwined.expect
index d183f13..120e29a 100644
--- a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement.dart.intertwined.expect
@@ -46,20 +46,20 @@
skipOuterPattern(var)
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(,, isRefutableContext: false)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ parsePattern(,, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.declaration)
+ parseVariablePattern(,, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, false)
listener: handlePatternField(null)
ensureCloseParen(b, ()
listener: handleRecordPattern((, 2)
diff --git a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement_withMetadata.dart.expect b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement_withMetadata.dart.expect
index d5e68a3..e89cc63 100644
--- a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement_withMetadata.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement_withMetadata.dart.expect
@@ -26,10 +26,10 @@
endMetadata(@, null, var)
endMetadataStar(1)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(null)
handleNoType(,)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, false)
handlePatternField(null)
handleRecordPattern((, 2)
beginForInExpression(x)
diff --git a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement_withMetadata.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement_withMetadata.dart.intertwined.expect
index 8a4314b..d715215 100644
--- a/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement_withMetadata.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/pattern_inForIn_statement_withMetadata.dart.intertwined.expect
@@ -56,20 +56,20 @@
listener: endMetadataStar(1)
parseExpressionStatementOrDeclarationAfterModifiers(var, (, null, var, null, ForPartsContext(null))
skipOuterPattern(var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(,, isRefutableContext: false)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ parsePattern(,, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.declaration)
+ parseVariablePattern(,, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, false)
listener: handlePatternField(null)
ensureCloseParen(b, ()
listener: handleRecordPattern((, 2)
diff --git a/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_element.dart.expect b/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_element.dart.expect
index 0617d4a..bf4dbda 100644
--- a/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_element.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_element.dart.expect
@@ -21,10 +21,10 @@
beginMetadataStar(var)
endMetadataStar(0)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(null)
handleNoType(,)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, false)
handlePatternField(null)
handleRecordPattern((, 2)
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_element.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_element.dart.intertwined.expect
index bc80dba..d4b0d3a 100644
--- a/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_element.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_element.dart.intertwined.expect
@@ -50,20 +50,20 @@
skipOuterPattern(var)
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(,, isRefutableContext: false)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ parsePattern(,, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.declaration)
+ parseVariablePattern(,, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, false)
listener: handlePatternField(null)
ensureCloseParen(b, ()
listener: handleRecordPattern((, 2)
diff --git a/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_statement.dart.expect b/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_statement.dart.expect
index 1ec7d1d..026d103 100644
--- a/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_statement.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_statement.dart.expect
@@ -21,10 +21,10 @@
beginMetadataStar(var)
endMetadataStar(0)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(null)
handleNoType(,)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, false)
handlePatternField(null)
handleRecordPattern((, 2)
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_statement.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_statement.dart.intertwined.expect
index c6de210..8d6ad05 100644
--- a/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_statement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/pattern_inForInitializer_statement.dart.intertwined.expect
@@ -46,20 +46,20 @@
skipOuterPattern(var)
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(,, isRefutableContext: false)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ parsePattern(,, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.declaration)
+ parseVariablePattern(,, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, false)
listener: handlePatternField(null)
ensureCloseParen(b, ()
listener: handleRecordPattern((, 2)
diff --git a/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args.dart.intertwined.expect
index 551f0e3..89925ef 100644
--- a/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args.dart.intertwined.expect
@@ -94,14 +94,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseObjectPatternRest(>, isRefutableContext: true)
+ parseObjectPatternRest(>, PatternContext.matching)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(async, ., Future)
ensureColon())
diff --git a/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args_inside_cast.dart.intertwined.expect
index 3dbbf7a..f51f6de 100644
--- a/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args_inside_cast.dart.intertwined.expect
@@ -94,14 +94,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseObjectPatternRest(>, isRefutableContext: true)
+ parseObjectPatternRest(>, PatternContext.matching)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(async, ., Future)
listener: beginAsOperatorType(as)
diff --git a/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args_inside_null_assert.dart.intertwined.expect
index f6e5089..14a3d60 100644
--- a/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args_inside_null_assert.dart.intertwined.expect
@@ -94,14 +94,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseObjectPatternRest(>, isRefutableContext: true)
+ parseObjectPatternRest(>, PatternContext.matching)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(async, ., Future)
listener: handleNullAssertPattern(!)
diff --git a/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args_inside_null_check.dart.intertwined.expect
index e8cddcc..38506f8 100644
--- a/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/prefixed_extractor_pattern_with_type_args_inside_null_check.dart.intertwined.expect
@@ -94,14 +94,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseObjectPatternRest(>, isRefutableContext: true)
+ parseObjectPatternRest(>, PatternContext.matching)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(async, ., Future)
listener: handleNullCheckPattern(?)
diff --git a/pkg/front_end/parser_testcases/patterns/record_insideAssignment_empty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/record_insideAssignment_empty.dart.intertwined.expect
index 48b0010..7d5d679 100644
--- a/pkg/front_end/parser_testcases/patterns/record_insideAssignment_empty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_insideAssignment_empty.dart.intertwined.expect
@@ -46,8 +46,8 @@
looksLikeOuterPatternEquals({)
skipOuterPattern({)
parsePatternAssignment({)
- parsePattern({, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern({, isRefutableContext: false)
+ parsePattern({, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern({, PatternContext.assignment)
listener: handleRecordPattern((, 0)
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/record_insideAssignment_oneField.dart.expect b/pkg/front_end/parser_testcases/patterns/record_insideAssignment_oneField.dart.expect
index be279f6..bb4b783 100644
--- a/pkg/front_end/parser_testcases/patterns/record_insideAssignment_oneField.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_insideAssignment_oneField.dart.expect
@@ -18,7 +18,7 @@
handleAsyncModifier(null, null)
beginBlockFunctionBody({)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, true)
handlePatternField(null)
handleRecordPattern((, 1)
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/record_insideAssignment_oneField.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/record_insideAssignment_oneField.dart.intertwined.expect
index e81e57a..203d542 100644
--- a/pkg/front_end/parser_testcases/patterns/record_insideAssignment_oneField.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_insideAssignment_oneField.dart.intertwined.expect
@@ -46,14 +46,14 @@
looksLikeOuterPatternEquals({)
skipOuterPattern({)
parsePatternAssignment({)
- parsePattern({, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern({, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern({, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern({, PatternContext.assignment)
+ parseParenthesizedPatternOrRecordPattern({, PatternContext.assignment)
+ parsePattern((, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern((, PatternContext.assignment)
+ parseVariablePattern((, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, true)
listener: handlePatternField(null)
ensureCloseParen(,, ()
listener: handleRecordPattern((, 1)
diff --git a/pkg/front_end/parser_testcases/patterns/record_insideAssignment_twoFields.dart.expect b/pkg/front_end/parser_testcases/patterns/record_insideAssignment_twoFields.dart.expect
index b095b19..f2d965d 100644
--- a/pkg/front_end/parser_testcases/patterns/record_insideAssignment_twoFields.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_insideAssignment_twoFields.dart.expect
@@ -18,10 +18,10 @@
handleAsyncModifier(null, null)
beginBlockFunctionBody({)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, true)
handlePatternField(null)
handleNoType(,)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, true)
handlePatternField(null)
handleRecordPattern((, 2)
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/record_insideAssignment_twoFields.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/record_insideAssignment_twoFields.dart.intertwined.expect
index f47a51b..2a87ab4 100644
--- a/pkg/front_end/parser_testcases/patterns/record_insideAssignment_twoFields.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_insideAssignment_twoFields.dart.intertwined.expect
@@ -46,20 +46,20 @@
looksLikeOuterPatternEquals({)
skipOuterPattern({)
parsePatternAssignment({)
- parsePattern({, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern({, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern({, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern({, PatternContext.assignment)
+ parseParenthesizedPatternOrRecordPattern({, PatternContext.assignment)
+ parsePattern((, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern((, PatternContext.assignment)
+ parseVariablePattern((, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, true)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(,, isRefutableContext: false)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ parsePattern(,, PatternContext.assignment, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.assignment)
+ parseVariablePattern(,, PatternContext.assignment, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, true)
listener: handlePatternField(null)
ensureCloseParen(b, ()
listener: handleRecordPattern((, 2)
diff --git a/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_empty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_empty.dart.intertwined.expect
index 8dbab78..a3ce115 100644
--- a/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_empty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_empty.dart.intertwined.expect
@@ -43,8 +43,8 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
listener: handleRecordPattern((, 0)
parseExpression(=)
looksLikeOuterPatternEquals(=)
diff --git a/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_oneField.dart.expect b/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_oneField.dart.expect
index 703a2ce..9abd848 100644
--- a/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_oneField.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_oneField.dart.expect
@@ -20,7 +20,7 @@
beginMetadataStar(var)
endMetadataStar(0)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(null)
handleRecordPattern((, 1)
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_oneField.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_oneField.dart.intertwined.expect
index d819fd5..e92604b 100644
--- a/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_oneField.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_oneField.dart.intertwined.expect
@@ -43,14 +43,14 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(null)
ensureCloseParen(,, ()
listener: handleRecordPattern((, 1)
diff --git a/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_twoFields.dart.expect b/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_twoFields.dart.expect
index 3a8bcc8..979dacc 100644
--- a/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_twoFields.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_twoFields.dart.expect
@@ -20,10 +20,10 @@
beginMetadataStar(var)
endMetadataStar(0)
handleNoType(()
- handleVariablePattern(null, a)
+ handleVariablePattern(null, a, false)
handlePatternField(null)
handleNoType(,)
- handleVariablePattern(null, b)
+ handleVariablePattern(null, b, false)
handlePatternField(null)
handleRecordPattern((, 2)
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_twoFields.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_twoFields.dart.intertwined.expect
index 05ff7af..0e8675c 100644
--- a/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_twoFields.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_insideDeclaration_twoFields.dart.intertwined.expect
@@ -43,20 +43,20 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, a)
+ listener: handleVariablePattern(null, a, false)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(,, isRefutableContext: false)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ parsePattern(,, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.declaration)
+ parseVariablePattern(,, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, b)
+ listener: handleVariablePattern(null, b, false)
listener: handlePatternField(null)
ensureCloseParen(b, ()
listener: handleRecordPattern((, 2)
diff --git a/pkg/front_end/parser_testcases/patterns/record_pattern_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/record_pattern_inside_case.dart.intertwined.expect
index de50760..c6c3abf 100644
--- a/pkg/front_end/parser_testcases/patterns/record_pattern_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_pattern_inside_case.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
@@ -81,8 +81,8 @@
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/record_pattern_inside_case_empty.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/record_pattern_inside_case_empty.dart.intertwined.expect
index cdcb8ff..3bfec97 100644
--- a/pkg/front_end/parser_testcases/patterns/record_pattern_inside_case_empty.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_pattern_inside_case_empty.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleRecordPattern((, 0)
ensureColon())
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/record_pattern_inside_case_singleton.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/record_pattern_inside_case_singleton.dart.intertwined.expect
index b0f156f..8cdd2f8 100644
--- a/pkg/front_end/parser_testcases/patterns/record_pattern_inside_case_singleton.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_pattern_inside_case_singleton.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/record_pattern_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/record_pattern_inside_cast.dart.intertwined.expect
index a4805ec3d..690bdef 100644
--- a/pkg/front_end/parser_testcases/patterns/record_pattern_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_pattern_inside_cast.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
@@ -81,8 +81,8 @@
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/record_pattern_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/record_pattern_inside_null_assert.dart.intertwined.expect
index 829ec4a..d1221f2 100644
--- a/pkg/front_end/parser_testcases/patterns/record_pattern_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_pattern_inside_null_assert.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
@@ -81,8 +81,8 @@
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/record_pattern_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/record_pattern_inside_null_check.dart.intertwined.expect
index 7f54fad..2b5e21c 100644
--- a/pkg/front_end/parser_testcases/patterns/record_pattern_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/record_pattern_inside_null_check.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression((, 17, false)
parseUnaryExpression((, false)
parsePrimary((, expression)
@@ -81,8 +81,8 @@
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_case_equal.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_case_equal.dart.intertwined.expect
index cb84638..3002c02 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_case_equal.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_case_equal.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_case_greater_than.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_case_greater_than.dart.intertwined.expect
index 7cf536a..8f4d7bf 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_case_greater_than.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_case_greater_than.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(>, 12, false)
parseUnaryExpression(>, false)
parsePrimary(>, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_case_greater_than_or_equal.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_case_greater_than_or_equal.dart.intertwined.expect
index cbbc975..68631b0 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_case_greater_than_or_equal.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_case_greater_than_or_equal.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(>=, 12, false)
parseUnaryExpression(>=, false)
parsePrimary(>=, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_case_less_than.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_case_less_than.dart.intertwined.expect
index 1628e75..83a89f5 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_case_less_than.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_case_less_than.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(<, 12, false)
parseUnaryExpression(<, false)
parsePrimary(<, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_case_less_than_or_equal.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_case_less_than_or_equal.dart.intertwined.expect
index 8d31a4d..e3da00c 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_case_less_than_or_equal.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_case_less_than_or_equal.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(<=, 12, false)
parseUnaryExpression(<=, false)
parsePrimary(<=, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_case_not_equal.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_case_not_equal.dart.intertwined.expect
index 735f72b..0a45d3b 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_case_not_equal.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_case_not_equal.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(!=, 12, false)
parseUnaryExpression(!=, false)
parsePrimary(!=, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_extractor_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_extractor_pattern.dart.intertwined.expect
index db803df..381db96 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_extractor_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_extractor_pattern.dart.intertwined.expect
@@ -113,14 +113,14 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: true)
+ parseObjectPatternRest(C, PatternContext.matching)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(f, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_if_case.dart.intertwined.expect
index d816943..b390bac 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_if_case.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_list_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_list_pattern.dart.intertwined.expect
index 5f599d5..76412b1 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_list_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_list_pattern.dart.intertwined.expect
@@ -69,12 +69,12 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern([, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern([, isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern([, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern([, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_logical_and_lhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_logical_and_lhs.dart.intertwined.expect
index 9dd0282..bfe462b 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_logical_and_lhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_logical_and_lhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
@@ -78,8 +78,8 @@
listener: handleLiteralInt(1)
listener: handleRelationalPattern(==)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
parsePrecedenceExpression(&&, 17, false)
parseUnaryExpression(&&, false)
parsePrimary(&&, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_logical_and_rhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_logical_and_rhs.dart.intertwined.expect
index 627c28e..9f3bafc 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_logical_and_rhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_logical_and_rhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
@@ -78,8 +78,8 @@
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_logical_or_lhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_logical_or_lhs.dart.intertwined.expect
index 640530e..32073fb 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_logical_or_lhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_logical_or_lhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
@@ -78,8 +78,8 @@
listener: handleLiteralInt(1)
listener: handleRelationalPattern(==)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
parsePrecedenceExpression(||, 17, false)
parseUnaryExpression(||, false)
parsePrimary(||, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_logical_or_rhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_logical_or_rhs.dart.intertwined.expect
index 029c43a..3423655 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_logical_or_rhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_logical_or_rhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
@@ -78,8 +78,8 @@
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_map_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_map_pattern.dart.intertwined.expect
index e0f887a..f6b19d4 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_map_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_map_pattern.dart.intertwined.expect
@@ -69,10 +69,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(case, isRefutableContext: true)
+ parseMapPatternSuffix(case, PatternContext.matching)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -83,8 +83,8 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_parenthesized_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_parenthesized_pattern.dart.intertwined.expect
index 9cf1de7..485d5e2 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_parenthesized_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_parenthesized_pattern.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_record_pattern_named.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_record_pattern_named.dart.intertwined.expect
index 0f7f8ab..8e1307a 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_record_pattern_named.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_record_pattern_named.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
ensureIdentifier((, namedRecordFieldReference)
listener: handleIdentifier(n, namedRecordFieldReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
@@ -83,8 +83,8 @@
listener: handleLiteralInt(1)
listener: handleRelationalPattern(==)
listener: handlePatternField(:)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/relational_inside_record_pattern_unnamed.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/relational_inside_record_pattern_unnamed.dart.intertwined.expect
index 4c864e0..2fcd439 100644
--- a/pkg/front_end/parser_testcases/patterns/relational_inside_record_pattern_unnamed.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/relational_inside_record_pattern_unnamed.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
@@ -81,8 +81,8 @@
listener: handleLiteralInt(1)
listener: handleRelationalPattern(==)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/rest_subpatternStartingTokens.dart.expect b/pkg/front_end/parser_testcases/patterns/rest_subpatternStartingTokens.dart.expect
index defb798..0cfb59d 100644
--- a/pkg/front_end/parser_testcases/patterns/rest_subpatternStartingTokens.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/rest_subpatternStartingTokens.dart.expect
@@ -140,14 +140,14 @@
beginCaseExpression(case)
handleNoTypeArguments([)
handleNoType(var)
- handleVariablePattern(var, x)
+ handleVariablePattern(var, x, false)
handleRestPattern(..., true)
handleListPattern(1, [, ])
endCaseExpression(case, null, :)
beginCaseExpression(case)
handleNoTypeArguments([)
handleNoType(final)
- handleVariablePattern(final, x)
+ handleVariablePattern(final, x, false)
handleRestPattern(..., true)
handleListPattern(1, [, ])
endCaseExpression(case, null, :)
@@ -156,21 +156,21 @@
handleIdentifier(List, typeReference)
handleNoTypeArguments(x)
handleType(List, null)
- handleVariablePattern(null, x)
+ handleVariablePattern(null, x, false)
handleRestPattern(..., true)
handleListPattern(1, [, ])
endCaseExpression(case, null, :)
beginCaseExpression(case)
handleNoTypeArguments([)
handleNoType(...)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleRestPattern(..., true)
handleListPattern(1, [, ])
endCaseExpression(case, null, :)
beginCaseExpression(case)
handleNoTypeArguments([)
handleNoType(()
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleParenthesizedPattern(()
handleRestPattern(..., true)
handleListPattern(1, [, ])
@@ -179,7 +179,7 @@
handleNoTypeArguments([)
handleNoTypeArguments([)
handleNoType([)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleListPattern(1, [, ])
handleRestPattern(..., true)
handleListPattern(1, [, ])
diff --git a/pkg/front_end/parser_testcases/patterns/rest_subpatternStartingTokens.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/rest_subpatternStartingTokens.dart.intertwined.expect
index fd44329..314939f 100644
--- a/pkg/front_end/parser_testcases/patterns/rest_subpatternStartingTokens.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/rest_subpatternStartingTokens.dart.intertwined.expect
@@ -66,12 +66,12 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(==, 12, false)
parseUnaryExpression(==, false)
parsePrimary(==, expression)
@@ -84,12 +84,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(!=, 12, false)
parseUnaryExpression(!=, false)
parsePrimary(!=, expression)
@@ -102,12 +102,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(<, 12, false)
parseUnaryExpression(<, false)
parsePrimary(<, expression)
@@ -120,12 +120,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(>, 12, false)
parseUnaryExpression(>, false)
parsePrimary(>, expression)
@@ -138,12 +138,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(<=, 12, false)
parseUnaryExpression(<=, false)
parsePrimary(<=, expression)
@@ -156,12 +156,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(>=, 12, false)
parseUnaryExpression(>=, false)
parsePrimary(>=, expression)
@@ -174,12 +174,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(..., 17, false)
parseUnaryExpression(..., false)
parsePrimary(..., expression)
@@ -192,12 +192,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(..., 17, false)
parseUnaryExpression(..., false)
parsePrimary(..., expression)
@@ -210,12 +210,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(..., 17, false)
parseUnaryExpression(..., false)
parsePrimary(..., expression)
@@ -228,12 +228,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(..., 17, false)
parseUnaryExpression(..., false)
parsePrimary(..., expression)
@@ -246,12 +246,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(..., 17, false)
parseUnaryExpression(..., false)
parsePrimary(..., expression)
@@ -264,12 +264,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(..., 17, false)
parseUnaryExpression(..., false)
parsePrimary(..., expression)
@@ -282,12 +282,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(..., 17, false)
parseUnaryExpression(..., false)
parsePrimary(..., expression)
@@ -302,12 +302,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(..., 17, false)
parseUnaryExpression(..., false)
parsePrimary(..., expression)
@@ -327,12 +327,12 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
parsePrecedenceExpression(const, 17, false)
parseUnaryExpression(const, false)
parsePrimary(const, expression)
@@ -356,80 +356,80 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
- parseVariablePattern(..., typeInfo: Instance of 'NoType')
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
+ parseVariablePattern(..., PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, x)
+ listener: handleVariablePattern(var, x, false)
listener: handleRestPattern(..., true)
listener: handleListPattern(1, [, ])
ensureColon(])
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
- parseVariablePattern(..., typeInfo: Instance of 'NoType')
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
+ parseVariablePattern(..., PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(final)
- listener: handleVariablePattern(final, x)
+ listener: handleVariablePattern(final, x, false)
listener: handleRestPattern(..., true)
listener: handleListPattern(1, [, ])
ensureColon(])
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
- parseVariablePattern(..., typeInfo: Instance of 'SimpleType')
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
+ parseVariablePattern(..., PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(List, typeReference)
listener: handleNoTypeArguments(x)
listener: handleType(List, null)
- listener: handleVariablePattern(null, x)
+ listener: handleVariablePattern(null, x, false)
listener: handleRestPattern(..., true)
listener: handleListPattern(1, [, ])
ensureColon(])
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
- parseVariablePattern(..., typeInfo: Instance of 'NoType')
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
+ parseVariablePattern(..., PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(...)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: handleRestPattern(..., true)
listener: handleListPattern(1, [, ])
ensureColon(])
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(..., isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(..., PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
+ parseVariablePattern((, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
ensureCloseParen(_, ()
listener: handleParenthesizedPattern(()
listener: handleRestPattern(..., true)
@@ -438,19 +438,19 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(..., isRefutableContext: true)
- parsePattern([, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern([, isRefutableContext: true)
- parseVariablePattern([, typeInfo: Instance of 'NoType')
+ parseListPatternSuffix(..., PatternContext.matching)
+ parsePattern([, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern([, PatternContext.matching)
+ parseVariablePattern([, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType([)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: handleListPattern(1, [, ])
listener: handleRestPattern(..., true)
listener: handleListPattern(1, [, ])
@@ -458,14 +458,14 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
listener: handleNoTypeArguments([])
- parseListPatternSuffix(..., isRefutableContext: true)
+ parseListPatternSuffix(..., PatternContext.matching)
rewriteSquareBrackets(...)
link([, ])
rewriter()
@@ -476,18 +476,18 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
listener: beginTypeArguments(<)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(>)
listener: handleType(int, null)
listener: endTypeArguments(1, <, >)
- parseListPatternSuffix(>, isRefutableContext: true)
+ parseListPatternSuffix(>, PatternContext.matching)
rewriteSquareBrackets(>)
link([, ])
rewriter()
@@ -498,14 +498,14 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(..., isRefutableContext: true)
+ parseMapPatternSuffix(..., PatternContext.matching)
listener: handleMapPattern(0, {, })
listener: handleRestPattern(..., true)
listener: handleListPattern(1, [, ])
@@ -513,14 +513,14 @@
listener: endCaseExpression(case, null, :)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(List, isRefutableContext: true)
+ parseObjectPatternRest(List, PatternContext.matching)
listener: handleObjectPatternFields(0, (, ))
listener: handleObjectPattern(List, null, null)
listener: handleRestPattern(..., true)
diff --git a/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideList.dart.expect b/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideList.dart.expect
index fcea1c3..2c55dc7 100644
--- a/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideList.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideList.dart.expect
@@ -27,7 +27,7 @@
beginCaseExpression(case)
handleNoTypeArguments([)
handleNoType(var)
- handleVariablePattern(var, y)
+ handleVariablePattern(var, y, false)
handleRestPattern(..., true)
handleListPattern(1, [, ])
endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideList.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideList.dart.intertwined.expect
index 276cfe3..ab2f880 100644
--- a/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideList.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideList.dart.intertwined.expect
@@ -66,15 +66,15 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
- parseVariablePattern(..., typeInfo: Instance of 'NoType')
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
+ parseVariablePattern(..., PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, y)
+ listener: handleVariablePattern(var, y, false)
listener: handleRestPattern(..., true)
listener: handleListPattern(1, [, ])
ensureColon(])
diff --git a/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideMap.dart.expect b/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideMap.dart.expect
index 19fc18b..3acf44c 100644
--- a/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideMap.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideMap.dart.expect
@@ -27,7 +27,7 @@
beginCaseExpression(case)
handleNoTypeArguments({)
handleNoType(var)
- handleVariablePattern(var, y)
+ handleVariablePattern(var, y, false)
handleRestPattern(..., true)
handleMapPattern(1, {, })
endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideMap.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideMap.dart.intertwined.expect
index ac15736..069304b 100644
--- a/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideMap.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/rest_withSubpattern_insideMap.dart.intertwined.expect
@@ -66,15 +66,15 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(case, isRefutableContext: true)
- parsePattern(..., precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(..., isRefutableContext: true)
- parseVariablePattern(..., typeInfo: Instance of 'NoType')
+ parseMapPatternSuffix(case, PatternContext.matching)
+ parsePattern(..., PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(..., PatternContext.matching)
+ parseVariablePattern(..., PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, y)
+ listener: handleVariablePattern(var, y, false)
listener: handleRestPattern(..., true)
listener: handleMapPattern(1, {, })
ensureColon(})
diff --git a/pkg/front_end/parser_testcases/patterns/rest_withoutSubpattern_insideList.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/rest_withoutSubpattern_insideList.dart.intertwined.expect
index ffc1408..1b60eb7 100644
--- a/pkg/front_end/parser_testcases/patterns/rest_withoutSubpattern_insideList.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/rest_withoutSubpattern_insideList.dart.intertwined.expect
@@ -66,10 +66,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
+ parseListPatternSuffix(case, PatternContext.matching)
listener: handleRestPattern(..., false)
listener: handleListPattern(1, [, ])
ensureColon(])
diff --git a/pkg/front_end/parser_testcases/patterns/rest_withoutSubpattern_insideMap.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/rest_withoutSubpattern_insideMap.dart.intertwined.expect
index 66ad0ad..32012e5 100644
--- a/pkg/front_end/parser_testcases/patterns/rest_withoutSubpattern_insideMap.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/rest_withoutSubpattern_insideMap.dart.intertwined.expect
@@ -66,10 +66,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(case, isRefutableContext: true)
+ parseMapPatternSuffix(case, PatternContext.matching)
listener: handleRestPattern(..., false)
listener: handleMapPattern(1, {, })
ensureColon(})
diff --git a/pkg/front_end/parser_testcases/patterns/string_literal_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/string_literal_inside_case.dart.intertwined.expect
index 7faeb94..e30b204 100644
--- a/pkg/front_end/parser_testcases/patterns/string_literal_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/string_literal_inside_case.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/string_literal_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/string_literal_inside_cast.dart.intertwined.expect
index 5099fa2..8bcf0e4 100644
--- a/pkg/front_end/parser_testcases/patterns/string_literal_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/string_literal_inside_cast.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/string_literal_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/string_literal_inside_if_case.dart.intertwined.expect
index 2f58582..7a8c47d 100644
--- a/pkg/front_end/parser_testcases/patterns/string_literal_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/string_literal_inside_if_case.dart.intertwined.expect
@@ -61,8 +61,8 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/string_literal_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/string_literal_inside_null_assert.dart.intertwined.expect
index de1a790..27fd80b 100644
--- a/pkg/front_end/parser_testcases/patterns/string_literal_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/string_literal_inside_null_assert.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/string_literal_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/string_literal_inside_null_check.dart.intertwined.expect
index d37214c..6f95e53 100644
--- a/pkg/front_end/parser_testcases/patterns/string_literal_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/string_literal_inside_null_check.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_guarded.dart.expect b/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_guarded.dart.expect
index 63a1deb..35746eb 100644
--- a/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_guarded.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_guarded.dart.expect
@@ -25,7 +25,7 @@
beginSwitchExpressionBlock({)
beginSwitchExpressionCase()
handleNoType({)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleLiteralBool(true)
handleLiteralInt(0)
endSwitchExpressionCase(when, =>, 0)
diff --git a/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_guarded.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_guarded.dart.intertwined.expect
index 2856e27..35f7578 100644
--- a/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_guarded.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_guarded.dart.intertwined.expect
@@ -68,11 +68,11 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
- parseVariablePattern({, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
+ parseVariablePattern({, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType({)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
diff --git a/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_noTrailingComma.dart.expect b/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_noTrailingComma.dart.expect
index 47a894c..6d77bd1 100644
--- a/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_noTrailingComma.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_noTrailingComma.dart.expect
@@ -25,7 +25,7 @@
beginSwitchExpressionBlock({)
beginSwitchExpressionCase()
handleNoType({)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleLiteralInt(0)
endSwitchExpressionCase(null, =>, 0)
endSwitchExpressionBlock(1, {, })
diff --git a/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_noTrailingComma.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_noTrailingComma.dart.intertwined.expect
index c49a163..950bdcf 100644
--- a/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_noTrailingComma.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_noTrailingComma.dart.intertwined.expect
@@ -68,11 +68,11 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
- parseVariablePattern({, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
+ parseVariablePattern({, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType({)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
ensureFunctionArrow(_)
parseExpression(=>)
looksLikeOuterPatternEquals(=>)
diff --git a/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_trailingComma.dart.expect b/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_trailingComma.dart.expect
index 47a894c..6d77bd1 100644
--- a/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_trailingComma.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_trailingComma.dart.expect
@@ -25,7 +25,7 @@
beginSwitchExpressionBlock({)
beginSwitchExpressionCase()
handleNoType({)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleLiteralInt(0)
endSwitchExpressionCase(null, =>, 0)
endSwitchExpressionBlock(1, {, })
diff --git a/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_trailingComma.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_trailingComma.dart.intertwined.expect
index c49a163..950bdcf 100644
--- a/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_trailingComma.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/switchExpression_onePattern_trailingComma.dart.intertwined.expect
@@ -68,11 +68,11 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
- parseVariablePattern({, typeInfo: Instance of 'NoType')
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
+ parseVariablePattern({, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType({)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
ensureFunctionArrow(_)
parseExpression(=>)
looksLikeOuterPatternEquals(=>)
diff --git a/pkg/front_end/parser_testcases/patterns/switchExpression_twoPatterns.dart.expect b/pkg/front_end/parser_testcases/patterns/switchExpression_twoPatterns.dart.expect
index cb8b925..af8753f 100644
--- a/pkg/front_end/parser_testcases/patterns/switchExpression_twoPatterns.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/switchExpression_twoPatterns.dart.expect
@@ -27,12 +27,12 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(_)
handleType(int, null)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleLiteralInt(0)
endSwitchExpressionCase(null, =>, 0)
beginSwitchExpressionCase()
handleNoType(,)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleLiteralInt(1)
endSwitchExpressionCase(null, =>, 1)
endSwitchExpressionBlock(2, {, })
diff --git a/pkg/front_end/parser_testcases/patterns/switchExpression_twoPatterns.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/switchExpression_twoPatterns.dart.intertwined.expect
index 7eb93b3..b0854f7 100644
--- a/pkg/front_end/parser_testcases/patterns/switchExpression_twoPatterns.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/switchExpression_twoPatterns.dart.intertwined.expect
@@ -68,13 +68,13 @@
ensureBlock(), null, switch expression)
listener: beginSwitchExpressionBlock({)
listener: beginSwitchExpressionCase()
- parsePattern({, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern({, isRefutableContext: true)
- parseVariablePattern({, typeInfo: Instance of 'SimpleType')
+ parsePattern({, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern({, PatternContext.matching)
+ parseVariablePattern({, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(_)
listener: handleType(int, null)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
ensureFunctionArrow(_)
parseExpression(=>)
looksLikeOuterPatternEquals(=>)
@@ -86,11 +86,11 @@
listener: handleLiteralInt(0)
listener: endSwitchExpressionCase(null, =>, 0)
listener: beginSwitchExpressionCase()
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
- parseVariablePattern(,, typeInfo: Instance of 'NoType')
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
+ parseVariablePattern(,, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(,)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
ensureFunctionArrow(_)
parseExpression(=>)
looksLikeOuterPatternEquals(=>)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_case.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_case.dart.expect
index 596e195..3ae67e7 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_case.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
- handleVariablePattern(final, y)
+ handleVariablePattern(final, y, false)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
handleBreakStatement(false, break, ;)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_case.dart.intertwined.expect
index 25a5e4d..0b7e427 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_case.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
- listener: handleVariablePattern(final, y)
+ listener: handleVariablePattern(final, y, false)
ensureColon(y)
listener: endCaseExpression(case, null, :)
peekPastLabels(break)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_cast.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_cast.dart.expect
index fca4e04..d943a81 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_cast.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_cast.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
- handleVariablePattern(final, y)
+ handleVariablePattern(final, y, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(:)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_cast.dart.intertwined.expect
index 6044f02..1ced8dc 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_cast.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
- listener: handleVariablePattern(final, y)
+ listener: handleVariablePattern(final, y, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_if_case.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_if_case.dart.expect
index e78ddaf..512b27f 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_if_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_if_case.dart.expect
@@ -27,7 +27,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
- handleVariablePattern(final, y)
+ handleVariablePattern(final, y, false)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
beginBlock({, BlockKind(statement))
diff --git a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_if_case.dart.intertwined.expect
index 35abab9..1a74858 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_if_case.dart.intertwined.expect
@@ -61,13 +61,13 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
- listener: handleVariablePattern(final, y)
+ listener: handleVariablePattern(final, y, false)
ensureCloseParen(y, ()
listener: handleParenthesizedCondition((, case, null)
listener: beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_assert.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_assert.dart.expect
index 6910183..0fa4b1f 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_assert.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_assert.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
- handleVariablePattern(final, y)
+ handleVariablePattern(final, y, false)
handleNullAssertPattern(!)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_assert.dart.intertwined.expect
index 107cb0e..de23b2a 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_assert.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
- listener: handleVariablePattern(final, y)
+ listener: handleVariablePattern(final, y, false)
listener: handleNullAssertPattern(!)
ensureColon(!)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_check.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_check.dart.expect
index 62bae9d..52913ac 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_check.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_check.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
- handleVariablePattern(final, y)
+ handleVariablePattern(final, y, false)
handleNullCheckPattern(?)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_check.dart.intertwined.expect
index 4671c05..aaef33a 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_final_variable_inside_null_check.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
- listener: handleVariablePattern(final, y)
+ listener: handleVariablePattern(final, y, false)
listener: handleNullCheckPattern(?)
ensureColon(?)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_case.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_case.dart.expect
index 3417c20..d0e64e5 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_case.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
- handleVariablePattern(null, y)
+ handleVariablePattern(null, y, false)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
handleBreakStatement(false, break, ;)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_case.dart.intertwined.expect
index b89ab98..f8e913b 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_case.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
- listener: handleVariablePattern(null, y)
+ listener: handleVariablePattern(null, y, false)
ensureColon(y)
listener: endCaseExpression(case, null, :)
peekPastLabels(break)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_cast.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_cast.dart.expect
index 5e0206f..1a6a8be 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_cast.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_cast.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
- handleVariablePattern(null, y)
+ handleVariablePattern(null, y, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(:)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_cast.dart.intertwined.expect
index 39b50ec..b33ade9 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_cast.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
- listener: handleVariablePattern(null, y)
+ listener: handleVariablePattern(null, y, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_if_case.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_if_case.dart.expect
index 21dc891..8b813be 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_if_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_if_case.dart.expect
@@ -27,7 +27,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
- handleVariablePattern(null, y)
+ handleVariablePattern(null, y, false)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
beginBlock({, BlockKind(statement))
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_if_case.dart.intertwined.expect
index 4f85e86..eefd064 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_if_case.dart.intertwined.expect
@@ -61,13 +61,13 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
- listener: handleVariablePattern(null, y)
+ listener: handleVariablePattern(null, y, false)
ensureCloseParen(y, ()
listener: handleParenthesizedCondition((, case, null)
listener: beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_assert.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_assert.dart.expect
index e23efb3..a76a058 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_assert.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_assert.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
- handleVariablePattern(null, y)
+ handleVariablePattern(null, y, false)
handleNullAssertPattern(!)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_assert.dart.intertwined.expect
index b5b9792..94ea139 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_assert.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
- listener: handleVariablePattern(null, y)
+ listener: handleVariablePattern(null, y, false)
listener: handleNullAssertPattern(!)
ensureColon(!)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_check.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_check.dart.expect
index 8ccc145..86abef0 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_check.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_check.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
- handleVariablePattern(null, y)
+ handleVariablePattern(null, y, false)
handleNullCheckPattern(?)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_check.dart.intertwined.expect
index 0cbed80..0f6d547 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_inside_null_check.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
- listener: handleVariablePattern(null, y)
+ listener: handleVariablePattern(null, y, false)
listener: handleNullCheckPattern(?)
ensureColon(?)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_case.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_case.dart.expect
index 60ac9d5..a864098 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_case.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
handleBreakStatement(false, break, ;)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_case.dart.intertwined.expect
index 64b6ca8..475809c 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_case.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
ensureColon(as)
listener: endCaseExpression(case, null, :)
peekPastLabels(break)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_cast.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_cast.dart.expect
index 826a4e5..46f0561 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_cast.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_cast.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(:)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_cast.dart.intertwined.expect
index b46724d..5e72bfd 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_cast.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern.dart.expect
index 8f830f6..925258e 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern.dart.expect
@@ -58,7 +58,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
handlePatternField(:)
handleObjectPatternFields(1, (, ))
handleObjectPattern(C, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern.dart.intertwined.expect
index fc1c039..2748738 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern.dart.intertwined.expect
@@ -113,19 +113,19 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: true)
+ parseObjectPatternRest(C, PatternContext.matching)
ensureIdentifier((, namedArgumentReference)
listener: handleIdentifier(f, namedArgumentReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
- parseVariablePattern(:, typeInfo: Instance of 'SimpleType')
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
+ parseVariablePattern(:, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: handlePatternField(:)
listener: handleObjectPatternFields(1, (, ))
listener: handleObjectPattern(C, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern_implicitly_named.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern_implicitly_named.dart.expect
index bdad397..34d0911 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern_implicitly_named.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern_implicitly_named.dart.expect
@@ -58,7 +58,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
handlePatternField(:)
handleObjectPatternFields(1, (, ))
handleObjectPattern(C, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern_implicitly_named.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern_implicitly_named.dart.intertwined.expect
index 1be356f..953c119 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern_implicitly_named.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_extractor_pattern_implicitly_named.dart.intertwined.expect
@@ -113,18 +113,18 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments(()
- parseObjectPatternRest(C, isRefutableContext: true)
+ parseObjectPatternRest(C, PatternContext.matching)
listener: handleNoName(()
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
- parseVariablePattern(:, typeInfo: Instance of 'SimpleType')
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
+ parseVariablePattern(:, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: handlePatternField(:)
listener: handleObjectPatternFields(1, (, ))
listener: handleObjectPattern(C, null, null)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_if_case.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_if_case.dart.expect
index fcf10b5..9a152a0 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_if_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_if_case.dart.expect
@@ -27,7 +27,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
beginBlock({, BlockKind(statement))
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_if_case.dart.intertwined.expect
index 375ff7b..2671e52 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_if_case.dart.intertwined.expect
@@ -61,13 +61,13 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
ensureCloseParen(as, ()
listener: handleParenthesizedCondition((, case, null)
listener: beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_list_pattern.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_list_pattern.dart.expect
index fc6c843..d16a8fa 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_list_pattern.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_list_pattern.dart.expect
@@ -31,7 +31,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
handleListPattern(1, [, ])
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_list_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_list_pattern.dart.intertwined.expect
index a8cc4ae..ebb66bf 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_list_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_list_pattern.dart.intertwined.expect
@@ -69,17 +69,17 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments([)
- parseListPatternSuffix(case, isRefutableContext: true)
- parsePattern([, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern([, isRefutableContext: true)
- parseVariablePattern([, typeInfo: Instance of 'SimpleType')
+ parseListPatternSuffix(case, PatternContext.matching)
+ parsePattern([, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern([, PatternContext.matching)
+ parseVariablePattern([, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: handleListPattern(1, [, ])
ensureColon(])
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_lhs.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_lhs.dart.expect
index 25bc0ff..fc33a01 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_lhs.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_lhs.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
beginBinaryPattern(&&)
handleLiteralInt(2)
handleConstantPattern(null)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_lhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_lhs.dart.intertwined.expect
index 8fc5f36..899c2d5 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_lhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_lhs.dart.intertwined.expect
@@ -69,16 +69,16 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
parsePrecedenceExpression(&&, 17, false)
parseUnaryExpression(&&, false)
parsePrimary(&&, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_rhs.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_rhs.dart.expect
index fb75ae0..2e506d2 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_rhs.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_rhs.dart.expect
@@ -33,7 +33,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
endBinaryPattern(&&)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_rhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_rhs.dart.intertwined.expect
index 5d1d765..b544dd4 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_rhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_and_rhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
@@ -78,13 +78,13 @@
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
listener: beginBinaryPattern(&&)
- parsePattern(&&, precedence: 7, isRefutableContext: true)
- parsePrimaryPattern(&&, isRefutableContext: true)
- parseVariablePattern(&&, typeInfo: Instance of 'SimpleType')
+ parsePattern(&&, PatternContext.matching, precedence: 7)
+ parsePrimaryPattern(&&, PatternContext.matching)
+ parseVariablePattern(&&, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: endBinaryPattern(&&)
ensureColon(as)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_lhs.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_lhs.dart.expect
index d6ddd32..9d29ee1 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_lhs.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_lhs.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
beginBinaryPattern(||)
handleLiteralInt(2)
handleConstantPattern(null)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_lhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_lhs.dart.intertwined.expect
index dd78502..44d90bb 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_lhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_lhs.dart.intertwined.expect
@@ -69,16 +69,16 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
parsePrecedenceExpression(||, 17, false)
parseUnaryExpression(||, false)
parsePrimary(||, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_rhs.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_rhs.dart.expect
index 7efdc8b..0e5df4a 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_rhs.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_rhs.dart.expect
@@ -33,7 +33,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
endBinaryPattern(||)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_rhs.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_rhs.dart.intertwined.expect
index c878c9d..1eae7e2 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_rhs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_logical_or_rhs.dart.intertwined.expect
@@ -69,8 +69,8 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
parsePrecedenceExpression(case, 17, false)
parseUnaryExpression(case, false)
parsePrimary(case, expression)
@@ -78,13 +78,13 @@
listener: handleLiteralInt(1)
listener: handleConstantPattern(null)
listener: beginBinaryPattern(||)
- parsePattern(||, precedence: 6, isRefutableContext: true)
- parsePrimaryPattern(||, isRefutableContext: true)
- parseVariablePattern(||, typeInfo: Instance of 'SimpleType')
+ parsePattern(||, PatternContext.matching, precedence: 6)
+ parsePrimaryPattern(||, PatternContext.matching)
+ parseVariablePattern(||, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: endBinaryPattern(||)
ensureColon(as)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_map_pattern.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_map_pattern.dart.expect
index cc0d616..3aa8245 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_map_pattern.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_map_pattern.dart.expect
@@ -33,7 +33,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
handleMapPatternEntry(:, })
handleMapPattern(1, {, })
endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_map_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_map_pattern.dart.intertwined.expect
index 7793305..c0d3568 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_map_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_map_pattern.dart.intertwined.expect
@@ -69,10 +69,10 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
listener: handleNoTypeArguments({)
- parseMapPatternSuffix(case, isRefutableContext: true)
+ parseMapPatternSuffix(case, PatternContext.matching)
parseExpression({)
looksLikeOuterPatternEquals({)
skipOuterPattern({)
@@ -83,13 +83,13 @@
parseSingleLiteralString({)
listener: beginLiteralString('a')
listener: endLiteralString(0, :)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
- parseVariablePattern(:, typeInfo: Instance of 'SimpleType')
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
+ parseVariablePattern(:, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: handleMapPatternEntry(:, })
listener: handleMapPattern(1, {, })
ensureColon(})
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_assert.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_assert.dart.expect
index 2b033bc24..f5c3d10 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_assert.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_assert.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
handleNullAssertPattern(!)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_assert.dart.intertwined.expect
index 09057e0..8abffc7 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_assert.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: handleNullAssertPattern(!)
ensureColon(!)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_check.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_check.dart.expect
index 348b602..c8abc1d 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_check.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_check.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
handleNullCheckPattern(?)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_check.dart.intertwined.expect
index 4d3b2fd..21d23b7 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_null_check.dart.intertwined.expect
@@ -69,13 +69,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: handleNullCheckPattern(?)
ensureColon(?)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_parenthesized_pattern.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_parenthesized_pattern.dart.expect
index ca127fd..f3405b2 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_parenthesized_pattern.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_parenthesized_pattern.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
handleParenthesizedPattern(()
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_parenthesized_pattern.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_parenthesized_pattern.dart.intertwined.expect
index a18b0d7..4444b7e 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_parenthesized_pattern.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_parenthesized_pattern.dart.intertwined.expect
@@ -69,16 +69,16 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
- parseVariablePattern((, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
+ parseVariablePattern((, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
ensureCloseParen(as, ()
listener: handleParenthesizedPattern(()
ensureColon())
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_implicitly_named.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_implicitly_named.dart.expect
index 5df8df2..5adc0ac 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_implicitly_named.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_implicitly_named.dart.expect
@@ -31,7 +31,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
handlePatternField(:)
handleLiteralInt(2)
handleConstantPattern(null)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_implicitly_named.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_implicitly_named.dart.intertwined.expect
index f1e2939..781d8dd 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_implicitly_named.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_implicitly_named.dart.intertwined.expect
@@ -69,20 +69,20 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
listener: handleNoName(()
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
- parseVariablePattern(:, typeInfo: Instance of 'SimpleType')
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
+ parseVariablePattern(:, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: handlePatternField(:)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_named.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_named.dart.expect
index e7596cc..6413dfb 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_named.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_named.dart.expect
@@ -31,7 +31,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
handlePatternField(:)
handleLiteralInt(2)
handleConstantPattern(null)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_named.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_named.dart.intertwined.expect
index 9cf8b60..3e619f5 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_named.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_named.dart.intertwined.expect
@@ -69,21 +69,21 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
ensureIdentifier((, namedRecordFieldReference)
listener: handleIdentifier(n, namedRecordFieldReference)
- parsePattern(:, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(:, isRefutableContext: true)
- parseVariablePattern(:, typeInfo: Instance of 'SimpleType')
+ parsePattern(:, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(:, PatternContext.matching)
+ parseVariablePattern(:, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: handlePatternField(:)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_unnamed.dart.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_unnamed.dart.expect
index ddb6cd7..7d3dc38 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_unnamed.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_unnamed.dart.expect
@@ -30,7 +30,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
handlePatternField(null)
handleLiteralInt(2)
handleConstantPattern(null)
diff --git a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_unnamed.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_unnamed.dart.intertwined.expect
index cee0258..83478dd 100644
--- a/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_unnamed.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/typed_variable_named_as_inside_record_pattern_unnamed.dart.intertwined.expect
@@ -69,19 +69,19 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseParenthesizedPatternOrRecordPattern(case, isRefutableContext: true)
- parsePattern((, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern((, isRefutableContext: true)
- parseVariablePattern((, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseParenthesizedPatternOrRecordPattern(case, PatternContext.matching)
+ parsePattern((, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern((, PatternContext.matching)
+ parseVariablePattern((, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: handlePatternField(null)
- parsePattern(,, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(,, isRefutableContext: true)
+ parsePattern(,, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(,, PatternContext.matching)
parsePrecedenceExpression(,, 17, false)
parseUnaryExpression(,, false)
parsePrimary(,, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/var_variable_inside_case.dart.expect b/pkg/front_end/parser_testcases/patterns/var_variable_inside_case.dart.expect
index a24021e..9edfb72 100644
--- a/pkg/front_end/parser_testcases/patterns/var_variable_inside_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/var_variable_inside_case.dart.expect
@@ -28,7 +28,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(var)
- handleVariablePattern(var, y)
+ handleVariablePattern(var, y, false)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
handleBreakStatement(false, break, ;)
diff --git a/pkg/front_end/parser_testcases/patterns/var_variable_inside_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/var_variable_inside_case.dart.intertwined.expect
index 28b8b38..6efa133 100644
--- a/pkg/front_end/parser_testcases/patterns/var_variable_inside_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/var_variable_inside_case.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, y)
+ listener: handleVariablePattern(var, y, false)
ensureColon(y)
listener: endCaseExpression(case, null, :)
peekPastLabels(break)
diff --git a/pkg/front_end/parser_testcases/patterns/var_variable_inside_cast.dart.expect b/pkg/front_end/parser_testcases/patterns/var_variable_inside_cast.dart.expect
index 0b2137b..5eafc6b 100644
--- a/pkg/front_end/parser_testcases/patterns/var_variable_inside_cast.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/var_variable_inside_cast.dart.expect
@@ -28,7 +28,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(var)
- handleVariablePattern(var, y)
+ handleVariablePattern(var, y, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(:)
diff --git a/pkg/front_end/parser_testcases/patterns/var_variable_inside_cast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/var_variable_inside_cast.dart.intertwined.expect
index 97623b4..f258103 100644
--- a/pkg/front_end/parser_testcases/patterns/var_variable_inside_cast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/var_variable_inside_cast.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, y)
+ listener: handleVariablePattern(var, y, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/var_variable_inside_if_case.dart.expect b/pkg/front_end/parser_testcases/patterns/var_variable_inside_if_case.dart.expect
index 35e81a1..099c8c6 100644
--- a/pkg/front_end/parser_testcases/patterns/var_variable_inside_if_case.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/var_variable_inside_if_case.dart.expect
@@ -25,7 +25,7 @@
handleNoArguments(case)
handleSend(x, case)
handleNoType(var)
- handleVariablePattern(var, y)
+ handleVariablePattern(var, y, false)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
beginBlock({, BlockKind(statement))
diff --git a/pkg/front_end/parser_testcases/patterns/var_variable_inside_if_case.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/var_variable_inside_if_case.dart.intertwined.expect
index 63bdaec..19a111f 100644
--- a/pkg/front_end/parser_testcases/patterns/var_variable_inside_if_case.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/var_variable_inside_if_case.dart.intertwined.expect
@@ -61,11 +61,11 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, y)
+ listener: handleVariablePattern(var, y, false)
ensureCloseParen(y, ()
listener: handleParenthesizedCondition((, case, null)
listener: beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_assert.dart.expect b/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_assert.dart.expect
index 23e1545..ebbdf18 100644
--- a/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_assert.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_assert.dart.expect
@@ -28,7 +28,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(var)
- handleVariablePattern(var, y)
+ handleVariablePattern(var, y, false)
handleNullAssertPattern(!)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_assert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_assert.dart.intertwined.expect
index 9aebd7a..1df60f8 100644
--- a/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_assert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_assert.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, y)
+ listener: handleVariablePattern(var, y, false)
listener: handleNullAssertPattern(!)
ensureColon(!)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_check.dart.expect b/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_check.dart.expect
index 8a314d4..74eb962 100644
--- a/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_check.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_check.dart.expect
@@ -28,7 +28,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(var)
- handleVariablePattern(var, y)
+ handleVariablePattern(var, y, false)
handleNullCheckPattern(?)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_check.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_check.dart.intertwined.expect
index ba37e50..4ed8e70 100644
--- a/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_check.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/var_variable_inside_null_check.dart.intertwined.expect
@@ -69,11 +69,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, y)
+ listener: handleVariablePattern(var, y, false)
listener: handleNullCheckPattern(?)
ensureColon(?)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_bare_insideCast.dart.expect b/pkg/front_end/parser_testcases/patterns/variable_bare_insideCast.dart.expect
index e4df700..8e896c4 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_bare_insideCast.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_bare_insideCast.dart.expect
@@ -20,7 +20,7 @@
beginMetadataStar(var)
endMetadataStar(0)
handleNoType(()
- handleVariablePattern(null, y)
+ handleVariablePattern(null, y, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments())
diff --git a/pkg/front_end/parser_testcases/patterns/variable_bare_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/variable_bare_insideCast.dart.intertwined.expect
index 04b93d1..7438844 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_bare_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_bare_insideCast.dart.intertwined.expect
@@ -43,14 +43,14 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, y)
+ listener: handleVariablePattern(null, y, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_bare_insideNullAssert.dart.expect b/pkg/front_end/parser_testcases/patterns/variable_bare_insideNullAssert.dart.expect
index 55aa98d..fdf9081 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_bare_insideNullAssert.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_bare_insideNullAssert.dart.expect
@@ -20,7 +20,7 @@
beginMetadataStar(var)
endMetadataStar(0)
handleNoType(()
- handleVariablePattern(null, y)
+ handleVariablePattern(null, y, false)
handleNullAssertPattern(!)
handleParenthesizedPattern(()
handleIdentifier(x, expression)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_bare_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/variable_bare_insideNullAssert.dart.intertwined.expect
index 5750635..25e92a9 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_bare_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_bare_insideNullAssert.dart.intertwined.expect
@@ -43,14 +43,14 @@
listener: beginMetadataStar(var)
listener: endMetadataStar(0)
parsePatternVariableDeclarationStatement(var, {, var)
- parsePattern(var, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern(var, isRefutableContext: false)
- parseParenthesizedPatternOrRecordPattern(var, isRefutableContext: false)
- parsePattern((, precedence: 1, isRefutableContext: false)
- parsePrimaryPattern((, isRefutableContext: false)
- parseVariablePattern((, typeInfo: Instance of 'NoType')
+ parsePattern(var, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern(var, PatternContext.declaration)
+ parseParenthesizedPatternOrRecordPattern(var, PatternContext.declaration)
+ parsePattern((, PatternContext.declaration, precedence: 1)
+ parsePrimaryPattern((, PatternContext.declaration)
+ parseVariablePattern((, PatternContext.declaration, typeInfo: Instance of 'NoType')
listener: handleNoType(()
- listener: handleVariablePattern(null, y)
+ listener: handleVariablePattern(null, y, false)
listener: handleNullAssertPattern(!)
ensureCloseParen(!, ()
listener: handleParenthesizedPattern(()
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_absurd.dart.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_absurd.dart.expect
index 13285e6..c00527a 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_absurd.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_absurd.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(when, typeReference)
handleNoTypeArguments(as)
handleType(when, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
beginAsOperatorType(as)
handleIdentifier(when, typeReference)
handleNoTypeArguments(when)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_absurd.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_absurd.dart.intertwined.expect
index 3a5ebc64..664c49c 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_absurd.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_absurd.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(when, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(when, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(when, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_beforeWhen.dart.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_beforeWhen.dart.expect
index 14f4083..1b0e83a 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_beforeWhen.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_beforeWhen.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(as)
handleType(int, null)
- handleVariablePattern(null, as)
+ handleVariablePattern(null, as, false)
handleLiteralBool(true)
endCaseExpression(case, when, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_beforeWhen.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_beforeWhen.dart.intertwined.expect
index 21039e2..fed5462 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_beforeWhen.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedAs_beforeWhen.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(as)
listener: handleType(int, null)
- listener: handleVariablePattern(null, as)
+ listener: handleVariablePattern(null, as, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedUnderscore_insideCase.dart.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedUnderscore_insideCase.dart.expect
index cff09b1..ab1df05 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedUnderscore_insideCase.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedUnderscore_insideCase.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(_, typeReference)
handleNoTypeArguments(y)
handleType(_, null)
- handleVariablePattern(null, y)
+ handleVariablePattern(null, y, false)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
handleBreakStatement(false, break, ;)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedUnderscore_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedUnderscore_insideCase.dart.intertwined.expect
index c432898..03fecc3 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedUnderscore_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedUnderscore_insideCase.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(_, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(_, null)
- listener: handleVariablePattern(null, y)
+ listener: handleVariablePattern(null, y, false)
ensureColon(y)
listener: endCaseExpression(case, null, :)
peekPastLabels(break)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_absurd.dart.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_absurd.dart.expect
index 9178316..f725b81 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_absurd.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_absurd.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(when)
handleType(int, null)
- handleVariablePattern(null, when)
+ handleVariablePattern(null, when, false)
handleIdentifier(when, expression)
handleNoTypeArguments(>)
handleNoArguments(>)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_absurd.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_absurd.dart.intertwined.expect
index 1a60140..154fbdb 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_absurd.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_absurd.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(when)
listener: handleType(int, null)
- listener: handleVariablePattern(null, when)
+ listener: handleVariablePattern(null, when, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_beforeWhen.dart.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_beforeWhen.dart.expect
index 917df1b..c96ab9b 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_beforeWhen.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_beforeWhen.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(when)
handleType(int, null)
- handleVariablePattern(null, when)
+ handleVariablePattern(null, when, false)
handleLiteralBool(true)
endCaseExpression(case, when, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_beforeWhen.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_beforeWhen.dart.intertwined.expect
index 45e16c6..7c4fdab 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_beforeWhen.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_beforeWhen.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(when)
listener: handleType(int, null)
- listener: handleVariablePattern(null, when)
+ listener: handleVariablePattern(null, when, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCase.dart.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCase.dart.expect
index 60738b5..8fb17cd 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCase.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCase.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(when)
handleType(int, null)
- handleVariablePattern(null, when)
+ handleVariablePattern(null, when, false)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
handleBreakStatement(false, break, ;)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCase.dart.intertwined.expect
index 04d4933..3df47a4 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCase.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(when)
listener: handleType(int, null)
- listener: handleVariablePattern(null, when)
+ listener: handleVariablePattern(null, when, false)
ensureColon(when)
listener: endCaseExpression(case, null, :)
peekPastLabels(break)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCast.dart.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCast.dart.expect
index 23a828b..8afdf74 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCast.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCast.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(when)
handleType(int, null)
- handleVariablePattern(null, when)
+ handleVariablePattern(null, when, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(:)
diff --git a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCast.dart.intertwined.expect
index c8875c2..f10f7e5 100644
--- a/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/variable_typedNamedWhen_insideCast.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(when)
listener: handleType(int, null)
- listener: handleVariablePattern(null, when)
+ listener: handleVariablePattern(null, when, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_bare_beforeWhen.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_bare_beforeWhen.dart.expect
index f46d108..3e2413f 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_bare_beforeWhen.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_bare_beforeWhen.dart.expect
@@ -26,7 +26,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(case)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleLiteralBool(true)
endCaseExpression(case, when, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_bare_beforeWhen.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_bare_beforeWhen.dart.intertwined.expect
index 834f982..ee295f1 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_bare_beforeWhen.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_bare_beforeWhen.dart.intertwined.expect
@@ -66,11 +66,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(case)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
parseExpression(when)
looksLikeOuterPatternEquals(when)
skipOuterPattern(when)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCase.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCase.dart.expect
index 79ab344..cc77baf 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCase.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCase.dart.expect
@@ -26,7 +26,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(case)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
handleBreakStatement(false, break, ;)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCase.dart.intertwined.expect
index 8e18b62..d951e75 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCase.dart.intertwined.expect
@@ -66,11 +66,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(case)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
ensureColon(_)
listener: endCaseExpression(case, null, :)
peekPastLabels(break)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCast.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCast.dart.expect
index 57a6a7c..cec3c66 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCast.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCast.dart.expect
@@ -26,7 +26,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(case)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(:)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCast.dart.intertwined.expect
index d5713b4..c2b3d1f 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideCast.dart.intertwined.expect
@@ -66,11 +66,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(case)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideIfCase.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideIfCase.dart.expect
index 69c2a6e..64d472e 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideIfCase.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideIfCase.dart.expect
@@ -23,7 +23,7 @@
handleNoArguments(case)
handleSend(x, case)
handleNoType(case)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
beginBlock({, BlockKind(statement))
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideIfCase.dart.intertwined.expect
index da25590..e62a8bc 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideIfCase.dart.intertwined.expect
@@ -58,11 +58,11 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(case)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
ensureCloseParen(_, ()
listener: handleParenthesizedCondition((, case, null)
listener: beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullAssert.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullAssert.dart.expect
index 8fc402b..a92ee56 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullAssert.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullAssert.dart.expect
@@ -26,7 +26,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(case)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleNullAssertPattern(!)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullAssert.dart.intertwined.expect
index 32f7146..bc3db43 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullAssert.dart.intertwined.expect
@@ -66,11 +66,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(case)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: handleNullAssertPattern(!)
ensureColon(!)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullCheck.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullCheck.dart.expect
index 6173c1d..c2a6225 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullCheck.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullCheck.dart.expect
@@ -26,7 +26,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(case)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleNullCheckPattern(?)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullCheck.dart.intertwined.expect
index 47e4ca8..b715816 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_bare_insideNullCheck.dart.intertwined.expect
@@ -66,11 +66,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(case)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: handleNullCheckPattern(?)
ensureColon(?)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCase.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCase.dart.expect
index 30ca722..b3e862e 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCase.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCase.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(_)
handleType(int, null)
- handleVariablePattern(final, _)
+ handleVariablePattern(final, _, false)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
handleBreakStatement(false, break, ;)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCase.dart.intertwined.expect
index d9928fa..0ca52d2 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCase.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(_)
listener: handleType(int, null)
- listener: handleVariablePattern(final, _)
+ listener: handleVariablePattern(final, _, false)
ensureColon(_)
listener: endCaseExpression(case, null, :)
peekPastLabels(break)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCast.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCast.dart.expect
index 386d32c..4922e956 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCast.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCast.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(_)
handleType(int, null)
- handleVariablePattern(final, _)
+ handleVariablePattern(final, _, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(:)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCast.dart.intertwined.expect
index 595e205..4880b96 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideCast.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(_)
listener: handleType(int, null)
- listener: handleVariablePattern(final, _)
+ listener: handleVariablePattern(final, _, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideIfCase.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideIfCase.dart.expect
index 0da0ee4..32cc4f1 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideIfCase.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideIfCase.dart.expect
@@ -25,7 +25,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(_)
handleType(int, null)
- handleVariablePattern(final, _)
+ handleVariablePattern(final, _, false)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
beginBlock({, BlockKind(statement))
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideIfCase.dart.intertwined.expect
index ce2f6ce..92bf338 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideIfCase.dart.intertwined.expect
@@ -58,13 +58,13 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(_)
listener: handleType(int, null)
- listener: handleVariablePattern(final, _)
+ listener: handleVariablePattern(final, _, false)
ensureCloseParen(_, ()
listener: handleParenthesizedCondition((, case, null)
listener: beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullAssert.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullAssert.dart.expect
index 457968a..498b71a 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullAssert.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullAssert.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(_)
handleType(int, null)
- handleVariablePattern(final, _)
+ handleVariablePattern(final, _, false)
handleNullAssertPattern(!)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullAssert.dart.intertwined.expect
index a286af7..eb70e8b 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullAssert.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(_)
listener: handleType(int, null)
- listener: handleVariablePattern(final, _)
+ listener: handleVariablePattern(final, _, false)
listener: handleNullAssertPattern(!)
ensureColon(!)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullCheck.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullCheck.dart.expect
index ffb5838..da4d00d 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullCheck.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullCheck.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(_)
handleType(int, null)
- handleVariablePattern(final, _)
+ handleVariablePattern(final, _, false)
handleNullCheckPattern(?)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullCheck.dart.intertwined.expect
index 8c9bf86..913a32e 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_typed_insideNullCheck.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(_)
listener: handleType(int, null)
- listener: handleVariablePattern(final, _)
+ listener: handleVariablePattern(final, _, false)
listener: handleNullCheckPattern(?)
ensureColon(?)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCase.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCase.dart.expect
index 9501ba9..e71fb0b 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCase.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCase.dart.expect
@@ -26,7 +26,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(final)
- handleVariablePattern(final, _)
+ handleVariablePattern(final, _, false)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
handleBreakStatement(false, break, ;)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCase.dart.intertwined.expect
index bdf5f18..284e8c5 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCase.dart.intertwined.expect
@@ -66,11 +66,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(final)
- listener: handleVariablePattern(final, _)
+ listener: handleVariablePattern(final, _, false)
ensureColon(_)
listener: endCaseExpression(case, null, :)
peekPastLabels(break)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCast.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCast.dart.expect
index a10616e..e1723da 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCast.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCast.dart.expect
@@ -26,7 +26,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(final)
- handleVariablePattern(final, _)
+ handleVariablePattern(final, _, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(:)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCast.dart.intertwined.expect
index 938b639..f5005ab 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideCast.dart.intertwined.expect
@@ -66,11 +66,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(final)
- listener: handleVariablePattern(final, _)
+ listener: handleVariablePattern(final, _, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideIfCase.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideIfCase.dart.expect
index cba2ec3..918226c 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideIfCase.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideIfCase.dart.expect
@@ -23,7 +23,7 @@
handleNoArguments(case)
handleSend(x, case)
handleNoType(final)
- handleVariablePattern(final, _)
+ handleVariablePattern(final, _, false)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
beginBlock({, BlockKind(statement))
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideIfCase.dart.intertwined.expect
index a64ce73..d7fcd80 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideIfCase.dart.intertwined.expect
@@ -58,11 +58,11 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(final)
- listener: handleVariablePattern(final, _)
+ listener: handleVariablePattern(final, _, false)
ensureCloseParen(_, ()
listener: handleParenthesizedCondition((, case, null)
listener: beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullAssert.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullAssert.dart.expect
index afe67b8..60cb3cc 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullAssert.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullAssert.dart.expect
@@ -26,7 +26,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(final)
- handleVariablePattern(final, _)
+ handleVariablePattern(final, _, false)
handleNullAssertPattern(!)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullAssert.dart.intertwined.expect
index 1348b6c..6f5dec9 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullAssert.dart.intertwined.expect
@@ -66,11 +66,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(final)
- listener: handleVariablePattern(final, _)
+ listener: handleVariablePattern(final, _, false)
listener: handleNullAssertPattern(!)
ensureColon(!)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullCheck.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullCheck.dart.expect
index 10d05e1..d9ff7a2b 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullCheck.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullCheck.dart.expect
@@ -26,7 +26,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(final)
- handleVariablePattern(final, _)
+ handleVariablePattern(final, _, false)
handleNullCheckPattern(?)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullCheck.dart.intertwined.expect
index 0e6cfae..57ab3d6 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_final_untyped_insideNullCheck.dart.intertwined.expect
@@ -66,11 +66,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(final)
- listener: handleVariablePattern(final, _)
+ listener: handleVariablePattern(final, _, false)
listener: handleNullCheckPattern(?)
ensureColon(?)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCase.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCase.dart.expect
index 13dfb17..76836d4 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCase.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCase.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(_)
handleType(int, null)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
handleBreakStatement(false, break, ;)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCase.dart.intertwined.expect
index 2d39ff2..26dfe9c 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCase.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(_)
listener: handleType(int, null)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
ensureColon(_)
listener: endCaseExpression(case, null, :)
peekPastLabels(break)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCast.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCast.dart.expect
index c9b9f6b..e13df50 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCast.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCast.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(_)
handleType(int, null)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(:)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCast.dart.intertwined.expect
index 0904571..d1abfe6 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideCast.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(_)
listener: handleType(int, null)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideIfCase.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideIfCase.dart.expect
index 08609dd..df8ef1f 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideIfCase.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideIfCase.dart.expect
@@ -25,7 +25,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(_)
handleType(int, null)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
beginBlock({, BlockKind(statement))
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideIfCase.dart.intertwined.expect
index 9c1c220..c64245a 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideIfCase.dart.intertwined.expect
@@ -58,13 +58,13 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(_)
listener: handleType(int, null)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
ensureCloseParen(_, ()
listener: handleParenthesizedCondition((, case, null)
listener: beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullAssert.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullAssert.dart.expect
index ebe7f20..f68dffd 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullAssert.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullAssert.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(_)
handleType(int, null)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleNullAssertPattern(!)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullAssert.dart.intertwined.expect
index 9387d6c..4586cd0 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullAssert.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(_)
listener: handleType(int, null)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: handleNullAssertPattern(!)
ensureColon(!)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullCheck.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullCheck.dart.expect
index cc0b1c4..89f7dd8 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullCheck.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullCheck.dart.expect
@@ -28,7 +28,7 @@
handleIdentifier(int, typeReference)
handleNoTypeArguments(_)
handleType(int, null)
- handleVariablePattern(null, _)
+ handleVariablePattern(null, _, false)
handleNullCheckPattern(?)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullCheck.dart.intertwined.expect
index 144dc83..e6b27d9 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_typed_insideNullCheck.dart.intertwined.expect
@@ -66,13 +66,13 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'SimpleType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'SimpleType')
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(_)
listener: handleType(int, null)
- listener: handleVariablePattern(null, _)
+ listener: handleVariablePattern(null, _, false)
listener: handleNullCheckPattern(?)
ensureColon(?)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCase.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCase.dart.expect
index e60492a..f354621 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCase.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCase.dart.expect
@@ -26,7 +26,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(var)
- handleVariablePattern(var, _)
+ handleVariablePattern(var, _, false)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
handleBreakStatement(false, break, ;)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCase.dart.intertwined.expect
index 37d2829..2175d56 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCase.dart.intertwined.expect
@@ -66,11 +66,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, _)
+ listener: handleVariablePattern(var, _, false)
ensureColon(_)
listener: endCaseExpression(case, null, :)
peekPastLabels(break)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCast.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCast.dart.expect
index e59f822..1948141 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCast.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCast.dart.expect
@@ -26,7 +26,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(var)
- handleVariablePattern(var, _)
+ handleVariablePattern(var, _, false)
beginAsOperatorType(as)
handleIdentifier(Object, typeReference)
handleNoTypeArguments(:)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCast.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCast.dart.intertwined.expect
index 6f4748c..356da03d 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCast.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideCast.dart.intertwined.expect
@@ -66,11 +66,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, _)
+ listener: handleVariablePattern(var, _, false)
listener: beginAsOperatorType(as)
computeTypeAfterIsOrAs(as)
listener: handleIdentifier(Object, typeReference)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideIfCase.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideIfCase.dart.expect
index 476a022..39c2813 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideIfCase.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideIfCase.dart.expect
@@ -23,7 +23,7 @@
handleNoArguments(case)
handleSend(x, case)
handleNoType(var)
- handleVariablePattern(var, _)
+ handleVariablePattern(var, _, false)
handleParenthesizedCondition((, case, null)
beginThenStatement({)
beginBlock({, BlockKind(statement))
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideIfCase.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideIfCase.dart.intertwined.expect
index 50241ab..6b0cdf9 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideIfCase.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideIfCase.dart.intertwined.expect
@@ -58,11 +58,11 @@
parseArgumentsOpt(x)
listener: handleNoArguments(case)
listener: handleSend(x, case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, _)
+ listener: handleVariablePattern(var, _, false)
ensureCloseParen(_, ()
listener: handleParenthesizedCondition((, case, null)
listener: beginThenStatement({)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullAssert.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullAssert.dart.expect
index 5da8419..d3f45ee 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullAssert.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullAssert.dart.expect
@@ -26,7 +26,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(var)
- handleVariablePattern(var, _)
+ handleVariablePattern(var, _, false)
handleNullAssertPattern(!)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullAssert.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullAssert.dart.intertwined.expect
index 1067c1b..9cfb26a 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullAssert.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullAssert.dart.intertwined.expect
@@ -66,11 +66,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, _)
+ listener: handleVariablePattern(var, _, false)
listener: handleNullAssertPattern(!)
ensureColon(!)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullCheck.dart.expect b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullCheck.dart.expect
index fa6db20..fd66968 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullCheck.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullCheck.dart.expect
@@ -26,7 +26,7 @@
beginSwitchBlock({)
beginCaseExpression(case)
handleNoType(var)
- handleVariablePattern(var, _)
+ handleVariablePattern(var, _, false)
handleNullCheckPattern(?)
endCaseExpression(case, null, :)
beginSwitchCase(0, 1, case)
diff --git a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullCheck.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullCheck.dart.intertwined.expect
index 6fafc16..0ee6c7b 100644
--- a/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullCheck.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/wildcard_var_insideNullCheck.dart.intertwined.expect
@@ -66,11 +66,11 @@
notEofOrValue(}, case)
peekPastLabels(case)
listener: beginCaseExpression(case)
- parsePattern(case, precedence: 1, isRefutableContext: true)
- parsePrimaryPattern(case, isRefutableContext: true)
- parseVariablePattern(case, typeInfo: Instance of 'NoType')
+ parsePattern(case, PatternContext.matching, precedence: 1)
+ parsePrimaryPattern(case, PatternContext.matching)
+ parseVariablePattern(case, PatternContext.matching, typeInfo: Instance of 'NoType')
listener: handleNoType(var)
- listener: handleVariablePattern(var, _)
+ listener: handleVariablePattern(var, _, false)
listener: handleNullCheckPattern(?)
ensureColon(?)
listener: endCaseExpression(case, null, :)
diff --git a/pkg/front_end/test/parser_test_listener.dart b/pkg/front_end/test/parser_test_listener.dart
index eda5d69..ddd9b6d 100644
--- a/pkg/front_end/test/parser_test_listener.dart
+++ b/pkg/front_end/test/parser_test_listener.dart
@@ -2074,10 +2074,14 @@
}
@override
- void handleVariablePattern(Token? keyword, Token variable) {
+ void handleVariablePattern(Token? keyword, Token variable,
+ {required bool inAssignmentPattern}) {
seen(keyword);
seen(variable);
- doPrint('handleVariablePattern(' '$keyword, ' '$variable)');
+ doPrint('handleVariablePattern('
+ '$keyword, '
+ '$variable, '
+ '$inAssignmentPattern)');
}
@override
diff --git a/pkg/front_end/test/parser_test_parser.dart b/pkg/front_end/test/parser_test_parser.dart
index e5d192d..366425b 100644
--- a/pkg/front_end/test/parser_test_parser.dart
+++ b/pkg/front_end/test/parser_test_parser.dart
@@ -14,7 +14,7 @@
import 'package:_fe_analyzer_shared/src/parser/member_kind.dart';
import 'package:_fe_analyzer_shared/src/parser/parser.dart' show Parser;
import 'package:_fe_analyzer_shared/src/parser/parser_impl.dart'
- show AwaitOrYieldContext, ForPartsContext;
+ show AwaitOrYieldContext, ForPartsContext, PatternContext;
import 'package:_fe_analyzer_shared/src/parser/token_stream_rewriter.dart';
import 'package:_fe_analyzer_shared/src/parser/type_info.dart';
import 'package:_fe_analyzer_shared/src/scanner/token.dart';
@@ -2667,87 +2667,78 @@
}
@override
- Token parsePattern(Token token,
- {int precedence = 1, required bool isRefutableContext}) {
+ Token parsePattern(Token token, PatternContext patternContext,
+ {int precedence = 1}) {
doPrint('parsePattern('
'$token, '
- 'precedence: $precedence, '
- 'isRefutableContext: $isRefutableContext)');
+ '$patternContext, '
+ 'precedence: $precedence)');
indent++;
- var result = super.parsePattern(token,
- precedence: precedence, isRefutableContext: isRefutableContext);
+ var result =
+ super.parsePattern(token, patternContext, precedence: precedence);
indent--;
return result;
}
@override
- Token parsePrimaryPattern(Token token, {required bool isRefutableContext}) {
- doPrint('parsePrimaryPattern('
+ Token parsePrimaryPattern(Token token, PatternContext patternContext) {
+ doPrint('parsePrimaryPattern(' '$token, ' '$patternContext)');
+ indent++;
+ var result = super.parsePrimaryPattern(token, patternContext);
+ indent--;
+ return result;
+ }
+
+ @override
+ Token parseVariablePattern(Token token, PatternContext patternContext,
+ {TypeInfo typeInfo = noType}) {
+ doPrint('parseVariablePattern('
'$token, '
- 'isRefutableContext: $isRefutableContext)');
+ '$patternContext, '
+ 'typeInfo: $typeInfo)');
indent++;
- var result = super
- .parsePrimaryPattern(token, isRefutableContext: isRefutableContext);
+ var result =
+ super.parseVariablePattern(token, patternContext, typeInfo: typeInfo);
indent--;
return result;
}
@override
- Token parseVariablePattern(Token token, {TypeInfo typeInfo = noType}) {
- doPrint('parseVariablePattern(' '$token, ' 'typeInfo: $typeInfo)');
+ Token parseListPatternSuffix(Token token, PatternContext patternContext) {
+ doPrint('parseListPatternSuffix(' '$token, ' '$patternContext)');
indent++;
- var result = super.parseVariablePattern(token, typeInfo: typeInfo);
+ var result = super.parseListPatternSuffix(token, patternContext);
indent--;
return result;
}
@override
- Token parseListPatternSuffix(Token token,
- {required bool isRefutableContext}) {
- doPrint('parseListPatternSuffix('
- '$token, '
- 'isRefutableContext: $isRefutableContext)');
+ Token parseMapPatternSuffix(Token token, PatternContext patternContext) {
+ doPrint('parseMapPatternSuffix(' '$token, ' '$patternContext)');
indent++;
- var result = super
- .parseListPatternSuffix(token, isRefutableContext: isRefutableContext);
+ var result = super.parseMapPatternSuffix(token, patternContext);
indent--;
return result;
}
@override
- Token parseMapPatternSuffix(Token token, {required bool isRefutableContext}) {
- doPrint('parseMapPatternSuffix('
- '$token, '
- 'isRefutableContext: $isRefutableContext)');
- indent++;
- var result = super
- .parseMapPatternSuffix(token, isRefutableContext: isRefutableContext);
- indent--;
- return result;
- }
-
- @override
- Token parseParenthesizedPatternOrRecordPattern(Token token,
- {required bool isRefutableContext}) {
+ Token parseParenthesizedPatternOrRecordPattern(
+ Token token, PatternContext patternContext) {
doPrint('parseParenthesizedPatternOrRecordPattern('
'$token, '
- 'isRefutableContext: $isRefutableContext)');
+ '$patternContext)');
indent++;
- var result = super.parseParenthesizedPatternOrRecordPattern(token,
- isRefutableContext: isRefutableContext);
+ var result =
+ super.parseParenthesizedPatternOrRecordPattern(token, patternContext);
indent--;
return result;
}
@override
- Token parseObjectPatternRest(Token token,
- {required bool isRefutableContext}) {
- doPrint('parseObjectPatternRest('
- '$token, '
- 'isRefutableContext: $isRefutableContext)');
+ Token parseObjectPatternRest(Token token, PatternContext patternContext) {
+ doPrint('parseObjectPatternRest(' '$token, ' '$patternContext)');
indent++;
- var result = super
- .parseObjectPatternRest(token, isRefutableContext: isRefutableContext);
+ var result = super.parseObjectPatternRest(token, patternContext);
indent--;
return result;
}
diff --git a/pkg/front_end/test/parser_test_parser_creator.dart b/pkg/front_end/test/parser_test_parser_creator.dart
index 5715d21..c345900 100644
--- a/pkg/front_end/test/parser_test_parser_creator.dart
+++ b/pkg/front_end/test/parser_test_parser_creator.dart
@@ -51,7 +51,7 @@
import 'package:_fe_analyzer_shared/src/parser/listener.dart' show Listener;
import 'package:_fe_analyzer_shared/src/parser/member_kind.dart';
import 'package:_fe_analyzer_shared/src/parser/parser.dart' show Parser;
-import 'package:_fe_analyzer_shared/src/parser/parser_impl.dart' show AwaitOrYieldContext, ForPartsContext;
+import 'package:_fe_analyzer_shared/src/parser/parser_impl.dart' show AwaitOrYieldContext, ForPartsContext, PatternContext;
import 'package:_fe_analyzer_shared/src/parser/token_stream_rewriter.dart';
import 'package:_fe_analyzer_shared/src/parser/type_info.dart';
import 'package:_fe_analyzer_shared/src/scanner/token.dart';
diff --git a/runtime/docs/async.md b/runtime/docs/async.md
index 34de12a..6edbbc9 100644
--- a/runtime/docs/async.md
+++ b/runtime/docs/async.md
@@ -255,6 +255,20 @@
callbacks to that Future. Otherwise it schedules a micro-task to continue execution of
the suspended function later.
+### AwaitWithTypeCheck stub
+
+AwaitWithTypeCheck is a variant of Await stub which additionally passes type argument `T`
+and calls `_SuspendState._awaitWithTypeCheck` in order to test if the value has a
+correct `Future<T>` type before awaiting.
+
+This runtime check is needed to maintain soundness in case value is a Future of an
+incompatible type, for example:
+
+```
+final FutureOr<Object> f = Future<Object?>.value(null);
+Object x = await f; // x == f, not null.
+```
+
### ReturnAsync stub
ReturnAsync stub = Return stub which calls `_SuspendState._returnAsync`.
diff --git a/runtime/lib/ffi.cc b/runtime/lib/ffi.cc
index e50c84b..4893b7c 100644
--- a/runtime/lib/ffi.cc
+++ b/runtime/lib/ffi.cc
@@ -74,88 +74,35 @@
CLASS_LIST_FFI_NUMERIC_FIXED_SIZE(DEFINE_NATIVE_ENTRY_AS_EXTERNAL_TYPED_DATA)
#undef DEFINE_NATIVE_ENTRY_AS_EXTERNAL_TYPED_DATA
-DEFINE_NATIVE_ENTRY(Ffi_nativeCallbackFunction, 1, 2) {
-#if defined(DART_PRECOMPILED_RUNTIME) || defined(DART_PRECOMPILER)
- // Calls to this function are removed by the flow-graph builder in AOT.
- // See StreamingFlowGraphBuilder::BuildFfiNativeCallbackFunction().
- UNREACHABLE();
-#else
- GET_NATIVE_TYPE_ARGUMENT(type_arg, arguments->NativeTypeArgAt(0));
- GET_NON_NULL_NATIVE_ARGUMENT(Closure, closure, arguments->NativeArgAt(0));
- GET_NON_NULL_NATIVE_ARGUMENT(Instance, exceptional_return,
- arguments->NativeArgAt(1));
-
- ASSERT(type_arg.IsInstantiated() && type_arg.IsFunctionType());
- const FunctionType& native_signature = FunctionType::Cast(type_arg);
- Function& func = Function::Handle(zone, closure.function());
-
- // The FE verifies that the target of a 'fromFunction' is a static method, so
- // the value we see here must be a static tearoff. See ffi_use_sites.dart for
- // details.
- //
- // TODO(36748): Define hot-reload semantics of native callbacks. We may need
- // to look up the target by name.
- ASSERT(func.IsImplicitClosureFunction());
- func = func.parent_function();
- ASSERT(func.is_static());
-
- // AbiSpecificTypes can have an incomplete mapping.
- const char* error = nullptr;
- compiler::ffi::NativeFunctionTypeFromFunctionType(zone, native_signature,
- &error);
- if (error != nullptr) {
- Exceptions::ThrowCompileTimeError(LanguageError::Handle(
- zone, LanguageError::New(String::Handle(zone, String::New(error)))));
- }
-
- // We are returning an object which is not an Instance here. This is only OK
- // because we know that the result will be passed directly to
- // _pointerFromFunction and will not leak out into user code.
- arguments->SetReturn(
- Function::Handle(zone, compiler::ffi::NativeCallbackFunction(
- native_signature, func, exceptional_return,
- /*register_function=*/false)));
-
- // Because we have already set the return value.
- return Object::sentinel().ptr();
-#endif
-}
-
DEFINE_NATIVE_ENTRY(Ffi_pointerFromFunction, 1, 1) {
- const Function& function =
- Function::CheckedHandle(zone, arguments->NativeArg0());
-
- Code& code = Code::Handle(zone);
-
-#if defined(DART_PRECOMPILED_RUNTIME)
- code = function.CurrentCode();
-#else
- // We compile the callback immediately because we need to return a pointer to
- // the entry-point. Native calls do not use patching like Dart calls, so we
- // cannot compile it lazily.
- const Object& result = Object::Handle(
- zone, Compiler::CompileOptimizedFunction(thread, function));
- if (result.IsError()) {
- Exceptions::PropagateError(Error::Cast(result));
- }
- ASSERT(result.IsCode());
- code ^= result.ptr();
-#endif
-
+ const auto& function = Function::CheckedHandle(zone, arguments->NativeArg0());
+ const auto& code =
+ Code::Handle(zone, FLAG_precompiled_mode ? function.CurrentCode()
+ : function.EnsureHasCode());
ASSERT(!code.IsNull());
- thread->SetFfiCallbackCode(function.FfiCallbackId(), code);
-#ifdef TARGET_ARCH_IA32
+#if defined(TARGET_ARCH_IA32)
// On ia32, store the stack delta that we need to use when returning.
const intptr_t stack_return_delta =
function.FfiCSignatureReturnsStruct() && CallingConventions::kUsesRet4
? compiler::target::kWordSize
: 0;
- thread->SetFfiCallbackStackReturn(function.FfiCallbackId(),
- stack_return_delta);
+#else
+ const intptr_t stack_return_delta = 0;
#endif
+ thread->SetFfiCallbackCode(function, code, stack_return_delta);
uword entry_point = code.EntryPoint();
+
+ // In JIT we use one more indirection:
+ // * AOT: Native -> Ffi Trampoline -> Dart function
+ // * JIT: Native -> Jit trampoline -> Ffi Trampoline -> Dart function
+ //
+ // We do that since ffi trampoline code lives in Dart heap. During GC we can
+ // flip page protections from RX to RW to GC JITed code. During that time
+ // machine code on such pages cannot be executed. Native code therefore has to
+ // perform the safepoint transition before executing code in Dart heap (which
+ // is why we use the jit trampoline).
#if !defined(DART_PRECOMPILED_RUNTIME)
if (NativeCallbackTrampolines::Enabled()) {
entry_point = isolate->native_callback_trampolines()->TrampolineForId(
diff --git a/runtime/vm/app_snapshot.cc b/runtime/vm/app_snapshot.cc
index 3ff8f31..88fa6e7 100644
--- a/runtime/vm/app_snapshot.cc
+++ b/runtime/vm/app_snapshot.cc
@@ -1382,13 +1382,7 @@
FfiTrampolineDataPtr const data = objects_[i];
AutoTraceObject(data);
WriteFromTo(data);
-
- if (s->kind() == Snapshot::kFullAOT) {
- s->Write<int32_t>(data->untag()->callback_id_);
- } else {
- // FFI callbacks can only be written to AOT snapshots.
- ASSERT(data->untag()->callback_target() == Object::null());
- }
+ s->Write<int32_t>(data->untag()->callback_id_);
}
}
@@ -1416,8 +1410,7 @@
Deserializer::InitializeHeader(data, kFfiTrampolineDataCid,
FfiTrampolineData::InstanceSize());
d.ReadFromTo(data);
- data->untag()->callback_id_ =
- d_->kind() == Snapshot::kFullAOT ? d.Read<int32_t>() : -1;
+ data->untag()->callback_id_ = d.Read<int32_t>();
}
}
};
diff --git a/runtime/vm/bootstrap_natives.h b/runtime/vm/bootstrap_natives.h
index aec2427..50cc478 100644
--- a/runtime/vm/bootstrap_natives.h
+++ b/runtime/vm/bootstrap_natives.h
@@ -390,7 +390,6 @@
V(Ffi_address, 1) \
V(Ffi_fromAddress, 1) \
V(Ffi_asFunctionInternal, 2) \
- V(Ffi_nativeCallbackFunction, 2) \
V(Ffi_pointerFromFunction, 1) \
V(Ffi_dl_open, 1) \
V(Ffi_dl_lookup, 2) \
diff --git a/runtime/vm/compiler/backend/il.cc b/runtime/vm/compiler/backend/il.cc
index f18e824..c339fbe 100644
--- a/runtime/vm/compiler/backend/il.cc
+++ b/runtime/vm/compiler/backend/il.cc
@@ -7678,12 +7678,24 @@
locs(), deopt_id(), env());
}
+Definition* SuspendInstr::Canonicalize(FlowGraph* flow_graph) {
+ if (stub_id() == StubId::kAwaitWithTypeCheck &&
+ !operand()->Type()->CanBeFuture()) {
+ type_args()->RemoveFromUseList();
+ stub_id_ = StubId::kAwait;
+ }
+ return this;
+}
+
LocationSummary* SuspendInstr::MakeLocationSummary(Zone* zone, bool opt) const {
- const intptr_t kNumInputs = 1;
+ const intptr_t kNumInputs = has_type_args() ? 2 : 1;
const intptr_t kNumTemps = 0;
LocationSummary* locs = new (zone)
LocationSummary(zone, kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_in(0, Location::RegisterLocation(SuspendStubABI::kArgumentReg));
+ if (has_type_args()) {
+ locs->set_in(1, Location::RegisterLocation(SuspendStubABI::kTypeArgsReg));
+ }
locs->set_out(0, Location::RegisterLocation(CallingConventions::kReturnReg));
return locs;
}
@@ -7698,6 +7710,9 @@
case StubId::kAwait:
stub = object_store->await_stub();
break;
+ case StubId::kAwaitWithTypeCheck:
+ stub = object_store->await_with_type_check_stub();
+ break;
case StubId::kYieldAsyncStar:
stub = object_store->yield_async_star_stub();
break;
diff --git a/runtime/vm/compiler/backend/il.h b/runtime/vm/compiler/backend/il.h
index 2a964aa..f7eb34e 100644
--- a/runtime/vm/compiler/backend/il.h
+++ b/runtime/vm/compiler/backend/il.h
@@ -10623,10 +10623,11 @@
};
// Suspends execution using the suspend stub specified using [StubId].
-class SuspendInstr : public TemplateDefinition<1, Throws> {
+class SuspendInstr : public TemplateDefinition<2, Throws> {
public:
enum class StubId {
kAwait,
+ kAwaitWithTypeCheck,
kYieldAsyncStar,
kSuspendSyncStarAtStart,
kSuspendSyncStarAtYield,
@@ -10635,6 +10636,7 @@
SuspendInstr(const InstructionSource& source,
StubId stub_id,
Value* operand,
+ Value* type_args,
intptr_t deopt_id,
intptr_t resume_deopt_id)
: TemplateDefinition(source, deopt_id),
@@ -10642,9 +10644,22 @@
resume_deopt_id_(resume_deopt_id),
token_pos_(source.token_pos) {
SetInputAt(0, operand);
+ if (has_type_args()) {
+ SetInputAt(1, type_args);
+ } else {
+ ASSERT(type_args == nullptr);
+ }
}
+ bool has_type_args() const { return stub_id_ == StubId::kAwaitWithTypeCheck; }
+ virtual intptr_t InputCount() const { return has_type_args() ? 2 : 1; }
+
Value* operand() const { return inputs_[0]; }
+ Value* type_args() const {
+ ASSERT(has_type_args());
+ return inputs_[1];
+ }
+
StubId stub_id() const { return stub_id_; }
intptr_t resume_deopt_id() const { return resume_deopt_id_; }
virtual TokenPosition token_pos() const { return token_pos_; }
@@ -10659,8 +10674,10 @@
DECLARE_INSTRUCTION(Suspend);
PRINT_OPERANDS_TO_SUPPORT
+ virtual Definition* Canonicalize(FlowGraph* flow_graph);
+
#define FIELD_LIST(F) \
- F(const StubId, stub_id_) \
+ F(StubId, stub_id_) \
F(const intptr_t, resume_deopt_id_) \
F(const TokenPosition, token_pos_)
diff --git a/runtime/vm/compiler/backend/il_arm.cc b/runtime/vm/compiler/backend/il_arm.cc
index 7453398..db03c7f 100644
--- a/runtime/vm/compiler/backend/il_arm.cc
+++ b/runtime/vm/compiler/backend/il_arm.cc
@@ -1642,26 +1642,12 @@
__ PushNativeCalleeSavedRegisters();
- // Load the thread object. If we were called by a trampoline, the thread is
- // already loaded.
- if (FLAG_precompiled_mode) {
+ // Load the thread object. If we were called by a JIT trampoline, the thread
+ // is already loaded.
+ const intptr_t callback_id = marshaller_.dart_signature().FfiCallbackId();
+ if (!NativeCallbackTrampolines::Enabled()) {
compiler->LoadBSSEntry(BSS::Relocation::DRT_GetThreadForNativeCallback, R1,
R0);
- } else if (!NativeCallbackTrampolines::Enabled()) {
- // In JIT mode, we can just paste the address of the runtime entry into the
- // generated code directly. This is not a problem since we don't save
- // callbacks into JIT snapshots.
- ASSERT(kWordSize == compiler::target::kWordSize);
- __ LoadImmediate(
- R1, static_cast<compiler::target::uword>(
- reinterpret_cast<uword>(DLRT_GetThreadForNativeCallback)));
- }
-
- const intptr_t callback_id = marshaller_.dart_signature().FfiCallbackId();
-
- // Load the thread object. If we were called by a trampoline, the thread is
- // already loaded.
- if (!NativeCallbackTrampolines::Enabled()) {
// Create another frame to align the frame before continuing in "native"
// code.
__ EnterFrame(1 << FP, 0);
diff --git a/runtime/vm/compiler/backend/il_arm64.cc b/runtime/vm/compiler/backend/il_arm64.cc
index a208078..e945072 100644
--- a/runtime/vm/compiler/backend/il_arm64.cc
+++ b/runtime/vm/compiler/backend/il_arm64.cc
@@ -1527,22 +1527,12 @@
__ PushNativeCalleeSavedRegisters();
- // Load the thread object. If we were called by a trampoline, the thread is
- // already loaded.
- if (FLAG_precompiled_mode) {
+ // Load the thread object. If we were called by a JIT trampoline, the thread
+ // is already loaded.
+ const intptr_t callback_id = marshaller_.dart_signature().FfiCallbackId();
+ if (!NativeCallbackTrampolines::Enabled()) {
compiler->LoadBSSEntry(BSS::Relocation::DRT_GetThreadForNativeCallback, R1,
R0);
- } else if (!NativeCallbackTrampolines::Enabled()) {
- // In JIT mode, we can just paste the address of the runtime entry into the
- // generated code directly. This is not a problem since we don't save
- // callbacks into JIT snapshots.
- __ LoadImmediate(
- R1, reinterpret_cast<int64_t>(DLRT_GetThreadForNativeCallback));
- }
-
- const intptr_t callback_id = marshaller_.dart_signature().FfiCallbackId();
-
- if (!NativeCallbackTrampolines::Enabled()) {
// Create another frame to align the frame before continuing in "native"
// code.
__ EnterFrame(0);
diff --git a/runtime/vm/compiler/backend/il_ia32.cc b/runtime/vm/compiler/backend/il_ia32.cc
index 6e109ad..536c2e6 100644
--- a/runtime/vm/compiler/backend/il_ia32.cc
+++ b/runtime/vm/compiler/backend/il_ia32.cc
@@ -1207,23 +1207,8 @@
const intptr_t callback_id = marshaller_.dart_signature().FfiCallbackId();
- // Load the thread object.
- //
- // Create another frame to align the frame before continuing in "native" code.
- // If we were called by a trampoline, it has already loaded the thread.
- ASSERT(!FLAG_precompiled_mode); // No relocation for AOT linking.
- if (!NativeCallbackTrampolines::Enabled()) {
- __ EnterFrame(0);
- __ ReserveAlignedFrameSpace(compiler::target::kWordSize);
-
- __ movl(compiler::Address(SPREG, 0), compiler::Immediate(callback_id));
- __ movl(EAX, compiler::Immediate(reinterpret_cast<intptr_t>(
- DLRT_GetThreadForNativeCallback)));
- __ call(EAX);
- __ movl(THR, EAX);
-
- __ LeaveFrame();
- }
+ // The thread object was already loaded by a JIT trampoline.
+ ASSERT(NativeCallbackTrampolines::Enabled());
// Save the current VMTag on the stack.
__ movl(ECX, compiler::Assembler::VMTagAddress());
diff --git a/runtime/vm/compiler/backend/il_printer.cc b/runtime/vm/compiler/backend/il_printer.cc
index e62264a..b29a69a 100644
--- a/runtime/vm/compiler/backend/il_printer.cc
+++ b/runtime/vm/compiler/backend/il_printer.cc
@@ -1385,6 +1385,9 @@
case StubId::kAwait:
name = "Await";
break;
+ case StubId::kAwaitWithTypeCheck:
+ name = "AwaitWithTypeCheck";
+ break;
case StubId::kYieldAsyncStar:
name = "YieldAsyncStar";
break;
@@ -1396,7 +1399,7 @@
break;
}
f->Printf("%s(", name);
- operand()->PrintTo(f);
+ Definition::PrintOperandsTo(f);
f->AddString(")");
}
diff --git a/runtime/vm/compiler/backend/il_serializer.cc b/runtime/vm/compiler/backend/il_serializer.cc
index 7cbfed8..2a8bebf 100644
--- a/runtime/vm/compiler/backend/il_serializer.cc
+++ b/runtime/vm/compiler/backend/il_serializer.cc
@@ -925,8 +925,7 @@
const Instance& exceptional_return = d->Read<const Instance&>();
return Function::ZoneHandle(
zone, compiler::ffi::NativeCallbackFunction(
- c_signature, callback_target, exceptional_return,
- /*register_function=*/true));
+ c_signature, callback_target, exceptional_return));
} else {
const String& name = d->Read<const String&>();
const FunctionType& signature = d->Read<const FunctionType&>();
diff --git a/runtime/vm/compiler/backend/il_x64.cc b/runtime/vm/compiler/backend/il_x64.cc
index c30f3c0..72cb0b3 100644
--- a/runtime/vm/compiler/backend/il_x64.cc
+++ b/runtime/vm/compiler/backend/il_x64.cc
@@ -1429,23 +1429,12 @@
// Save ABI callee-saved registers.
__ PushRegisters(kCalleeSaveRegistersSet);
- // Load the address of DLRT_GetThreadForNativeCallback without using Thread.
- if (FLAG_precompiled_mode) {
+ // Load the thread object. If we were called by a JIT trampoline, the thread
+ // is already loaded.
+ const intptr_t callback_id = marshaller_.dart_signature().FfiCallbackId();
+ if (!NativeCallbackTrampolines::Enabled()) {
compiler->LoadBSSEntry(BSS::Relocation::DRT_GetThreadForNativeCallback, RAX,
RCX);
- } else if (!NativeCallbackTrampolines::Enabled()) {
- // In JIT mode, we can just paste the address of the runtime entry into the
- // generated code directly. This is not a problem since we don't save
- // callbacks into JIT snapshots.
- __ movq(RAX, compiler::Immediate(reinterpret_cast<intptr_t>(
- DLRT_GetThreadForNativeCallback)));
- }
-
- const intptr_t callback_id = marshaller_.dart_signature().FfiCallbackId();
-
- // Create another frame to align the frame before continuing in "native" code.
- // If we were called by a trampoline, it has already loaded the thread.
- if (!NativeCallbackTrampolines::Enabled()) {
__ EnterFrame(0);
__ ReserveAlignedFrameSpace(0);
diff --git a/runtime/vm/compiler/backend/inliner.cc b/runtime/vm/compiler/backend/inliner.cc
index 6764ade..2219816 100644
--- a/runtime/vm/compiler/backend/inliner.cc
+++ b/runtime/vm/compiler/backend/inliner.cc
@@ -3186,6 +3186,11 @@
value_check = Cids::CreateMonomorphic(Z, kFloat32x4Cid);
break;
}
+ case kTypedDataFloat64x2ArrayCid: {
+ // Check that value is always Float64x2.
+ value_check = Cids::CreateMonomorphic(Z, kFloat64x2Cid);
+ break;
+ }
case kTypedDataInt64ArrayCid:
case kTypedDataUint64ArrayCid:
// StoreIndexedInstr takes unboxed int64, so value is
@@ -3965,6 +3970,13 @@
return InlineByteArrayBaseLoad(flow_graph, call, receiver, receiver_cid,
kTypedDataFloat32x4ArrayCid, graph_entry,
entry, last, result);
+ case MethodRecognizer::kByteArrayBaseGetFloat64x2:
+ if (!ShouldInlineSimd()) {
+ return false;
+ }
+ return InlineByteArrayBaseLoad(flow_graph, call, receiver, receiver_cid,
+ kTypedDataFloat64x2ArrayCid, graph_entry,
+ entry, last, result);
case MethodRecognizer::kByteArrayBaseGetInt32x4:
if (!ShouldInlineSimd()) {
return false;
@@ -4025,6 +4037,13 @@
return InlineByteArrayBaseStore(flow_graph, target, call, receiver,
receiver_cid, kTypedDataFloat32x4ArrayCid,
graph_entry, entry, last, result);
+ case MethodRecognizer::kByteArrayBaseSetFloat64x2:
+ if (!ShouldInlineSimd()) {
+ return false;
+ }
+ return InlineByteArrayBaseStore(flow_graph, target, call, receiver,
+ receiver_cid, kTypedDataFloat64x2ArrayCid,
+ graph_entry, entry, last, result);
case MethodRecognizer::kByteArrayBaseSetInt32x4:
if (!ShouldInlineSimd()) {
return false;
diff --git a/runtime/vm/compiler/ffi/callback.cc b/runtime/vm/compiler/ffi/callback.cc
index 6d4d213..a4c8fc4 100644
--- a/runtime/vm/compiler/ffi/callback.cc
+++ b/runtime/vm/compiler/ffi/callback.cc
@@ -17,8 +17,7 @@
FunctionPtr NativeCallbackFunction(const FunctionType& c_signature,
const Function& dart_target,
- const Instance& exceptional_return,
- bool register_function) {
+ const Instance& exceptional_return) {
Thread* const thread = Thread::Current();
Zone* const zone = thread->zone();
Function& function = Function::Handle(zone);
@@ -74,16 +73,31 @@
signature ^= ClassFinalizer::FinalizeType(signature);
function.SetSignature(signature);
- if (register_function) {
- ObjectStore* object_store = thread->isolate_group()->object_store();
+ {
+ // Ensure only one thread updates the cache of deduped ffi trampoline
+ // functions.
+ auto isolate_group = thread->isolate_group();
+ SafepointWriteRwLocker ml(thread, isolate_group->program_lock());
+
+ auto object_store = isolate_group->object_store();
if (object_store->ffi_callback_functions() == Array::null()) {
FfiCallbackFunctionSet set(
HashTables::New<FfiCallbackFunctionSet>(/*initial_capacity=*/4));
object_store->set_ffi_callback_functions(set.Release());
}
FfiCallbackFunctionSet set(object_store->ffi_callback_functions());
+
+ const intptr_t entry_count_before = set.NumOccupied();
function ^= set.InsertOrGet(function);
+ const intptr_t entry_count_after = set.NumOccupied();
+
object_store->set_ffi_callback_functions(set.Release());
+
+ if (entry_count_before != entry_count_after) {
+ function.AssignFfiCallbackId(entry_count_before);
+ } else {
+ ASSERT(function.FfiCallbackId() != -1);
+ }
}
return function.ptr();
diff --git a/runtime/vm/compiler/ffi/callback.h b/runtime/vm/compiler/ffi/callback.h
index d2bb1dc..37a4967 100644
--- a/runtime/vm/compiler/ffi/callback.h
+++ b/runtime/vm/compiler/ffi/callback.h
@@ -21,8 +21,7 @@
FunctionPtr NativeCallbackFunction(const FunctionType& c_signature,
const Function& dart_target,
- const Instance& exceptional_return,
- bool register_function);
+ const Instance& exceptional_return);
} // namespace ffi
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
index 60e48b8..c016e2a 100644
--- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
+++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
@@ -3391,10 +3391,7 @@
case MethodRecognizer::kFfiAsFunctionInternal:
return BuildFfiAsFunctionInternal();
case MethodRecognizer::kFfiNativeCallbackFunction:
- if (CompilerState::Current().is_aot()) {
- return BuildFfiNativeCallbackFunction();
- }
- break;
+ return BuildFfiNativeCallbackFunction();
case MethodRecognizer::kFfiLoadAbiSpecificInt:
return BuildLoadAbiSpecificInt(/*at_index=*/false);
case MethodRecognizer::kFfiLoadAbiSpecificIntAtIndex:
@@ -4484,15 +4481,28 @@
instructions += BuildExpression(); // read operand.
+ SuspendInstr::StubId stub_id = SuspendInstr::StubId::kAwait;
if (ReadTag() == kSomething) {
- // TODO(50529): Use runtime check type when present.
- SkipDartType(); // read runtime check type.
+ const AbstractType& type = T.BuildType(); // read runtime check type.
+ if (!type.IsType() ||
+ !Class::Handle(Z, type.type_class()).IsFutureClass()) {
+ FATAL("Unexpected type for runtime check in await: %s", type.ToCString());
+ }
+ ASSERT(type.IsFinalized());
+ const auto& type_args = TypeArguments::ZoneHandle(Z, type.arguments());
+ if (!type_args.IsNull()) {
+ const auto& type_arg = AbstractType::Handle(Z, type_args.TypeAt(0));
+ if (!type_arg.IsTopTypeForSubtyping()) {
+ instructions += TranslateInstantiatedTypeArguments(type_args);
+ stub_id = SuspendInstr::StubId::kAwaitWithTypeCheck;
+ }
+ }
}
if (NeedsDebugStepCheck(parsed_function()->function(), pos)) {
instructions += DebugStepCheck(pos);
}
- instructions += B->Suspend(pos, SuspendInstr::StubId::kAwait);
+ instructions += B->Suspend(pos, stub_id);
return instructions;
}
@@ -6381,10 +6391,9 @@
compiler::ffi::NativeFunctionTypeFromFunctionType(zone_, native_sig, &error);
ReportIfNotNull(error);
- const Function& result = Function::ZoneHandle(
- Z,
- compiler::ffi::NativeCallbackFunction(
- native_sig, target, exceptional_return, /*register_function=*/true));
+ const Function& result =
+ Function::ZoneHandle(Z, compiler::ffi::NativeCallbackFunction(
+ native_sig, target, exceptional_return));
code += Constant(result);
return code;
diff --git a/runtime/vm/compiler/frontend/kernel_fingerprints.cc b/runtime/vm/compiler/frontend/kernel_fingerprints.cc
index a3ea9b8..f1b7bfb 100644
--- a/runtime/vm/compiler/frontend/kernel_fingerprints.cc
+++ b/runtime/vm/compiler/frontend/kernel_fingerprints.cc
@@ -673,7 +673,7 @@
ReadPosition(); // read position.
CalculateExpressionFingerprint(); // read operand.
if (ReadTag() == kSomething) {
- SkipDartType(); // read runtime check type.
+ CalculateDartTypeFingerprint(); // read runtime check type.
}
return;
case kConstStaticInvocation:
diff --git a/runtime/vm/compiler/frontend/kernel_to_il.cc b/runtime/vm/compiler/frontend/kernel_to_il.cc
index 57f0dcf..f155353 100644
--- a/runtime/vm/compiler/frontend/kernel_to_il.cc
+++ b/runtime/vm/compiler/frontend/kernel_to_il.cc
@@ -974,6 +974,7 @@
case MethodRecognizer::kFfiLoadDouble:
case MethodRecognizer::kFfiLoadDoubleUnaligned:
case MethodRecognizer::kFfiLoadPointer:
+ case MethodRecognizer::kFfiNativeCallbackFunction:
case MethodRecognizer::kFfiStoreInt8:
case MethodRecognizer::kFfiStoreInt16:
case MethodRecognizer::kFfiStoreInt32:
@@ -1279,6 +1280,14 @@
ASSERT_EQUAL(function.NumParameters(), 0);
body += IntConstant(static_cast<int64_t>(compiler::ffi::TargetAbi()));
break;
+ case MethodRecognizer::kFfiNativeCallbackFunction: {
+ const auto& error = String::ZoneHandle(
+ Z, Symbols::New(thread_,
+ "This function should be handled on call site."));
+ body += Constant(error);
+ body += ThrowException(TokenPosition::kNoSource);
+ break;
+ }
case MethodRecognizer::kFfiLoadInt8:
case MethodRecognizer::kFfiLoadInt16:
case MethodRecognizer::kFfiLoadInt32:
@@ -4314,9 +4323,12 @@
Fragment FlowGraphBuilder::Suspend(TokenPosition position,
SuspendInstr::StubId stub_id) {
+ Value* type_args =
+ (stub_id == SuspendInstr::StubId::kAwaitWithTypeCheck) ? Pop() : nullptr;
+ Value* operand = Pop();
SuspendInstr* instr =
- new (Z) SuspendInstr(InstructionSource(position), stub_id, Pop(),
- GetNextDeoptId(), GetNextDeoptId());
+ new (Z) SuspendInstr(InstructionSource(position), stub_id, operand,
+ type_args, GetNextDeoptId(), GetNextDeoptId());
Push(instr);
return Fragment(instr);
}
diff --git a/runtime/vm/compiler/frontend/scope_builder.cc b/runtime/vm/compiler/frontend/scope_builder.cc
index 523d86b..3c612d0 100644
--- a/runtime/vm/compiler/frontend/scope_builder.cc
+++ b/runtime/vm/compiler/frontend/scope_builder.cc
@@ -983,7 +983,7 @@
helper_.ReadPosition(); // read position.
VisitExpression(); // read operand.
if (helper_.ReadTag() == kSomething) {
- helper_.SkipDartType(); // read runtime check type.
+ VisitDartType(); // read runtime check type.
}
return;
case kConstStaticInvocation:
diff --git a/runtime/vm/compiler/recognized_methods_list.h b/runtime/vm/compiler/recognized_methods_list.h
index 049fc39..c3a2ecf 100644
--- a/runtime/vm/compiler/recognized_methods_list.h
+++ b/runtime/vm/compiler/recognized_methods_list.h
@@ -34,6 +34,7 @@
V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 0xe8f6a107) \
V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 0xf82a3634) \
V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 0xaf2d0ce5) \
+ V(_TypedList, _getFloat64x2, ByteArrayBaseGetFloat64x2, 0x545d2cc0) \
V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 0x5573740b) \
V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 0xe18943a2) \
V(_TypedList, _setUint8, ByteArrayBaseSetUint8, 0xaf59b748) \
@@ -46,6 +47,7 @@
V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 0x2f362de0) \
V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 0x2359f8d2) \
V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 0x38c6295a) \
+ V(_TypedList, _setFloat64x2, ByteArrayBaseSetFloat64x2, 0xbaead73f) \
V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 0x5ce9025b) \
V(ByteData, ., ByteDataFactory, 0x91f05063) \
V(_ByteDataView, get:offsetInBytes, ByteDataViewOffsetInBytes, 0x60cef22c) \
diff --git a/runtime/vm/compiler/runtime_api.h b/runtime/vm/compiler/runtime_api.h
index a1e5229..f3a6f54 100644
--- a/runtime/vm/compiler/runtime_api.h
+++ b/runtime/vm/compiler/runtime_api.h
@@ -1274,6 +1274,7 @@
static word suspend_state_init_async_entry_point_offset();
static word suspend_state_await_entry_point_offset();
+ static word suspend_state_await_with_type_check_entry_point_offset();
static word suspend_state_return_async_entry_point_offset();
static word suspend_state_return_async_not_future_entry_point_offset();
@@ -1312,6 +1313,7 @@
static word type_type_offset();
static word suspend_state_await_offset();
+ static word suspend_state_await_with_type_check_offset();
static word suspend_state_handle_exception_offset();
static word suspend_state_init_async_offset();
static word suspend_state_init_async_star_offset();
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h
index 9a2059d..cbaa6ce 100644
--- a/runtime/vm/compiler/runtime_offsets_extracted.h
+++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -236,23 +236,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 524;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 556;
+ ObjectStore_suspend_state_await_with_type_check_offset = 528;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 560;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 520;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 536;
+ ObjectStore_suspend_state_init_async_star_offset = 540;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 548;
+ ObjectStore_suspend_state_init_sync_star_offset = 552;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 528;
+ ObjectStore_suspend_state_return_async_offset = 532;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 532;
+ ObjectStore_suspend_state_return_async_not_future_offset = 536;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 544;
+ ObjectStore_suspend_state_return_async_star_offset = 548;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 552;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 556;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 540;
+ ObjectStore_suspend_state_yield_async_star_offset = 544;
static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
@@ -288,9 +290,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 412;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 876;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
880;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 884;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 304;
static constexpr dart::compiler::target::word
@@ -313,7 +315,7 @@
Thread_allocate_object_slow_entry_point_offset = 328;
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 212;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 916;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 920;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 216;
static constexpr dart::compiler::target::word
@@ -330,7 +332,7 @@
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 44;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 920;
+ Thread_double_truncate_round_supported_offset = 924;
static constexpr dart::compiler::target::word
Thread_service_extension_stream_offset = 956;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
@@ -348,7 +350,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 284;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 896;
+ 900;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 288;
static constexpr dart::compiler::target::word
@@ -370,11 +372,11 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 408;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 884;
+ 888;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 140;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 912;
+ 916;
static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
static constexpr dart::compiler::target::word Thread_isolate_group_offset = 960;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
@@ -429,11 +431,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 380;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 888;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 892;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 892;
+ Thread_saved_shadow_call_stack_offset = 896;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 900;
+ 904;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 276;
static constexpr dart::compiler::target::word
@@ -456,23 +458,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 840;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 844;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 836;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 844;
+ Thread_suspend_state_return_async_entry_point_offset = 848;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 848;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 852;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 852;
+ Thread_suspend_state_init_async_star_entry_point_offset = 856;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 856;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 860;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 860;
+ Thread_suspend_state_return_async_star_entry_point_offset = 864;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 864;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 868;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 868;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 872;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 872;
+ Thread_suspend_state_handle_exception_entry_point_offset = 876;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 76;
static constexpr dart::compiler::target::word Thread_top_offset = 48;
@@ -485,9 +489,9 @@
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
32;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 904;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 908;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 908;
+ Thread_callback_stack_return_offset = 912;
static constexpr dart::compiler::target::word Thread_next_task_id_offset = 928;
static constexpr dart::compiler::target::word Thread_random_offset = 936;
static constexpr dart::compiler::target::word
@@ -900,23 +904,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 1112;
+ ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 1072;
+ ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 1056;
+ ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 1088;
+ ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -953,9 +959,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1760;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1768;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 1776;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -979,7 +985,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1840;
+ 1848;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -992,13 +998,13 @@
Thread_call_to_runtime_entry_point_offset = 600;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1888;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1896;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 1848;
+ Thread_double_truncate_round_supported_offset = 1856;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 1896;
+ Thread_service_extension_stream_offset = 1904;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 504;
@@ -1014,7 +1020,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1800;
+ 1808;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -1036,14 +1042,14 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 1776;
+ 1784;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1832;
+ 1840;
static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1904;
+ 1912;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
136;
static constexpr dart::compiler::target::word
@@ -1096,11 +1102,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 744;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1784;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1792;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1792;
+ Thread_saved_shadow_call_stack_offset = 1800;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 1808;
+ 1816;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -1123,23 +1129,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 1688;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 1696;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 1680;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 1696;
+ Thread_suspend_state_return_async_entry_point_offset = 1704;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 1704;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 1712;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 1712;
+ Thread_suspend_state_init_async_star_entry_point_offset = 1720;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 1720;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 1728;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 1728;
+ Thread_suspend_state_return_async_star_entry_point_offset = 1736;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 1736;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 1744;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1744;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1752;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 1752;
+ Thread_suspend_state_handle_exception_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -1153,14 +1161,14 @@
64;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
- 1816;
+ 1824;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1824;
-static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1856;
-static constexpr dart::compiler::target::word Thread_random_offset = 1864;
+ Thread_callback_stack_return_offset = 1832;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1864;
+static constexpr dart::compiler::target::word Thread_random_offset = 1872;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 704;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1872;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1880;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -1568,23 +1576,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 524;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 556;
+ ObjectStore_suspend_state_await_with_type_check_offset = 528;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 560;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 520;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 536;
+ ObjectStore_suspend_state_init_async_star_offset = 540;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 548;
+ ObjectStore_suspend_state_init_sync_star_offset = 552;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 528;
+ ObjectStore_suspend_state_return_async_offset = 532;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 532;
+ ObjectStore_suspend_state_return_async_not_future_offset = 536;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 544;
+ ObjectStore_suspend_state_return_async_star_offset = 548;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 552;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 556;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 540;
+ ObjectStore_suspend_state_yield_async_star_offset = 544;
static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
@@ -1620,9 +1630,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 412;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 864;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
868;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 872;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 304;
static constexpr dart::compiler::target::word
@@ -1645,7 +1655,7 @@
Thread_allocate_object_slow_entry_point_offset = 328;
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 212;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 904;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 908;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 216;
static constexpr dart::compiler::target::word
@@ -1658,13 +1668,13 @@
Thread_call_to_runtime_entry_point_offset = 308;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 144;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 936;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 944;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 44;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 908;
+ Thread_double_truncate_round_supported_offset = 912;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 940;
+ Thread_service_extension_stream_offset = 948;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
348;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 260;
@@ -1680,7 +1690,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 284;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 884;
+ 888;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 288;
static constexpr dart::compiler::target::word
@@ -1702,13 +1712,13 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 408;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 872;
+ 876;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 140;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 900;
+ 904;
static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 944;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 952;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
68;
static constexpr dart::compiler::target::word
@@ -1761,11 +1771,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 380;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 876;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 880;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 880;
+ Thread_saved_shadow_call_stack_offset = 884;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 888;
+ 892;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 276;
static constexpr dart::compiler::target::word
@@ -1788,23 +1798,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 828;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 832;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 824;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 832;
+ Thread_suspend_state_return_async_entry_point_offset = 836;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 836;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 840;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 840;
+ Thread_suspend_state_init_async_star_entry_point_offset = 844;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 844;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 848;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 848;
+ Thread_suspend_state_return_async_star_entry_point_offset = 852;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 852;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 856;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 856;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 860;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 860;
+ Thread_suspend_state_handle_exception_entry_point_offset = 864;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 76;
static constexpr dart::compiler::target::word Thread_top_offset = 48;
@@ -1817,14 +1829,14 @@
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
32;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 892;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 896;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 896;
-static constexpr dart::compiler::target::word Thread_next_task_id_offset = 912;
-static constexpr dart::compiler::target::word Thread_random_offset = 920;
+ Thread_callback_stack_return_offset = 900;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 920;
+static constexpr dart::compiler::target::word Thread_random_offset = 928;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 360;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 928;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 936;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -2232,23 +2244,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 1112;
+ ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 1072;
+ ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 1056;
+ ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 1088;
+ ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -2285,9 +2299,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1832;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1840;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 1848;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -2311,7 +2325,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1912;
+ 1920;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -2324,13 +2338,13 @@
Thread_call_to_runtime_entry_point_offset = 600;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1960;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1968;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 1920;
+ Thread_double_truncate_round_supported_offset = 1928;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 1968;
+ Thread_service_extension_stream_offset = 1976;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 504;
@@ -2346,7 +2360,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1872;
+ 1880;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -2368,14 +2382,14 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 1848;
+ 1856;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1904;
+ 1912;
static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1976;
+ 1984;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
136;
static constexpr dart::compiler::target::word
@@ -2428,11 +2442,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 744;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1856;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1864;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1864;
+ Thread_saved_shadow_call_stack_offset = 1872;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 1880;
+ 1888;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -2455,23 +2469,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 1768;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 1752;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 1768;
+ Thread_suspend_state_return_async_entry_point_offset = 1776;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 1776;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 1784;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 1784;
+ Thread_suspend_state_init_async_star_entry_point_offset = 1792;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 1792;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 1800;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 1800;
+ Thread_suspend_state_return_async_star_entry_point_offset = 1808;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 1808;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 1816;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1816;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1824;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 1824;
+ Thread_suspend_state_handle_exception_entry_point_offset = 1832;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -2485,14 +2501,14 @@
64;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1896;
-static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1928;
-static constexpr dart::compiler::target::word Thread_random_offset = 1936;
+ Thread_callback_stack_return_offset = 1904;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1936;
+static constexpr dart::compiler::target::word Thread_random_offset = 1944;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 704;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1944;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1952;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -2901,23 +2917,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 1112;
+ ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 1072;
+ ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 1056;
+ ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 1088;
+ ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -2954,9 +2972,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1760;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1768;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 1776;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -2980,7 +2998,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1840;
+ 1848;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -2993,13 +3011,13 @@
Thread_call_to_runtime_entry_point_offset = 600;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1888;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1896;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 1848;
+ Thread_double_truncate_round_supported_offset = 1856;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 1896;
+ Thread_service_extension_stream_offset = 1904;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 504;
@@ -3015,7 +3033,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1800;
+ 1808;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -3037,14 +3055,14 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 1776;
+ 1784;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1832;
+ 1840;
static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1904;
+ 1912;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
136;
static constexpr dart::compiler::target::word
@@ -3097,11 +3115,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 744;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1784;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1792;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1792;
+ Thread_saved_shadow_call_stack_offset = 1800;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 1808;
+ 1816;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -3124,23 +3142,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 1688;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 1696;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 1680;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 1696;
+ Thread_suspend_state_return_async_entry_point_offset = 1704;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 1704;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 1712;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 1712;
+ Thread_suspend_state_init_async_star_entry_point_offset = 1720;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 1720;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 1728;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 1728;
+ Thread_suspend_state_return_async_star_entry_point_offset = 1736;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 1736;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 1744;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1744;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1752;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 1752;
+ Thread_suspend_state_handle_exception_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -3154,14 +3174,14 @@
64;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
- 1816;
+ 1824;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1824;
-static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1856;
-static constexpr dart::compiler::target::word Thread_random_offset = 1864;
+ Thread_callback_stack_return_offset = 1832;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1864;
+static constexpr dart::compiler::target::word Thread_random_offset = 1872;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 704;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1872;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1880;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -3569,23 +3589,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 1112;
+ ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 1072;
+ ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 1056;
+ ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 1088;
+ ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -3622,9 +3644,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1832;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1840;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 1848;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -3648,7 +3670,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1912;
+ 1920;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -3661,13 +3683,13 @@
Thread_call_to_runtime_entry_point_offset = 600;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1960;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1968;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 1920;
+ Thread_double_truncate_round_supported_offset = 1928;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 1968;
+ Thread_service_extension_stream_offset = 1976;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 504;
@@ -3683,7 +3705,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1872;
+ 1880;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -3705,14 +3727,14 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 1848;
+ 1856;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1904;
+ 1912;
static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1976;
+ 1984;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
136;
static constexpr dart::compiler::target::word
@@ -3765,11 +3787,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 744;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1856;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1864;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1864;
+ Thread_saved_shadow_call_stack_offset = 1872;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 1880;
+ 1888;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -3792,23 +3814,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 1768;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 1752;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 1768;
+ Thread_suspend_state_return_async_entry_point_offset = 1776;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 1776;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 1784;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 1784;
+ Thread_suspend_state_init_async_star_entry_point_offset = 1792;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 1792;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 1800;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 1800;
+ Thread_suspend_state_return_async_star_entry_point_offset = 1808;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 1808;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 1816;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1816;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1824;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 1824;
+ Thread_suspend_state_handle_exception_entry_point_offset = 1832;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -3822,14 +3846,14 @@
64;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1896;
-static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1928;
-static constexpr dart::compiler::target::word Thread_random_offset = 1936;
+ Thread_callback_stack_return_offset = 1904;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1936;
+static constexpr dart::compiler::target::word Thread_random_offset = 1944;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 704;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1944;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1952;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -4238,23 +4262,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 524;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 556;
+ ObjectStore_suspend_state_await_with_type_check_offset = 528;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 560;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 520;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 536;
+ ObjectStore_suspend_state_init_async_star_offset = 540;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 548;
+ ObjectStore_suspend_state_init_sync_star_offset = 552;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 528;
+ ObjectStore_suspend_state_return_async_offset = 532;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 532;
+ ObjectStore_suspend_state_return_async_not_future_offset = 536;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 544;
+ ObjectStore_suspend_state_return_async_star_offset = 548;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 552;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 556;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 540;
+ ObjectStore_suspend_state_yield_async_star_offset = 544;
static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
@@ -4290,9 +4316,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 412;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 916;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
920;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 924;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 304;
static constexpr dart::compiler::target::word
@@ -4315,7 +4341,7 @@
Thread_allocate_object_slow_entry_point_offset = 328;
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 212;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 956;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 960;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 216;
static constexpr dart::compiler::target::word
@@ -4332,7 +4358,7 @@
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 44;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 960;
+ Thread_double_truncate_round_supported_offset = 964;
static constexpr dart::compiler::target::word
Thread_service_extension_stream_offset = 996;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
@@ -4350,7 +4376,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 284;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 936;
+ 940;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 288;
static constexpr dart::compiler::target::word
@@ -4372,11 +4398,11 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 408;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 924;
+ 928;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 140;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 952;
+ 956;
static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
1000;
@@ -4432,11 +4458,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 380;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 928;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 932;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 932;
+ Thread_saved_shadow_call_stack_offset = 936;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 940;
+ 944;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 276;
static constexpr dart::compiler::target::word
@@ -4459,23 +4485,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 880;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 884;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 876;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 884;
+ Thread_suspend_state_return_async_entry_point_offset = 888;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 888;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 892;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 892;
+ Thread_suspend_state_init_async_star_entry_point_offset = 896;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 896;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 900;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 900;
+ Thread_suspend_state_return_async_star_entry_point_offset = 904;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 904;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 908;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 908;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 912;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 912;
+ Thread_suspend_state_handle_exception_entry_point_offset = 916;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 76;
static constexpr dart::compiler::target::word Thread_top_offset = 48;
@@ -4488,9 +4516,9 @@
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
32;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 944;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 948;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 948;
+ Thread_callback_stack_return_offset = 952;
static constexpr dart::compiler::target::word Thread_next_task_id_offset = 968;
static constexpr dart::compiler::target::word Thread_random_offset = 976;
static constexpr dart::compiler::target::word
@@ -4905,23 +4933,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 1112;
+ ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 1072;
+ ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 1056;
+ ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 1088;
+ ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -4958,9 +4988,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1816;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1824;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 1832;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -4984,7 +5014,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1896;
+ 1904;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -4997,13 +5027,13 @@
Thread_call_to_runtime_entry_point_offset = 600;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1944;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1952;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 1904;
+ Thread_double_truncate_round_supported_offset = 1912;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 1952;
+ Thread_service_extension_stream_offset = 1960;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 504;
@@ -5019,7 +5049,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1856;
+ 1864;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -5041,14 +5071,14 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 1832;
+ 1840;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1960;
+ 1968;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
136;
static constexpr dart::compiler::target::word
@@ -5101,11 +5131,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 744;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1840;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1848;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1848;
+ Thread_saved_shadow_call_stack_offset = 1856;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 1864;
+ 1872;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -5128,23 +5158,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 1744;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 1752;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 1736;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 1752;
+ Thread_suspend_state_return_async_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 1760;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 1768;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 1768;
+ Thread_suspend_state_init_async_star_entry_point_offset = 1776;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 1776;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 1784;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 1784;
+ Thread_suspend_state_return_async_star_entry_point_offset = 1792;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 1792;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 1800;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1800;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1808;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 1808;
+ Thread_suspend_state_handle_exception_entry_point_offset = 1816;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -5158,14 +5190,14 @@
64;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
- 1872;
+ 1880;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1880;
-static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1912;
-static constexpr dart::compiler::target::word Thread_random_offset = 1920;
+ Thread_callback_stack_return_offset = 1888;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1920;
+static constexpr dart::compiler::target::word Thread_random_offset = 1928;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 704;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1928;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1936;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -5568,23 +5600,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 524;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 556;
+ ObjectStore_suspend_state_await_with_type_check_offset = 528;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 560;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 520;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 536;
+ ObjectStore_suspend_state_init_async_star_offset = 540;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 548;
+ ObjectStore_suspend_state_init_sync_star_offset = 552;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 528;
+ ObjectStore_suspend_state_return_async_offset = 532;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 532;
+ ObjectStore_suspend_state_return_async_not_future_offset = 536;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 544;
+ ObjectStore_suspend_state_return_async_star_offset = 548;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 552;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 556;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 540;
+ ObjectStore_suspend_state_yield_async_star_offset = 544;
static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
@@ -5620,9 +5654,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 412;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 876;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
880;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 884;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 304;
static constexpr dart::compiler::target::word
@@ -5645,7 +5679,7 @@
Thread_allocate_object_slow_entry_point_offset = 328;
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 212;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 916;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 920;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 216;
static constexpr dart::compiler::target::word
@@ -5662,7 +5696,7 @@
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 44;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 920;
+ Thread_double_truncate_round_supported_offset = 924;
static constexpr dart::compiler::target::word
Thread_service_extension_stream_offset = 956;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
@@ -5680,7 +5714,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 284;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 896;
+ 900;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 288;
static constexpr dart::compiler::target::word
@@ -5702,11 +5736,11 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 408;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 884;
+ 888;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 140;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 912;
+ 916;
static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
static constexpr dart::compiler::target::word Thread_isolate_group_offset = 960;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
@@ -5761,11 +5795,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 380;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 888;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 892;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 892;
+ Thread_saved_shadow_call_stack_offset = 896;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 900;
+ 904;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 276;
static constexpr dart::compiler::target::word
@@ -5788,23 +5822,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 840;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 844;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 836;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 844;
+ Thread_suspend_state_return_async_entry_point_offset = 848;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 848;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 852;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 852;
+ Thread_suspend_state_init_async_star_entry_point_offset = 856;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 856;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 860;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 860;
+ Thread_suspend_state_return_async_star_entry_point_offset = 864;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 864;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 868;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 868;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 872;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 872;
+ Thread_suspend_state_handle_exception_entry_point_offset = 876;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 76;
static constexpr dart::compiler::target::word Thread_top_offset = 48;
@@ -5817,9 +5853,9 @@
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
32;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 904;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 908;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 908;
+ Thread_callback_stack_return_offset = 912;
static constexpr dart::compiler::target::word Thread_next_task_id_offset = 928;
static constexpr dart::compiler::target::word Thread_random_offset = 936;
static constexpr dart::compiler::target::word
@@ -6224,23 +6260,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 1112;
+ ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 1072;
+ ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 1056;
+ ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 1088;
+ ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -6277,9 +6315,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1760;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1768;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 1776;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -6303,7 +6341,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1840;
+ 1848;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -6316,13 +6354,13 @@
Thread_call_to_runtime_entry_point_offset = 600;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1888;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1896;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 1848;
+ Thread_double_truncate_round_supported_offset = 1856;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 1896;
+ Thread_service_extension_stream_offset = 1904;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 504;
@@ -6338,7 +6376,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1800;
+ 1808;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -6360,14 +6398,14 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 1776;
+ 1784;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1832;
+ 1840;
static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1904;
+ 1912;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
136;
static constexpr dart::compiler::target::word
@@ -6420,11 +6458,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 744;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1784;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1792;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1792;
+ Thread_saved_shadow_call_stack_offset = 1800;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 1808;
+ 1816;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -6447,23 +6485,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 1688;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 1696;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 1680;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 1696;
+ Thread_suspend_state_return_async_entry_point_offset = 1704;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 1704;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 1712;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 1712;
+ Thread_suspend_state_init_async_star_entry_point_offset = 1720;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 1720;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 1728;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 1728;
+ Thread_suspend_state_return_async_star_entry_point_offset = 1736;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 1736;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 1744;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1744;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1752;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 1752;
+ Thread_suspend_state_handle_exception_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -6477,14 +6517,14 @@
64;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
- 1816;
+ 1824;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1824;
-static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1856;
-static constexpr dart::compiler::target::word Thread_random_offset = 1864;
+ Thread_callback_stack_return_offset = 1832;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1864;
+static constexpr dart::compiler::target::word Thread_random_offset = 1872;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 704;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1872;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1880;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -6884,23 +6924,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 524;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 556;
+ ObjectStore_suspend_state_await_with_type_check_offset = 528;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 560;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 520;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 536;
+ ObjectStore_suspend_state_init_async_star_offset = 540;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 548;
+ ObjectStore_suspend_state_init_sync_star_offset = 552;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 528;
+ ObjectStore_suspend_state_return_async_offset = 532;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 532;
+ ObjectStore_suspend_state_return_async_not_future_offset = 536;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 544;
+ ObjectStore_suspend_state_return_async_star_offset = 548;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 552;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 556;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 540;
+ ObjectStore_suspend_state_yield_async_star_offset = 544;
static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
@@ -6936,9 +6978,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 412;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 864;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
868;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 872;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 304;
static constexpr dart::compiler::target::word
@@ -6961,7 +7003,7 @@
Thread_allocate_object_slow_entry_point_offset = 328;
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 212;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 904;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 908;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 216;
static constexpr dart::compiler::target::word
@@ -6974,13 +7016,13 @@
Thread_call_to_runtime_entry_point_offset = 308;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 144;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 936;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 944;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 44;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 908;
+ Thread_double_truncate_round_supported_offset = 912;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 940;
+ Thread_service_extension_stream_offset = 948;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
348;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 260;
@@ -6996,7 +7038,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 284;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 884;
+ 888;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 288;
static constexpr dart::compiler::target::word
@@ -7018,13 +7060,13 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 408;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 872;
+ 876;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 140;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 900;
+ 904;
static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 944;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 952;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
68;
static constexpr dart::compiler::target::word
@@ -7077,11 +7119,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 380;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 876;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 880;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 880;
+ Thread_saved_shadow_call_stack_offset = 884;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 888;
+ 892;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 276;
static constexpr dart::compiler::target::word
@@ -7104,23 +7146,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 828;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 832;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 824;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 832;
+ Thread_suspend_state_return_async_entry_point_offset = 836;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 836;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 840;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 840;
+ Thread_suspend_state_init_async_star_entry_point_offset = 844;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 844;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 848;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 848;
+ Thread_suspend_state_return_async_star_entry_point_offset = 852;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 852;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 856;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 856;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 860;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 860;
+ Thread_suspend_state_handle_exception_entry_point_offset = 864;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 76;
static constexpr dart::compiler::target::word Thread_top_offset = 48;
@@ -7133,14 +7177,14 @@
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
32;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 892;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 896;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 896;
-static constexpr dart::compiler::target::word Thread_next_task_id_offset = 912;
-static constexpr dart::compiler::target::word Thread_random_offset = 920;
+ Thread_callback_stack_return_offset = 900;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 920;
+static constexpr dart::compiler::target::word Thread_random_offset = 928;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 360;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 928;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 936;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -7540,23 +7584,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 1112;
+ ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 1072;
+ ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 1056;
+ ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 1088;
+ ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -7593,9 +7639,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1832;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1840;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 1848;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -7619,7 +7665,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1912;
+ 1920;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -7632,13 +7678,13 @@
Thread_call_to_runtime_entry_point_offset = 600;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1960;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1968;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 1920;
+ Thread_double_truncate_round_supported_offset = 1928;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 1968;
+ Thread_service_extension_stream_offset = 1976;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 504;
@@ -7654,7 +7700,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1872;
+ 1880;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -7676,14 +7722,14 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 1848;
+ 1856;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1904;
+ 1912;
static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1976;
+ 1984;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
136;
static constexpr dart::compiler::target::word
@@ -7736,11 +7782,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 744;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1856;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1864;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1864;
+ Thread_saved_shadow_call_stack_offset = 1872;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 1880;
+ 1888;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -7763,23 +7809,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 1768;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 1752;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 1768;
+ Thread_suspend_state_return_async_entry_point_offset = 1776;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 1776;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 1784;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 1784;
+ Thread_suspend_state_init_async_star_entry_point_offset = 1792;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 1792;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 1800;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 1800;
+ Thread_suspend_state_return_async_star_entry_point_offset = 1808;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 1808;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 1816;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1816;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1824;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 1824;
+ Thread_suspend_state_handle_exception_entry_point_offset = 1832;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -7793,14 +7841,14 @@
64;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1896;
-static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1928;
-static constexpr dart::compiler::target::word Thread_random_offset = 1936;
+ Thread_callback_stack_return_offset = 1904;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1936;
+static constexpr dart::compiler::target::word Thread_random_offset = 1944;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 704;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1944;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1952;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -8201,23 +8249,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 1112;
+ ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 1072;
+ ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 1056;
+ ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 1088;
+ ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -8254,9 +8304,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1760;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1768;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 1776;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -8280,7 +8330,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1840;
+ 1848;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -8293,13 +8343,13 @@
Thread_call_to_runtime_entry_point_offset = 600;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1888;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1896;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 1848;
+ Thread_double_truncate_round_supported_offset = 1856;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 1896;
+ Thread_service_extension_stream_offset = 1904;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 504;
@@ -8315,7 +8365,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1800;
+ 1808;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -8337,14 +8387,14 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 1776;
+ 1784;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1832;
+ 1840;
static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1904;
+ 1912;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
136;
static constexpr dart::compiler::target::word
@@ -8397,11 +8447,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 744;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1784;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1792;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1792;
+ Thread_saved_shadow_call_stack_offset = 1800;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 1808;
+ 1816;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -8424,23 +8474,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 1688;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 1696;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 1680;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 1696;
+ Thread_suspend_state_return_async_entry_point_offset = 1704;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 1704;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 1712;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 1712;
+ Thread_suspend_state_init_async_star_entry_point_offset = 1720;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 1720;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 1728;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 1728;
+ Thread_suspend_state_return_async_star_entry_point_offset = 1736;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 1736;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 1744;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1744;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1752;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 1752;
+ Thread_suspend_state_handle_exception_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -8454,14 +8506,14 @@
64;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
- 1816;
+ 1824;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1824;
-static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1856;
-static constexpr dart::compiler::target::word Thread_random_offset = 1864;
+ Thread_callback_stack_return_offset = 1832;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1864;
+static constexpr dart::compiler::target::word Thread_random_offset = 1872;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 704;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1872;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1880;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -8861,23 +8913,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 1112;
+ ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 1072;
+ ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 1056;
+ ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 1088;
+ ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -8914,9 +8968,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1832;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1840;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 1848;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -8940,7 +8994,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1912;
+ 1920;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -8953,13 +9007,13 @@
Thread_call_to_runtime_entry_point_offset = 600;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1960;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1968;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 1920;
+ Thread_double_truncate_round_supported_offset = 1928;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 1968;
+ Thread_service_extension_stream_offset = 1976;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 504;
@@ -8975,7 +9029,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1872;
+ 1880;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -8997,14 +9051,14 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 1848;
+ 1856;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1904;
+ 1912;
static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1976;
+ 1984;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
136;
static constexpr dart::compiler::target::word
@@ -9057,11 +9111,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 744;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1856;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1864;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1864;
+ Thread_saved_shadow_call_stack_offset = 1872;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 1880;
+ 1888;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -9084,23 +9138,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 1768;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 1752;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 1768;
+ Thread_suspend_state_return_async_entry_point_offset = 1776;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 1776;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 1784;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 1784;
+ Thread_suspend_state_init_async_star_entry_point_offset = 1792;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 1792;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 1800;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 1800;
+ Thread_suspend_state_return_async_star_entry_point_offset = 1808;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 1808;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 1816;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1816;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1824;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 1824;
+ Thread_suspend_state_handle_exception_entry_point_offset = 1832;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -9114,14 +9170,14 @@
64;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1896;
-static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1928;
-static constexpr dart::compiler::target::word Thread_random_offset = 1936;
+ Thread_callback_stack_return_offset = 1904;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1936;
+static constexpr dart::compiler::target::word Thread_random_offset = 1944;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 704;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1944;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1952;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -9522,23 +9578,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 524;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 556;
+ ObjectStore_suspend_state_await_with_type_check_offset = 528;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 560;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 520;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 536;
+ ObjectStore_suspend_state_init_async_star_offset = 540;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 548;
+ ObjectStore_suspend_state_init_sync_star_offset = 552;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 528;
+ ObjectStore_suspend_state_return_async_offset = 532;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 532;
+ ObjectStore_suspend_state_return_async_not_future_offset = 536;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 544;
+ ObjectStore_suspend_state_return_async_star_offset = 548;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 552;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 556;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 540;
+ ObjectStore_suspend_state_yield_async_star_offset = 544;
static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
@@ -9574,9 +9632,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 412;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 916;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
920;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 924;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 304;
static constexpr dart::compiler::target::word
@@ -9599,7 +9657,7 @@
Thread_allocate_object_slow_entry_point_offset = 328;
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 212;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 956;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 960;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 216;
static constexpr dart::compiler::target::word
@@ -9616,7 +9674,7 @@
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 44;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 960;
+ Thread_double_truncate_round_supported_offset = 964;
static constexpr dart::compiler::target::word
Thread_service_extension_stream_offset = 996;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
@@ -9634,7 +9692,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 284;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 936;
+ 940;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 288;
static constexpr dart::compiler::target::word
@@ -9656,11 +9714,11 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 408;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 924;
+ 928;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 140;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 952;
+ 956;
static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
1000;
@@ -9716,11 +9774,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 380;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 928;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 932;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 932;
+ Thread_saved_shadow_call_stack_offset = 936;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 940;
+ 944;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 276;
static constexpr dart::compiler::target::word
@@ -9743,23 +9801,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 880;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 884;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 876;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 884;
+ Thread_suspend_state_return_async_entry_point_offset = 888;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 888;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 892;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 892;
+ Thread_suspend_state_init_async_star_entry_point_offset = 896;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 896;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 900;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 900;
+ Thread_suspend_state_return_async_star_entry_point_offset = 904;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 904;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 908;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 908;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 912;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 912;
+ Thread_suspend_state_handle_exception_entry_point_offset = 916;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 76;
static constexpr dart::compiler::target::word Thread_top_offset = 48;
@@ -9772,9 +9832,9 @@
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
32;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 944;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 948;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 948;
+ Thread_callback_stack_return_offset = 952;
static constexpr dart::compiler::target::word Thread_next_task_id_offset = 968;
static constexpr dart::compiler::target::word Thread_random_offset = 976;
static constexpr dart::compiler::target::word
@@ -10181,23 +10241,25 @@
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_handle_exception_offset = 1112;
+ ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_async_star_offset = 1072;
+ ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_offset = 1056;
+ ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_return_async_star_offset = 1088;
+ ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -10234,9 +10296,9 @@
static constexpr dart::compiler::target::word
Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1816;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1824;
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
+ 1832;
static constexpr dart::compiler::target::word
Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -10260,7 +10322,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1896;
+ 1904;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -10273,13 +10335,13 @@
Thread_call_to_runtime_entry_point_offset = 600;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1944;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1952;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 1904;
+ Thread_double_truncate_round_supported_offset = 1912;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 1952;
+ Thread_service_extension_stream_offset = 1960;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 504;
@@ -10295,7 +10357,7 @@
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1856;
+ 1864;
static constexpr dart::compiler::target::word
Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -10317,14 +10379,14 @@
static constexpr dart::compiler::target::word
Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
- 1832;
+ 1840;
static constexpr dart::compiler::target::word
Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1960;
+ 1968;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
136;
static constexpr dart::compiler::target::word
@@ -10377,11 +10439,11 @@
static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
static constexpr dart::compiler::target::word
Thread_predefined_symbols_address_offset = 744;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1840;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1848;
static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1848;
+ Thread_saved_shadow_call_stack_offset = 1856;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
- 1864;
+ 1872;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -10404,23 +10466,25 @@
static constexpr dart::compiler::target::word
Thread_suspend_state_await_entry_point_offset = 1744;
static constexpr dart::compiler::target::word
+ Thread_suspend_state_await_with_type_check_entry_point_offset = 1752;
+static constexpr dart::compiler::target::word
Thread_suspend_state_init_async_entry_point_offset = 1736;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_entry_point_offset = 1752;
+ Thread_suspend_state_return_async_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_not_future_entry_point_offset = 1760;
+ Thread_suspend_state_return_async_not_future_entry_point_offset = 1768;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_async_star_entry_point_offset = 1768;
+ Thread_suspend_state_init_async_star_entry_point_offset = 1776;
static constexpr dart::compiler::target::word
- Thread_suspend_state_yield_async_star_entry_point_offset = 1776;
+ Thread_suspend_state_yield_async_star_entry_point_offset = 1784;
static constexpr dart::compiler::target::word
- Thread_suspend_state_return_async_star_entry_point_offset = 1784;
+ Thread_suspend_state_return_async_star_entry_point_offset = 1792;
static constexpr dart::compiler::target::word
- Thread_suspend_state_init_sync_star_entry_point_offset = 1792;
+ Thread_suspend_state_init_sync_star_entry_point_offset = 1800;
static constexpr dart::compiler::target::word
- Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1800;
+ Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1808;
static constexpr dart::compiler::target::word
- Thread_suspend_state_handle_exception_entry_point_offset = 1808;
+ Thread_suspend_state_handle_exception_entry_point_offset = 1816;
static constexpr dart::compiler::target::word
Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -10434,14 +10498,14 @@
64;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
- 1872;
+ 1880;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1880;
-static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1912;
-static constexpr dart::compiler::target::word Thread_random_offset = 1920;
+ Thread_callback_stack_return_offset = 1888;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1920;
+static constexpr dart::compiler::target::word Thread_random_offset = 1928;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 704;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1928;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1936;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -10875,23 +10939,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 524;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 556;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 528;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 560;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 520;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 536;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 540;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 548;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 552;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 528;
+ AOT_ObjectStore_suspend_state_return_async_offset = 532;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 532;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 536;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 544;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 548;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 552;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 556;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 540;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 544;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
12;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 4;
@@ -10932,9 +10998,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 412;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 876;
+ AOT_Thread_active_exception_offset = 880;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 880;
+ AOT_Thread_active_stacktrace_offset = 884;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 304;
static constexpr dart::compiler::target::word
@@ -10958,7 +11024,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 212;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 916;
+ 920;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 216;
static constexpr dart::compiler::target::word
@@ -10977,7 +11043,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 44;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 920;
+ AOT_Thread_double_truncate_round_supported_offset = 924;
static constexpr dart::compiler::target::word
AOT_Thread_service_extension_stream_offset = 956;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
@@ -10996,7 +11062,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 284;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 896;
+ AOT_Thread_execution_state_offset = 900;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 288;
static constexpr dart::compiler::target::word
@@ -11018,11 +11084,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 408;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 884;
+ AOT_Thread_global_object_pool_offset = 888;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 140;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 912;
+ AOT_Thread_exit_through_ffi_offset = 916;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
960;
@@ -11081,11 +11147,11 @@
112;
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 380;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 888;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 892;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 892;
+ AOT_Thread_saved_shadow_call_stack_offset = 896;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 900;
+ AOT_Thread_safepoint_state_offset = 904;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 276;
static constexpr dart::compiler::target::word
@@ -11109,24 +11175,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 840;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 844;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 836;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 844;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 848;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 848;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 852;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 852;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 856;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 856;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 860;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 860;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 864;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 864;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 868;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 868;
+ 872;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 872;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 876;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 76;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 48;
@@ -11141,9 +11209,9 @@
AOT_Thread_write_barrier_mask_offset = 32;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 36;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 904;
+ 908;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 908;
+ AOT_Thread_callback_stack_return_offset = 912;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
928;
static constexpr dart::compiler::target::word AOT_Thread_random_offset = 936;
@@ -11613,23 +11681,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 1112;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 1072;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 1056;
+ AOT_ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 1088;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
16;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -11671,9 +11741,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1760;
+ AOT_Thread_active_exception_offset = 1768;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1768;
+ AOT_Thread_active_stacktrace_offset = 1776;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -11697,7 +11767,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1840;
+ 1848;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -11712,13 +11782,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 272;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 1848;
+ AOT_Thread_double_truncate_round_supported_offset = 1856;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 1896;
+ AOT_Thread_service_extension_stream_offset = 1904;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -11735,7 +11805,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1800;
+ AOT_Thread_execution_state_offset = 1808;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -11757,14 +11827,14 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1776;
+ AOT_Thread_global_object_pool_offset = 1784;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1832;
+ AOT_Thread_exit_through_ffi_offset = 1840;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
- 1904;
+ 1912;
static constexpr dart::compiler::target::word
AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
@@ -11821,11 +11891,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 744;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1784;
+ 1792;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1792;
+ AOT_Thread_saved_shadow_call_stack_offset = 1800;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1808;
+ AOT_Thread_safepoint_state_offset = 1816;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -11849,24 +11919,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 1688;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 1696;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 1680;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 1696;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 1704;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1704;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1712;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1712;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1720;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1720;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1728;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1728;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1736;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1736;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1744;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 1744;
+ 1752;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1752;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -11881,16 +11953,16 @@
AOT_Thread_write_barrier_mask_offset = 64;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1816;
+ 1824;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1824;
+ AOT_Thread_callback_stack_return_offset = 1832;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 1856;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1864;
+ 1864;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1872;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 704;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 1872;
+ 1880;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0;
static constexpr dart::compiler::target::word
@@ -12358,23 +12430,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 1112;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 1072;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 1056;
+ AOT_ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 1088;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
16;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -12416,9 +12490,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1832;
+ AOT_Thread_active_exception_offset = 1840;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1840;
+ AOT_Thread_active_stacktrace_offset = 1848;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -12442,7 +12516,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1912;
+ 1920;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -12457,13 +12531,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 272;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1960;
+ 1968;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 1920;
+ AOT_Thread_double_truncate_round_supported_offset = 1928;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 1968;
+ AOT_Thread_service_extension_stream_offset = 1976;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -12480,7 +12554,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1872;
+ AOT_Thread_execution_state_offset = 1880;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -12502,14 +12576,14 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1848;
+ AOT_Thread_global_object_pool_offset = 1856;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1904;
+ AOT_Thread_exit_through_ffi_offset = 1912;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
- 1976;
+ 1984;
static constexpr dart::compiler::target::word
AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
@@ -12566,11 +12640,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 744;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1856;
+ 1864;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1864;
+ AOT_Thread_saved_shadow_call_stack_offset = 1872;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1880;
+ AOT_Thread_safepoint_state_offset = 1888;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -12594,24 +12668,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 1768;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 1752;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 1768;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 1776;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1776;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1784;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1784;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1792;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1792;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1800;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1800;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1808;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1808;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1816;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 1816;
+ 1824;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1824;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1832;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -12626,16 +12702,16 @@
AOT_Thread_write_barrier_mask_offset = 64;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1896;
+ AOT_Thread_callback_stack_return_offset = 1904;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 1928;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1936;
+ 1936;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1944;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 704;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 1944;
+ 1952;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0;
static constexpr dart::compiler::target::word
@@ -13101,23 +13177,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 1112;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 1072;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 1056;
+ AOT_ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 1088;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
16;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -13159,9 +13237,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1760;
+ AOT_Thread_active_exception_offset = 1768;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1768;
+ AOT_Thread_active_stacktrace_offset = 1776;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -13185,7 +13263,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1840;
+ 1848;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -13200,13 +13278,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 272;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 1848;
+ AOT_Thread_double_truncate_round_supported_offset = 1856;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 1896;
+ AOT_Thread_service_extension_stream_offset = 1904;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -13223,7 +13301,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1800;
+ AOT_Thread_execution_state_offset = 1808;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -13245,14 +13323,14 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1776;
+ AOT_Thread_global_object_pool_offset = 1784;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1832;
+ AOT_Thread_exit_through_ffi_offset = 1840;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
- 1904;
+ 1912;
static constexpr dart::compiler::target::word
AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
@@ -13309,11 +13387,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 744;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1784;
+ 1792;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1792;
+ AOT_Thread_saved_shadow_call_stack_offset = 1800;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1808;
+ AOT_Thread_safepoint_state_offset = 1816;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -13337,24 +13415,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 1688;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 1696;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 1680;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 1696;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 1704;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1704;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1712;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1712;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1720;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1720;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1728;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1728;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1736;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1736;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1744;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 1744;
+ 1752;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1752;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -13369,16 +13449,16 @@
AOT_Thread_write_barrier_mask_offset = 64;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1816;
+ 1824;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1824;
+ AOT_Thread_callback_stack_return_offset = 1832;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 1856;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1864;
+ 1864;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1872;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 704;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 1872;
+ 1880;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0;
static constexpr dart::compiler::target::word
@@ -13843,23 +13923,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 1112;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 1072;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 1056;
+ AOT_ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 1088;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
16;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -13901,9 +13983,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1832;
+ AOT_Thread_active_exception_offset = 1840;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1840;
+ AOT_Thread_active_stacktrace_offset = 1848;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -13927,7 +14009,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1912;
+ 1920;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -13942,13 +14024,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 272;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1960;
+ 1968;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 1920;
+ AOT_Thread_double_truncate_round_supported_offset = 1928;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 1968;
+ AOT_Thread_service_extension_stream_offset = 1976;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -13965,7 +14047,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1872;
+ AOT_Thread_execution_state_offset = 1880;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -13987,14 +14069,14 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1848;
+ AOT_Thread_global_object_pool_offset = 1856;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1904;
+ AOT_Thread_exit_through_ffi_offset = 1912;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
- 1976;
+ 1984;
static constexpr dart::compiler::target::word
AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
@@ -14051,11 +14133,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 744;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1856;
+ 1864;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1864;
+ AOT_Thread_saved_shadow_call_stack_offset = 1872;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1880;
+ AOT_Thread_safepoint_state_offset = 1888;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -14079,24 +14161,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 1768;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 1752;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 1768;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 1776;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1776;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1784;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1784;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1792;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1792;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1800;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1800;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1808;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1808;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1816;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 1816;
+ 1824;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1824;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1832;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -14111,16 +14195,16 @@
AOT_Thread_write_barrier_mask_offset = 64;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1896;
+ AOT_Thread_callback_stack_return_offset = 1904;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 1928;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1936;
+ 1936;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1944;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 704;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 1944;
+ 1952;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0;
static constexpr dart::compiler::target::word
@@ -14585,23 +14669,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 524;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 556;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 528;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 560;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 520;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 536;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 540;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 548;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 552;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 528;
+ AOT_ObjectStore_suspend_state_return_async_offset = 532;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 532;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 536;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 544;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 548;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 552;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 556;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 540;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 544;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
12;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 4;
@@ -14642,9 +14728,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 412;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 916;
+ AOT_Thread_active_exception_offset = 920;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 920;
+ AOT_Thread_active_stacktrace_offset = 924;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 304;
static constexpr dart::compiler::target::word
@@ -14668,7 +14754,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 212;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 956;
+ 960;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 216;
static constexpr dart::compiler::target::word
@@ -14687,7 +14773,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 44;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 960;
+ AOT_Thread_double_truncate_round_supported_offset = 964;
static constexpr dart::compiler::target::word
AOT_Thread_service_extension_stream_offset = 996;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
@@ -14706,7 +14792,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 284;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 936;
+ AOT_Thread_execution_state_offset = 940;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 288;
static constexpr dart::compiler::target::word
@@ -14728,11 +14814,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 408;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 924;
+ AOT_Thread_global_object_pool_offset = 928;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 140;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 952;
+ AOT_Thread_exit_through_ffi_offset = 956;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
1000;
@@ -14791,11 +14877,11 @@
112;
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 380;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 928;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 932;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 932;
+ AOT_Thread_saved_shadow_call_stack_offset = 936;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 940;
+ AOT_Thread_safepoint_state_offset = 944;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 276;
static constexpr dart::compiler::target::word
@@ -14819,24 +14905,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 880;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 884;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 876;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 884;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 888;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 888;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 892;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 892;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 896;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 896;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 900;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 900;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 904;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 904;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 908;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 908;
+ 912;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 912;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 916;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 76;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 48;
@@ -14851,9 +14939,9 @@
AOT_Thread_write_barrier_mask_offset = 32;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 36;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 944;
+ 948;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 948;
+ AOT_Thread_callback_stack_return_offset = 952;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
968;
static constexpr dart::compiler::target::word AOT_Thread_random_offset = 976;
@@ -15325,23 +15413,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 1112;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 1072;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 1056;
+ AOT_ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 1088;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
16;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -15383,9 +15473,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1816;
+ AOT_Thread_active_exception_offset = 1824;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1824;
+ AOT_Thread_active_stacktrace_offset = 1832;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -15409,7 +15499,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1896;
+ 1904;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -15424,13 +15514,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 272;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1944;
+ 1952;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 1904;
+ AOT_Thread_double_truncate_round_supported_offset = 1912;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 1952;
+ AOT_Thread_service_extension_stream_offset = 1960;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -15447,7 +15537,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1856;
+ AOT_Thread_execution_state_offset = 1864;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -15469,14 +15559,14 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1832;
+ AOT_Thread_global_object_pool_offset = 1840;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1888;
+ AOT_Thread_exit_through_ffi_offset = 1896;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
- 1960;
+ 1968;
static constexpr dart::compiler::target::word
AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
@@ -15533,11 +15623,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 744;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1840;
+ 1848;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1848;
+ AOT_Thread_saved_shadow_call_stack_offset = 1856;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1864;
+ AOT_Thread_safepoint_state_offset = 1872;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -15561,24 +15651,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 1744;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 1752;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 1736;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 1752;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1760;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1768;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1768;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1776;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1776;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1784;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1784;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1792;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1792;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1800;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 1800;
+ 1808;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1808;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1816;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -15593,16 +15685,16 @@
AOT_Thread_write_barrier_mask_offset = 64;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1872;
+ 1880;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1880;
+ AOT_Thread_callback_stack_return_offset = 1888;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 1912;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1920;
+ 1920;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1928;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 704;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 1928;
+ 1936;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0;
static constexpr dart::compiler::target::word
@@ -16060,23 +16152,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 524;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 556;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 528;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 560;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 520;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 536;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 540;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 548;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 552;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 528;
+ AOT_ObjectStore_suspend_state_return_async_offset = 532;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 532;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 536;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 544;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 548;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 552;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 556;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 540;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 544;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
12;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 4;
@@ -16117,9 +16211,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 412;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 876;
+ AOT_Thread_active_exception_offset = 880;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 880;
+ AOT_Thread_active_stacktrace_offset = 884;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 304;
static constexpr dart::compiler::target::word
@@ -16143,7 +16237,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 212;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 916;
+ 920;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 216;
static constexpr dart::compiler::target::word
@@ -16162,7 +16256,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 44;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 920;
+ AOT_Thread_double_truncate_round_supported_offset = 924;
static constexpr dart::compiler::target::word
AOT_Thread_service_extension_stream_offset = 956;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
@@ -16181,7 +16275,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 284;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 896;
+ AOT_Thread_execution_state_offset = 900;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 288;
static constexpr dart::compiler::target::word
@@ -16203,11 +16297,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 408;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 884;
+ AOT_Thread_global_object_pool_offset = 888;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 140;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 912;
+ AOT_Thread_exit_through_ffi_offset = 916;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
960;
@@ -16266,11 +16360,11 @@
112;
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 380;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 888;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 892;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 892;
+ AOT_Thread_saved_shadow_call_stack_offset = 896;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 900;
+ AOT_Thread_safepoint_state_offset = 904;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 276;
static constexpr dart::compiler::target::word
@@ -16294,24 +16388,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 840;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 844;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 836;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 844;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 848;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 848;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 852;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 852;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 856;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 856;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 860;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 860;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 864;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 864;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 868;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 868;
+ 872;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 872;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 876;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 76;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 48;
@@ -16326,9 +16422,9 @@
AOT_Thread_write_barrier_mask_offset = 32;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 36;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 904;
+ 908;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 908;
+ AOT_Thread_callback_stack_return_offset = 912;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
928;
static constexpr dart::compiler::target::word AOT_Thread_random_offset = 936;
@@ -16789,23 +16885,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 1112;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 1072;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 1056;
+ AOT_ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 1088;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
16;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -16847,9 +16945,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1760;
+ AOT_Thread_active_exception_offset = 1768;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1768;
+ AOT_Thread_active_stacktrace_offset = 1776;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -16873,7 +16971,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1840;
+ 1848;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -16888,13 +16986,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 272;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 1848;
+ AOT_Thread_double_truncate_round_supported_offset = 1856;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 1896;
+ AOT_Thread_service_extension_stream_offset = 1904;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -16911,7 +17009,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1800;
+ AOT_Thread_execution_state_offset = 1808;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -16933,14 +17031,14 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1776;
+ AOT_Thread_global_object_pool_offset = 1784;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1832;
+ AOT_Thread_exit_through_ffi_offset = 1840;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
- 1904;
+ 1912;
static constexpr dart::compiler::target::word
AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
@@ -16997,11 +17095,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 744;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1784;
+ 1792;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1792;
+ AOT_Thread_saved_shadow_call_stack_offset = 1800;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1808;
+ AOT_Thread_safepoint_state_offset = 1816;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -17025,24 +17123,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 1688;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 1696;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 1680;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 1696;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 1704;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1704;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1712;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1712;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1720;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1720;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1728;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1728;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1736;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1736;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1744;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 1744;
+ 1752;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1752;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -17057,16 +17157,16 @@
AOT_Thread_write_barrier_mask_offset = 64;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1816;
+ 1824;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1824;
+ AOT_Thread_callback_stack_return_offset = 1832;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 1856;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1864;
+ 1864;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1872;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 704;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 1872;
+ 1880;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0;
static constexpr dart::compiler::target::word
@@ -17525,23 +17625,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 1112;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 1072;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 1056;
+ AOT_ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 1088;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
16;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -17583,9 +17685,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1832;
+ AOT_Thread_active_exception_offset = 1840;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1840;
+ AOT_Thread_active_stacktrace_offset = 1848;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -17609,7 +17711,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1912;
+ 1920;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -17624,13 +17726,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 272;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1960;
+ 1968;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 1920;
+ AOT_Thread_double_truncate_round_supported_offset = 1928;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 1968;
+ AOT_Thread_service_extension_stream_offset = 1976;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -17647,7 +17749,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1872;
+ AOT_Thread_execution_state_offset = 1880;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -17669,14 +17771,14 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1848;
+ AOT_Thread_global_object_pool_offset = 1856;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1904;
+ AOT_Thread_exit_through_ffi_offset = 1912;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
- 1976;
+ 1984;
static constexpr dart::compiler::target::word
AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
@@ -17733,11 +17835,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 744;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1856;
+ 1864;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1864;
+ AOT_Thread_saved_shadow_call_stack_offset = 1872;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1880;
+ AOT_Thread_safepoint_state_offset = 1888;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -17761,24 +17863,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 1768;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 1752;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 1768;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 1776;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1776;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1784;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1784;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1792;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1792;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1800;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1800;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1808;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1808;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1816;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 1816;
+ 1824;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1824;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1832;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -17793,16 +17897,16 @@
AOT_Thread_write_barrier_mask_offset = 64;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1896;
+ AOT_Thread_callback_stack_return_offset = 1904;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 1928;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1936;
+ 1936;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1944;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 704;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 1944;
+ 1952;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0;
static constexpr dart::compiler::target::word
@@ -18259,23 +18363,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 1112;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 1072;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 1056;
+ AOT_ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 1088;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
16;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -18317,9 +18423,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1760;
+ AOT_Thread_active_exception_offset = 1768;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1768;
+ AOT_Thread_active_stacktrace_offset = 1776;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -18343,7 +18449,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1840;
+ 1848;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -18358,13 +18464,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 272;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 1848;
+ AOT_Thread_double_truncate_round_supported_offset = 1856;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 1896;
+ AOT_Thread_service_extension_stream_offset = 1904;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -18381,7 +18487,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1800;
+ AOT_Thread_execution_state_offset = 1808;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -18403,14 +18509,14 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1776;
+ AOT_Thread_global_object_pool_offset = 1784;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1832;
+ AOT_Thread_exit_through_ffi_offset = 1840;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
- 1904;
+ 1912;
static constexpr dart::compiler::target::word
AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
@@ -18467,11 +18573,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 744;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1784;
+ 1792;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1792;
+ AOT_Thread_saved_shadow_call_stack_offset = 1800;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1808;
+ AOT_Thread_safepoint_state_offset = 1816;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -18495,24 +18601,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 1688;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 1696;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 1680;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 1696;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 1704;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1704;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1712;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1712;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1720;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1720;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1728;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1728;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1736;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1736;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1744;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 1744;
+ 1752;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1752;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -18527,16 +18635,16 @@
AOT_Thread_write_barrier_mask_offset = 64;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1816;
+ 1824;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1824;
+ AOT_Thread_callback_stack_return_offset = 1832;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 1856;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1864;
+ 1864;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1872;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 704;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 1872;
+ 1880;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0;
static constexpr dart::compiler::target::word
@@ -18992,23 +19100,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 1112;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 1072;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 1056;
+ AOT_ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 1088;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
16;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -19050,9 +19160,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1832;
+ AOT_Thread_active_exception_offset = 1840;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1840;
+ AOT_Thread_active_stacktrace_offset = 1848;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -19076,7 +19186,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1912;
+ 1920;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -19091,13 +19201,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 272;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1960;
+ 1968;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 1920;
+ AOT_Thread_double_truncate_round_supported_offset = 1928;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 1968;
+ AOT_Thread_service_extension_stream_offset = 1976;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -19114,7 +19224,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1872;
+ AOT_Thread_execution_state_offset = 1880;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -19136,14 +19246,14 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1848;
+ AOT_Thread_global_object_pool_offset = 1856;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1904;
+ AOT_Thread_exit_through_ffi_offset = 1912;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
- 1976;
+ 1984;
static constexpr dart::compiler::target::word
AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
@@ -19200,11 +19310,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 744;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1856;
+ 1864;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1864;
+ AOT_Thread_saved_shadow_call_stack_offset = 1872;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1880;
+ AOT_Thread_safepoint_state_offset = 1888;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -19228,24 +19338,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 1768;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 1752;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 1768;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 1776;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1776;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1784;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1784;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1792;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1792;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1800;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1800;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1808;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1808;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1816;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 1816;
+ 1824;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1824;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1832;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -19260,16 +19372,16 @@
AOT_Thread_write_barrier_mask_offset = 64;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1888;
+ 1896;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1896;
+ AOT_Thread_callback_stack_return_offset = 1904;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 1928;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1936;
+ 1936;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1944;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 704;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 1944;
+ 1952;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0;
static constexpr dart::compiler::target::word
@@ -19725,23 +19837,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 524;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 556;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 528;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 560;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 520;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 536;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 540;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 548;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 552;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 528;
+ AOT_ObjectStore_suspend_state_return_async_offset = 532;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 532;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 536;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 544;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 548;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 552;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 556;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 540;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 544;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
12;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 4;
@@ -19782,9 +19896,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 412;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 916;
+ AOT_Thread_active_exception_offset = 920;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 920;
+ AOT_Thread_active_stacktrace_offset = 924;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 304;
static constexpr dart::compiler::target::word
@@ -19808,7 +19922,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 212;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 956;
+ 960;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 216;
static constexpr dart::compiler::target::word
@@ -19827,7 +19941,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 44;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 960;
+ AOT_Thread_double_truncate_round_supported_offset = 964;
static constexpr dart::compiler::target::word
AOT_Thread_service_extension_stream_offset = 996;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
@@ -19846,7 +19960,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 284;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 936;
+ AOT_Thread_execution_state_offset = 940;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 288;
static constexpr dart::compiler::target::word
@@ -19868,11 +19982,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 408;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 924;
+ AOT_Thread_global_object_pool_offset = 928;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 140;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 952;
+ AOT_Thread_exit_through_ffi_offset = 956;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
1000;
@@ -19931,11 +20045,11 @@
112;
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 380;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 928;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 932;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 932;
+ AOT_Thread_saved_shadow_call_stack_offset = 936;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 940;
+ AOT_Thread_safepoint_state_offset = 944;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 276;
static constexpr dart::compiler::target::word
@@ -19959,24 +20073,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 880;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 884;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 876;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 884;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 888;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 888;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 892;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 892;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 896;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 896;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 900;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 900;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 904;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 904;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 908;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 908;
+ 912;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 912;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 916;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 76;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 48;
@@ -19991,9 +20107,9 @@
AOT_Thread_write_barrier_mask_offset = 32;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 36;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 944;
+ 948;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 948;
+ AOT_Thread_callback_stack_return_offset = 952;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
968;
static constexpr dart::compiler::target::word AOT_Thread_random_offset = 976;
@@ -20456,23 +20572,25 @@
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_await_offset = 1048;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_handle_exception_offset = 1112;
+ AOT_ObjectStore_suspend_state_await_with_type_check_offset = 1056;
+static constexpr dart::compiler::target::word
+ AOT_ObjectStore_suspend_state_handle_exception_offset = 1120;
static constexpr dart::compiler::target::word
AOT_ObjectStore_suspend_state_init_async_offset = 1040;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_async_star_offset = 1072;
+ AOT_ObjectStore_suspend_state_init_async_star_offset = 1080;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_init_sync_star_offset = 1096;
+ AOT_ObjectStore_suspend_state_init_sync_star_offset = 1104;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_offset = 1056;
+ AOT_ObjectStore_suspend_state_return_async_offset = 1064;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1064;
+ AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1072;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_return_async_star_offset = 1088;
+ AOT_ObjectStore_suspend_state_return_async_star_offset = 1096;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1104;
+ AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1112;
static constexpr dart::compiler::target::word
- AOT_ObjectStore_suspend_state_yield_async_star_offset = 1080;
+ AOT_ObjectStore_suspend_state_yield_async_star_offset = 1088;
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
16;
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -20514,9 +20632,9 @@
static constexpr dart::compiler::target::word
AOT_Thread_AllocateArray_entry_point_offset = 808;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1816;
+ AOT_Thread_active_exception_offset = 1824;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1824;
+ AOT_Thread_active_stacktrace_offset = 1832;
static constexpr dart::compiler::target::word
AOT_Thread_array_write_barrier_entry_point_offset = 592;
static constexpr dart::compiler::target::word
@@ -20540,7 +20658,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_stub_offset = 408;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1896;
+ 1904;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 416;
static constexpr dart::compiler::target::word
@@ -20555,13 +20673,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 272;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1944;
+ 1952;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 88;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 1904;
+ AOT_Thread_double_truncate_round_supported_offset = 1912;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 1952;
+ AOT_Thread_service_extension_stream_offset = 1960;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
680;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -20578,7 +20696,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1856;
+ AOT_Thread_execution_state_offset = 1864;
static constexpr dart::compiler::target::word
AOT_Thread_exit_safepoint_stub_offset = 560;
static constexpr dart::compiler::target::word
@@ -20600,14 +20718,14 @@
static constexpr dart::compiler::target::word
AOT_Thread_float_zerow_address_offset = 800;
static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1832;
+ AOT_Thread_global_object_pool_offset = 1840;
static constexpr dart::compiler::target::word
AOT_Thread_invoke_dart_code_stub_offset = 264;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1888;
+ AOT_Thread_exit_through_ffi_offset = 1896;
static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
- 1960;
+ 1968;
static constexpr dart::compiler::target::word
AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
@@ -20664,11 +20782,11 @@
static constexpr dart::compiler::target::word
AOT_Thread_predefined_symbols_address_offset = 744;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1840;
+ 1848;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1848;
+ AOT_Thread_saved_shadow_call_stack_offset = 1856;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1864;
+ AOT_Thread_safepoint_state_offset = 1872;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 536;
static constexpr dart::compiler::target::word
@@ -20692,24 +20810,26 @@
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_await_entry_point_offset = 1744;
static constexpr dart::compiler::target::word
+ AOT_Thread_suspend_state_await_with_type_check_entry_point_offset = 1752;
+static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_init_async_entry_point_offset = 1736;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_entry_point_offset = 1752;
+ AOT_Thread_suspend_state_return_async_entry_point_offset = 1760;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1760;
+ AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1768;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1768;
+ AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1776;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1776;
+ AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1784;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1784;
+ AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1792;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1792;
+ AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1800;
static constexpr dart::compiler::target::word
AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
- 1800;
+ 1808;
static constexpr dart::compiler::target::word
- AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1808;
+ AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1816;
static constexpr dart::compiler::target::word
AOT_Thread_top_exit_frame_info_offset = 152;
static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -20724,16 +20844,16 @@
AOT_Thread_write_barrier_mask_offset = 64;
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1872;
+ 1880;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1880;
+ AOT_Thread_callback_stack_return_offset = 1888;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 1912;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1920;
+ 1920;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1928;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 704;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 1928;
+ 1936;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0;
static constexpr dart::compiler::target::word
diff --git a/runtime/vm/compiler/runtime_offsets_list.h b/runtime/vm/compiler/runtime_offsets_list.h
index c290e78..8e18ab9 100644
--- a/runtime/vm/compiler/runtime_offsets_list.h
+++ b/runtime/vm/compiler/runtime_offsets_list.h
@@ -182,6 +182,7 @@
FIELD(ObjectStore, string_type_offset) \
FIELD(ObjectStore, type_type_offset) \
FIELD(ObjectStore, suspend_state_await_offset) \
+ FIELD(ObjectStore, suspend_state_await_with_type_check_offset) \
FIELD(ObjectStore, suspend_state_handle_exception_offset) \
FIELD(ObjectStore, suspend_state_init_async_offset) \
FIELD(ObjectStore, suspend_state_init_async_star_offset) \
@@ -306,6 +307,7 @@
FIELD(Thread, stack_overflow_shared_without_fpu_regs_stub_offset) \
FIELD(Thread, store_buffer_block_offset) \
FIELD(Thread, suspend_state_await_entry_point_offset) \
+ FIELD(Thread, suspend_state_await_with_type_check_entry_point_offset) \
FIELD(Thread, suspend_state_init_async_entry_point_offset) \
FIELD(Thread, suspend_state_return_async_entry_point_offset) \
FIELD(Thread, suspend_state_return_async_not_future_entry_point_offset) \
diff --git a/runtime/vm/compiler/stub_code_compiler.cc b/runtime/vm/compiler/stub_code_compiler.cc
index c30dc9b..335d9ea 100644
--- a/runtime/vm/compiler/stub_code_compiler.cc
+++ b/runtime/vm/compiler/stub_code_compiler.cc
@@ -1892,9 +1892,11 @@
void StubCodeCompiler::GenerateSuspendStub(
Assembler* assembler,
bool call_suspend_function,
+ bool pass_type_arguments,
intptr_t suspend_entry_point_offset_in_thread,
intptr_t suspend_function_offset_in_object_store) {
const Register kArgument = SuspendStubABI::kArgumentReg;
+ const Register kTypeArgs = SuspendStubABI::kTypeArgsReg;
const Register kTemp = SuspendStubABI::kTempReg;
const Register kFrameSize = SuspendStubABI::kFrameSizeReg;
const Register kSuspendState = SuspendStubABI::kSuspendStateReg;
@@ -1917,6 +1919,10 @@
__ EnterStubFrame();
+ if (pass_type_arguments) {
+ __ PushRegister(kTypeArgs);
+ }
+
__ CompareClassId(kSuspendState, kSuspendStateCid, kTemp);
if (FLAG_precompiled_mode) {
@@ -2042,8 +2048,14 @@
__ Bind(&call_dart);
if (call_suspend_function) {
__ Comment("Call suspend Dart function");
+ if (pass_type_arguments) {
+ __ LoadObject(ARGS_DESC_REG,
+ ArgumentsDescriptorBoxed(/*type_args_len=*/1,
+ /*num_arguments=*/2));
+ }
CallDartCoreLibraryFunction(assembler, suspend_entry_point_offset_in_thread,
- suspend_function_offset_in_object_store);
+ suspend_function_offset_in_object_store,
+ /*uses_args_desc=*/pass_type_arguments);
} else {
// SuspendStub returns either the result of Dart callback,
// or SuspendStub argument (if Dart callback is not used).
@@ -2137,14 +2149,25 @@
void StubCodeCompiler::GenerateAwaitStub(Assembler* assembler) {
GenerateSuspendStub(assembler,
/*call_suspend_function=*/true,
+ /*pass_type_arguments=*/false,
target::Thread::suspend_state_await_entry_point_offset(),
target::ObjectStore::suspend_state_await_offset());
}
+void StubCodeCompiler::GenerateAwaitWithTypeCheckStub(Assembler* assembler) {
+ GenerateSuspendStub(
+ assembler,
+ /*call_suspend_function=*/true,
+ /*pass_type_arguments=*/true,
+ target::Thread::suspend_state_await_with_type_check_entry_point_offset(),
+ target::ObjectStore::suspend_state_await_with_type_check_offset());
+}
+
void StubCodeCompiler::GenerateYieldAsyncStarStub(Assembler* assembler) {
GenerateSuspendStub(
assembler,
/*call_suspend_function=*/true,
+ /*pass_type_arguments=*/false,
target::Thread::suspend_state_yield_async_star_entry_point_offset(),
target::ObjectStore::suspend_state_yield_async_star_offset());
}
@@ -2154,6 +2177,7 @@
GenerateSuspendStub(
assembler,
/*call_suspend_function=*/true,
+ /*pass_type_arguments=*/false,
target::Thread::
suspend_state_suspend_sync_star_at_start_entry_point_offset(),
target::ObjectStore::suspend_state_suspend_sync_star_at_start_offset());
@@ -2162,7 +2186,8 @@
void StubCodeCompiler::GenerateSuspendSyncStarAtYieldStub(
Assembler* assembler) {
GenerateSuspendStub(assembler,
- /*call_suspend_function=*/false, -1, -1);
+ /*call_suspend_function=*/false,
+ /*pass_type_arguments=*/false, -1, -1);
}
void StubCodeCompiler::GenerateInitSuspendableFunctionStub(
diff --git a/runtime/vm/compiler/stub_code_compiler.h b/runtime/vm/compiler/stub_code_compiler.h
index 1707063..73e2027 100644
--- a/runtime/vm/compiler/stub_code_compiler.h
+++ b/runtime/vm/compiler/stub_code_compiler.h
@@ -207,6 +207,7 @@
static void GenerateSuspendStub(
Assembler* assembler,
bool call_suspend_function,
+ bool pass_type_arguments,
intptr_t suspend_entry_point_offset_in_thread,
intptr_t suspend_function_offset_in_object_store);
static void GenerateInitSuspendableFunctionStub(
diff --git a/runtime/vm/constants_arm.h b/runtime/vm/constants_arm.h
index 2bf84c6..c9a7139 100644
--- a/runtime/vm/constants_arm.h
+++ b/runtime/vm/constants_arm.h
@@ -573,10 +573,11 @@
static const Register kResultReg = R0;
};
-// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub,
+// ABI for SuspendStub (AwaitStub, AwaitWithTypeCheckStub, YieldAsyncStarStub,
// SuspendSyncStarAtStartStub, SuspendSyncStarAtYieldStub).
struct SuspendStubABI {
static const Register kArgumentReg = R0;
+ static const Register kTypeArgsReg = R1; // Can be the same as kTempReg
static const Register kTempReg = R1;
static const Register kFrameSizeReg = R2;
static const Register kSuspendStateReg = R3;
diff --git a/runtime/vm/constants_arm64.h b/runtime/vm/constants_arm64.h
index 1e12a6c..6c70b20 100644
--- a/runtime/vm/constants_arm64.h
+++ b/runtime/vm/constants_arm64.h
@@ -403,10 +403,11 @@
static const Register kResultReg = R0;
};
-// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub,
+// ABI for SuspendStub (AwaitStub, AwaitWithTypeCheckStub, YieldAsyncStarStub,
// SuspendSyncStarAtStartStub, SuspendSyncStarAtYieldStub).
struct SuspendStubABI {
static const Register kArgumentReg = R0;
+ static const Register kTypeArgsReg = R1; // Can be the same as kTempReg
static const Register kTempReg = R1;
static const Register kFrameSizeReg = R2;
static const Register kSuspendStateReg = R3;
diff --git a/runtime/vm/constants_ia32.h b/runtime/vm/constants_ia32.h
index 8c177ef..0bb45c9 100644
--- a/runtime/vm/constants_ia32.h
+++ b/runtime/vm/constants_ia32.h
@@ -292,10 +292,11 @@
static const Register kResultReg = EAX;
};
-// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub,
+// ABI for SuspendStub (AwaitStub, AwaitWithTypeCheckStub, YieldAsyncStarStub,
// SuspendSyncStarAtStartStub, SuspendSyncStarAtYieldStub).
struct SuspendStubABI {
static const Register kArgumentReg = EAX;
+ static const Register kTypeArgsReg = EDX; // Can be the same as kTempReg
static const Register kTempReg = EDX;
static const Register kFrameSizeReg = ECX;
static const Register kSuspendStateReg = EBX;
diff --git a/runtime/vm/constants_riscv.h b/runtime/vm/constants_riscv.h
index 15d2285..029a7d4 100644
--- a/runtime/vm/constants_riscv.h
+++ b/runtime/vm/constants_riscv.h
@@ -412,10 +412,11 @@
static constexpr Register kResultReg = A0;
};
-// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub,
+// ABI for SuspendStub (AwaitStub, AwaitWithTypeCheckStub, YieldAsyncStarStub,
// SuspendSyncStarAtStartStub, SuspendSyncStarAtYieldStub).
struct SuspendStubABI {
static const Register kArgumentReg = A0;
+ static const Register kTypeArgsReg = T0; // Can be the same as kTempReg
static const Register kTempReg = T0;
static const Register kFrameSizeReg = T1;
static const Register kSuspendStateReg = T2;
diff --git a/runtime/vm/constants_x64.h b/runtime/vm/constants_x64.h
index 7f27b54..802007f 100644
--- a/runtime/vm/constants_x64.h
+++ b/runtime/vm/constants_x64.h
@@ -373,10 +373,11 @@
static const Register kResultReg = RAX;
};
-// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub,
+// ABI for SuspendStub (AwaitStub, AwaitWithTypeCheckStub, YieldAsyncStarStub,
// SuspendSyncStarAtStartStub, SuspendSyncStarAtYieldStub).
struct SuspendStubABI {
static const Register kArgumentReg = RAX;
+ static const Register kTypeArgsReg = RDX; // Can be the same as kTempReg
static const Register kTempReg = RDX;
static const Register kFrameSizeReg = RCX;
static const Register kSuspendStateReg = RBX;
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 443f38f..6174144 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -8054,22 +8054,27 @@
int32_t Function::FfiCallbackId() const {
ASSERT(IsFfiTrampoline());
- if (FfiCallbackTarget() == Object::null()) {
- return -1;
- }
- const Object& obj = Object::Handle(data());
+ ASSERT(FfiCallbackTarget() != Object::null());
+
+ const auto& obj = Object::Handle(data());
ASSERT(!obj.IsNull());
- const FfiTrampolineData& trampoline_data = FfiTrampolineData::Cast(obj);
- int32_t callback_id = trampoline_data.callback_id();
-#if defined(DART_PRECOMPILED_RUNTIME)
- ASSERT(callback_id >= 0);
-#else
- if (callback_id < 0) {
- callback_id = Thread::Current()->AllocateFfiCallbackId();
- trampoline_data.set_callback_id(callback_id);
- }
-#endif
- return callback_id;
+ const auto& trampoline_data = FfiTrampolineData::Cast(obj);
+
+ ASSERT(trampoline_data.callback_id() != -1);
+
+ return trampoline_data.callback_id();
+}
+
+void Function::AssignFfiCallbackId(int32_t callback_id) const {
+ ASSERT(IsFfiTrampoline());
+ ASSERT(FfiCallbackTarget() != Object::null());
+
+ const auto& obj = Object::Handle(data());
+ ASSERT(!obj.IsNull());
+ const auto& trampoline_data = FfiTrampolineData::Cast(obj);
+
+ ASSERT(trampoline_data.callback_id() == -1);
+ trampoline_data.set_callback_id(callback_id);
}
bool Function::FfiIsLeaf() const {
@@ -25911,6 +25916,19 @@
return result.ptr();
}
+TypedDataPtr TypedData::Grow(const TypedData& current,
+ intptr_t len,
+ Heap::Space space) {
+ ASSERT(len > current.Length());
+ const auto& new_td =
+ TypedData::Handle(TypedData::New(current.GetClassId(), len, space));
+ {
+ NoSafepointScope no_safepoint_scope;
+ memcpy(new_td.DataAddr(0), current.DataAddr(0), current.LengthInBytes());
+ }
+ return new_td.ptr();
+}
+
const char* TypedData::ToCString() const {
const Class& cls = Class::Handle(clazz());
return cls.ScrubbedNameCString();
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index df49d11..ac6664a 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -2769,6 +2769,9 @@
// -1 for Dart -> native calls.
int32_t FfiCallbackId() const;
+ // Should be called when ffi trampoline function object is created.
+ void AssignFfiCallbackId(int32_t callback_id) const;
+
// Can only be called on FFI trampolines.
bool FfiIsLeaf() const;
@@ -11227,6 +11230,10 @@
intptr_t len,
Heap::Space space = Heap::kNew);
+ static TypedDataPtr Grow(const TypedData& current,
+ intptr_t len,
+ Heap::Space space = Heap::kNew);
+
static void Copy(const TypedDataBase& dst,
intptr_t dst_offset_in_bytes,
const TypedDataBase& src,
diff --git a/runtime/vm/object_store.cc b/runtime/vm/object_store.cc
index 1146115..886896f 100644
--- a/runtime/vm/object_store.cc
+++ b/runtime/vm/object_store.cc
@@ -300,6 +300,10 @@
ASSERT(!function.IsNull());
set_suspend_state_await(function);
+ function = cls.LookupFunctionAllowPrivate(Symbols::_awaitWithTypeCheck());
+ ASSERT(!function.IsNull());
+ set_suspend_state_await_with_type_check(function);
+
function = cls.LookupFunctionAllowPrivate(Symbols::_returnAsync());
ASSERT(!function.IsNull());
set_suspend_state_return_async(function);
diff --git a/runtime/vm/object_store.h b/runtime/vm/object_store.h
index fc71c35..656fafc 100644
--- a/runtime/vm/object_store.h
+++ b/runtime/vm/object_store.h
@@ -177,6 +177,7 @@
RW(Function, async_star_stream_controller_add_stream) \
RW(Function, suspend_state_init_async) \
RW(Function, suspend_state_await) \
+ RW(Function, suspend_state_await_with_type_check) \
RW(Function, suspend_state_return_async) \
RW(Function, suspend_state_return_async_not_future) \
RW(Function, suspend_state_init_async_star) \
@@ -268,8 +269,11 @@
RW(Code, nullable_type_parameter_tts_stub) \
RW(Code, type_parameter_tts_stub) \
RW(Code, unreachable_tts_stub) \
+ RW(Array, ffi_callback_functions) \
RW(Code, slow_tts_stub) \
+ /* Roots for JIT/AOT snapshots are up until here (see to_snapshot() below)*/ \
RW(Code, await_stub) \
+ RW(Code, await_with_type_check_stub) \
RW(Code, clone_suspend_state_stub) \
RW(Code, init_async_stub) \
RW(Code, resume_stub) \
@@ -285,7 +289,6 @@
RW(GrowableObjectArray, instructions_tables) \
RW(Array, obfuscation_map) \
RW(Array, loading_unit_uris) \
- RW(Array, ffi_callback_functions) \
RW(Class, ffi_pointer_class) \
RW(Class, ffi_native_type_class) \
// Please remember the last entry must be referred in the 'to' function below.
@@ -365,6 +368,7 @@
DO(init_late_instance_field_stub, InitLateInstanceField) \
DO(init_late_final_instance_field_stub, InitLateFinalInstanceField) \
DO(await_stub, Await) \
+ DO(await_with_type_check_stub, AwaitWithTypeCheck) \
DO(clone_suspend_state_stub, CloneSuspendState) \
DO(init_async_stub, InitAsync) \
DO(resume_stub, Resume) \
diff --git a/runtime/vm/object_test.cc b/runtime/vm/object_test.cc
index 7ed7c7e..48b4e15 100644
--- a/runtime/vm/object_test.cc
+++ b/runtime/vm/object_test.cc
@@ -2310,6 +2310,37 @@
EXPECT_EQ(1, new_array.Length());
}
+ISOLATE_UNIT_TEST_CASE(TypedData_Grow) {
+ const intptr_t kSmallSize = 42;
+ const intptr_t kLargeSize = 1000;
+
+ Random random(42);
+
+ for (classid_t cid = kTypedDataInt8ArrayCid; cid < kByteDataViewCid;
+ cid += 4) {
+ ASSERT(IsTypedDataClassId(cid));
+
+ const auto& small = TypedData::Handle(TypedData::New(cid, kSmallSize));
+ EXPECT_EQ(small.LengthInBytes(), kSmallSize * small.ElementSizeInBytes());
+
+ for (intptr_t i = 0; i < TypedData::ElementSizeFor(cid) * kSmallSize; i++) {
+ small.SetUint8(i, static_cast<uint8_t>(random.NextUInt64() & 0xff));
+ }
+
+ const auto& big = TypedData::Handle(TypedData::Grow(small, kLargeSize));
+ EXPECT_EQ(small.GetClassId(), big.GetClassId());
+ EXPECT_EQ(big.LengthInBytes(), kLargeSize * big.ElementSizeInBytes());
+
+ for (intptr_t i = 0; i < TypedData::ElementSizeFor(cid) * kSmallSize; i++) {
+ EXPECT_EQ(small.GetUint8(i), big.GetUint8(i));
+ }
+ for (intptr_t i = TypedData::ElementSizeFor(cid) * kSmallSize;
+ i < TypedData::ElementSizeFor(cid) * kLargeSize; i++) {
+ EXPECT_EQ(0, big.GetUint8(i));
+ }
+ }
+}
+
ISOLATE_UNIT_TEST_CASE(InternalTypedData) {
uint8_t data[] = {253, 254, 255, 0, 1, 2, 3, 4};
intptr_t data_length = ARRAY_SIZE(data);
diff --git a/runtime/vm/stub_code_list.h b/runtime/vm/stub_code_list.h
index 1f8a82c..6d99e14 100644
--- a/runtime/vm/stub_code_list.h
+++ b/runtime/vm/stub_code_list.h
@@ -160,6 +160,7 @@
V(InstantiateTypeArgumentsMayShareFunctionTA) \
V(NoSuchMethodDispatcher) \
V(Await) \
+ V(AwaitWithTypeCheck) \
V(InitAsync) \
V(Resume) \
V(ReturnAsync) \
diff --git a/runtime/vm/symbols.h b/runtime/vm/symbols.h
index ad65d07..a2bdefe 100644
--- a/runtime/vm/symbols.h
+++ b/runtime/vm/symbols.h
@@ -418,6 +418,7 @@
V(_WeakProperty, "_WeakProperty") \
V(_WeakReference, "_WeakReference") \
V(_await, "_await") \
+ V(_awaitWithTypeCheck, "_awaitWithTypeCheck") \
V(_classRangeCheck, "_classRangeCheck") \
V(_current, "_current") \
V(_ensureScheduleImmediate, "_ensureScheduleImmediate") \
diff --git a/runtime/vm/thread.cc b/runtime/vm/thread.cc
index 993da29..545ea2d 100644
--- a/runtime/vm/thread.cc
+++ b/runtime/vm/thread.cc
@@ -1037,95 +1037,84 @@
}
}
-const intptr_t kInitialCallbackIdsReserved = 16;
-int32_t Thread::AllocateFfiCallbackId() {
- Zone* Z = Thread::Current()->zone();
- if (ffi_callback_code_ == GrowableObjectArray::null()) {
- ffi_callback_code_ = GrowableObjectArray::New(kInitialCallbackIdsReserved);
- }
- const auto& array = GrowableObjectArray::Handle(Z, ffi_callback_code_);
- array.Add(Code::Handle(Z, Code::null()));
- const int32_t id = array.Length() - 1;
-
- // Allocate a native callback trampoline if necessary.
-#if !defined(DART_PRECOMPILED_RUNTIME)
- if (NativeCallbackTrampolines::Enabled()) {
- auto* const tramps = isolate()->native_callback_trampolines();
- ASSERT(tramps->next_callback_id() == id);
- tramps->AllocateTrampoline();
- }
-#endif
-
- return id;
-}
-
-void Thread::SetFfiCallbackCode(int32_t callback_id, const Code& code) {
- Zone* Z = Thread::Current()->zone();
-
- /// In AOT the callback ID might have been allocated during compilation but
- /// 'ffi_callback_code_' is initialized to empty again when the program
- /// starts. Therefore we may need to initialize or expand it to accomodate
- /// the callback ID.
+void Thread::EnsureFfiCallbackMetadata(intptr_t callback_id) {
+ static constexpr intptr_t kInitialCallbackIdsReserved = 16;
if (ffi_callback_code_ == GrowableObjectArray::null()) {
ffi_callback_code_ = GrowableObjectArray::New(kInitialCallbackIdsReserved);
}
-
- const auto& array = GrowableObjectArray::Handle(Z, ffi_callback_code_);
-
- if (callback_id >= array.Length()) {
- const int32_t capacity = array.Capacity();
- if (callback_id >= capacity) {
- // Ensure both that we grow enough and an exponential growth strategy.
- const int32_t new_capacity =
- Utils::Maximum(callback_id + 1, capacity * 2);
- array.Grow(new_capacity);
- }
- array.SetLength(callback_id + 1);
- }
-
- array.SetAt(callback_id, code);
-}
-
-void Thread::SetFfiCallbackStackReturn(int32_t callback_id,
- intptr_t stack_return_delta) {
#if defined(TARGET_ARCH_IA32)
-#else
- UNREACHABLE();
-#endif
-
- Zone* Z = Thread::Current()->zone();
-
- /// In AOT the callback ID might have been allocated during compilation but
- /// 'ffi_callback_code_' is initialized to empty again when the program
- /// starts. Therefore we may need to initialize or expand it to accomodate
- /// the callback ID.
-
if (ffi_callback_stack_return_ == TypedData::null()) {
ffi_callback_stack_return_ = TypedData::New(
kTypedDataInt8ArrayCid, kInitialCallbackIdsReserved, Heap::kOld);
}
+#endif // defined(TARGET_ARCH_IA32)
- auto& array = TypedData::Handle(Z, ffi_callback_stack_return_);
+ const auto& code_array =
+ GrowableObjectArray::Handle(zone(), ffi_callback_code_);
+#if !defined(DART_PRECOMPILED_RUNTIME)
+ auto* const tramps = isolate()->native_callback_trampolines();
+#if defined(TARGET_ARCH_IA32)
+ auto& stack_array = TypedData::Handle(zone(), ffi_callback_stack_return_);
+#endif
+#endif
- if (callback_id >= array.Length()) {
- const int32_t capacity = array.Length();
- if (callback_id >= capacity) {
- // Ensure both that we grow enough and an exponential growth strategy.
- const int32_t new_capacity =
- Utils::Maximum(callback_id + 1, capacity * 2);
- const auto& new_array = TypedData::Handle(
- Z, TypedData::New(kTypedDataUint8ArrayCid, new_capacity, Heap::kOld));
- for (intptr_t i = 0; i < capacity; i++) {
- new_array.SetUint8(i, array.GetUint8(i));
- }
- array ^= new_array.ptr();
- ffi_callback_stack_return_ = new_array.ptr();
+#if !defined(DART_PRECOMPILED_RUNTIME)
+ // Verify invariants of the 3 arrays hold.
+ ASSERT(code_array.Length() == tramps->next_callback_id());
+#if defined(TARGET_ARCH_IA32)
+ ASSERT(code_array.Length() <= stack_array.Length());
+#endif
+#endif // !defined(DART_PRECOMPILED_RUNTIME)
+
+ if (code_array.Length() <= callback_id) {
+ // Ensure we've enough space in the 3 arrays.
+ while (!(callback_id < code_array.Length())) {
+ code_array.Add(Code::null_object());
+#if !defined(DART_PRECOMPILED_RUNTIME)
+ tramps->AllocateTrampoline();
+#endif
}
+
+#if defined(TARGET_ARCH_IA32)
+ if (callback_id >= stack_array.Length()) {
+ const int32_t capacity = stack_array.Length();
+ if (callback_id >= capacity) {
+ // Ensure both that we grow enough and an exponential growth strategy.
+ const int32_t new_capacity =
+ Utils::Maximum(callback_id + 1, capacity * 2);
+ stack_array = TypedData::Grow(stack_array, new_capacity);
+ ffi_callback_stack_return_ = stack_array.ptr();
+ }
+ }
+#endif // defined(TARGET_ARCH_IA32)
}
- ASSERT(callback_id < array.Length());
- array.SetUint8(callback_id, stack_return_delta);
+#if !defined(DART_PRECOMPILED_RUNTIME)
+ // Verify invariants of the 3 arrays (still) hold.
+ ASSERT(code_array.Length() == tramps->next_callback_id());
+#if defined(TARGET_ARCH_IA32)
+ ASSERT(code_array.Length() <= stack_array.Length());
+#endif
+#endif
+ ASSERT(callback_id < code_array.Length());
+}
+
+void Thread::SetFfiCallbackCode(const Function& ffi_trampoline,
+ const Code& code,
+ intptr_t stack_return_delta) {
+ const intptr_t callback_id = ffi_trampoline.FfiCallbackId();
+ EnsureFfiCallbackMetadata(callback_id);
+
+ const auto& code_array =
+ GrowableObjectArray::Handle(zone(), ffi_callback_code_);
+ code_array.SetAt(callback_id, code);
+
+#if defined(TARGET_ARCH_IA32)
+ const auto& stack_delta_array =
+ TypedData::Handle(zone(), ffi_callback_stack_return_);
+ stack_delta_array.SetUint8(callback_id, stack_return_delta);
+#endif // defined(TARGET_ARCH_IA32)
}
void Thread::VerifyCallbackIsolate(int32_t callback_id, uword entry) {
diff --git a/runtime/vm/thread.h b/runtime/vm/thread.h
index 0b6c6d9..8829bd7 100644
--- a/runtime/vm/thread.h
+++ b/runtime/vm/thread.h
@@ -184,6 +184,7 @@
#define CACHED_FUNCTION_ENTRY_POINTS_LIST(V) \
V(suspend_state_init_async) \
V(suspend_state_await) \
+ V(suspend_state_await_with_type_check) \
V(suspend_state_return_async) \
V(suspend_state_return_async_not_future) \
V(suspend_state_init_async_star) \
@@ -1072,20 +1073,13 @@
}
}
- int32_t AllocateFfiCallbackId();
-
// Store 'code' for the native callback identified by 'callback_id'.
//
// Expands the callback code array as necessary to accomodate the callback
// ID.
- void SetFfiCallbackCode(int32_t callback_id, const Code& code);
-
- // Store 'stack_return' for the native callback identified by 'callback_id'.
- //
- // Expands the callback stack return array as necessary to accomodate the
- // callback ID.
- void SetFfiCallbackStackReturn(int32_t callback_id,
- intptr_t stack_return_delta);
+ void SetFfiCallbackCode(const Function& ffi_trampoline,
+ const Code& code,
+ intptr_t stack_return_delta);
// Ensure that 'callback_id' refers to a valid callback in this isolate.
//
@@ -1351,6 +1345,10 @@
void FinishEntering(TaskKind kind);
void PrepareLeaving();
+ // Ensures that we have allocated neccessary thread-local data structures for
+ // [callback_id].
+ void EnsureFfiCallbackMetadata(intptr_t callback_id);
+
static void SetCurrent(Thread* current) { OSThread::SetCurrentTLS(current); }
#define REUSABLE_FRIEND_DECLARATION(name) \
diff --git a/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart b/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart
index 5f6d7b2..97944df 100644
--- a/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart
+++ b/sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart
@@ -815,15 +815,17 @@
///
/// Libraries are not actually deferred in DDC, so this just records the import
/// for runtime validation, then returns a future that completes immediately.
-Future loadLibrary(
+Future<void> loadLibrary(
@notNull String enclosingLibrary, @notNull String importPrefix) {
- var result = JS('', '#.get(#)', deferredImports, enclosingLibrary);
- if (JS<bool>('', '# === void 0', result)) {
- JS('', '#.set(#, # = new Set())', deferredImports, enclosingLibrary,
- result);
+ _loadLibrary() {
+ var result = JS('', '#.get(#)', deferredImports, enclosingLibrary);
+ if (JS<bool>('', '# === void 0', result)) {
+ JS('', '#.set(#, # = new Set())', deferredImports, enclosingLibrary,
+ result);
+ }
+ JS('', '#.add(#)', result, importPrefix);
}
- JS('', '#.add(#)', result, importPrefix);
- return Future.value();
+ return Future(_loadLibrary);
}
void checkDeferredIsLoaded(
diff --git a/sdk/lib/_internal/vm/lib/async_patch.dart b/sdk/lib/_internal/vm/lib/async_patch.dart
index 78914b6..6753ed8 100644
--- a/sdk/lib/_internal/vm/lib/async_patch.dart
+++ b/sdk/lib/_internal/vm/lib/async_patch.dart
@@ -311,6 +311,33 @@
@pragma("vm:entry-point", "call")
@pragma("vm:invisible")
+ Object? _awaitWithTypeCheck<T>(Object? object) {
+ if (_thenCallback == null) {
+ _createAsyncCallbacks();
+ }
+ // Declare a new variable to avoid type promotion of 'object' to
+ // 'Future<T>', as it would disable further type promotion to '_Future'.
+ final obj = object;
+ if (obj is Future<T>) {
+ if (object is _Future) {
+ if (object._isComplete) {
+ _awaitCompletedFuture(object);
+ } else {
+ object._thenAwait<dynamic>(
+ unsafeCast<dynamic Function(dynamic)>(_thenCallback),
+ unsafeCast<dynamic Function(Object, StackTrace)>(_errorCallback));
+ }
+ } else {
+ _awaitUserDefinedFuture(obj);
+ }
+ } else {
+ _awaitNotFuture(object);
+ }
+ return _functionData;
+ }
+
+ @pragma("vm:entry-point", "call")
+ @pragma("vm:invisible")
static Future _returnAsync(Object suspendState, Object? returnValue) {
_Future future;
if (suspendState is _SuspendState) {
diff --git a/sdk/lib/_internal/vm/lib/typed_data_patch.dart b/sdk/lib/_internal/vm/lib/typed_data_patch.dart
index 6add8ca..c75a8c0 100644
--- a/sdk/lib/_internal/vm/lib/typed_data_patch.dart
+++ b/sdk/lib/_internal/vm/lib/typed_data_patch.dart
@@ -2156,8 +2156,11 @@
@pragma("vm:external-name", "TypedData_SetInt32x4")
external void _setInt32x4(int offsetInBytes, Int32x4 value);
+ @pragma("vm:recognized", "other")
+ @pragma("vm:exact-result-type", _Float64x2)
@pragma("vm:external-name", "TypedData_GetFloat64x2")
external Float64x2 _getFloat64x2(int offsetInBytes);
+ @pragma("vm:recognized", "other")
@pragma("vm:external-name", "TypedData_SetFloat64x2")
external void _setFloat64x2(int offsetInBytes, Float64x2 value);
@@ -5105,6 +5108,23 @@
_typedData._setFloat32x4(offsetInBytes + byteOffset, value);
}
+ Float64x2 getFloat64x2(int byteOffset, [Endian endian = Endian.big]) {
+ if (byteOffset < 0 || byteOffset + 15 >= length) {
+ throw new RangeError.range(byteOffset, 0, length - 15, "byteOffset");
+ }
+ // TODO(johnmccutchan) : Need to resolve this for endianity.
+ return _typedData._getFloat64x2(offsetInBytes + byteOffset);
+ }
+
+ void setFloat64x2(int byteOffset, Float64x2 value,
+ [Endian endian = Endian.big]) {
+ if (byteOffset < 0 || byteOffset + 15 >= length) {
+ throw new RangeError.range(byteOffset, 0, length - 15, "byteOffset");
+ }
+ // TODO(johnmccutchan) : Need to resolve this for endianity.
+ _typedData._setFloat64x2(offsetInBytes + byteOffset, value);
+ }
+
@pragma("vm:recognized", "other")
@pragma("vm:non-nullable-result-type")
@pragma("vm:prefer-inline")
diff --git a/sdk/lib/io/file_impl.dart b/sdk/lib/io/file_impl.dart
index c3a9a8d..4fc40e4 100644
--- a/sdk/lib/io/file_impl.dart
+++ b/sdk/lib/io/file_impl.dart
@@ -560,19 +560,8 @@
}
}
- Future<String> readAsString({Encoding encoding = utf8}) {
- // TODO(dart:io): If the change in async semantics to run synchronously
- // until await lands, this is as efficient as
- // return _tryDecode(await readAsBytes(), encoding);
- var stack = StackTrace.current;
- return readAsBytes().then((bytes) {
- try {
- return _tryDecode(bytes, encoding);
- } catch (e) {
- return new Future.error(e, stack);
- }
- });
- }
+ Future<String> readAsString({Encoding encoding = utf8}) async =>
+ _tryDecode(await readAsBytes(), encoding);
String readAsStringSync({Encoding encoding = utf8}) =>
_tryDecode(readAsBytesSync(), encoding);
diff --git a/tests/ffi/abi_specific_int_incomplete_jit_test.dart b/tests/ffi/abi_specific_int_incomplete_jit_test.dart
index 2ecb4c9..dfd8c1e 100644
--- a/tests/ffi/abi_specific_int_incomplete_jit_test.dart
+++ b/tests/ffi/abi_specific_int_incomplete_jit_test.dart
@@ -30,7 +30,6 @@
testInlineArray();
testInlineArray2();
testAsFunction();
- testFromFunction();
}
void testSizeOf() {
@@ -135,26 +134,3 @@
.asFunction<IncompleteArrayStruct Function()>();
});
}
-
-int myIncr(int a) => a + 1;
-
-IncompleteArrayStruct myIncompleteReturn() =>
- nullptr.cast<IncompleteArrayStruct>().ref;
-
-int myIncompleteArg(IncompleteArrayStruct a) => 5;
-
-void testFromFunction() {
- Expect.throws(() {
- Pointer.fromFunction<Incomplete Function(Int32)>(myIncr, 3);
- });
- Expect.throws(() {
- Pointer.fromFunction<Int32 Function(Incomplete)>(myIncr, 3);
- });
- Expect.throws(() {
- Pointer.fromFunction<IncompleteArrayStruct Function()>(myIncompleteReturn);
- });
- Expect.throws(() {
- Pointer.fromFunction<Int32 Function(IncompleteArrayStruct)>(
- myIncompleteArg, 3);
- });
-}
diff --git a/tests/ffi/ffi_callback_unique_test.dart b/tests/ffi/ffi_callback_unique_test.dart
new file mode 100644
index 0000000..1435bf2
--- /dev/null
+++ b/tests/ffi/ffi_callback_unique_test.dart
@@ -0,0 +1,38 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:ffi';
+
+import 'package:expect/expect.dart';
+
+void main() {
+ final a = <int>[];
+ final b = <int>[];
+ for (int i = 0; i < 10; ++i) {
+ // Several pointers for same call site.
+ a.add(
+ Pointer.fromFunction<Int Function()>(nativeToDartCallback, 0).address);
+ b.add(
+ Pointer.fromFunction<Int Function()>(nativeToDartCallback, 1).address);
+ }
+ // Another pointer from a different call site.
+ a.add(Pointer.fromFunction<Int Function()>(nativeToDartCallback, 0).address);
+ b.add(Pointer.fromFunction<Int Function()>(nativeToDartCallback, 1).address);
+
+ ensureEqualEntries(a);
+ ensureEqualEntries(b);
+
+ // The two functions have different exceptional return and should have
+ // therefore a different ffi trampoline.
+ Expect.notEquals(a.first, b.first);
+}
+
+void ensureEqualEntries(List<int> entries) {
+ final first = entries.first;
+ for (int i = 1; i < entries.length; ++i) {
+ Expect.equals(first, entries[i]);
+ }
+}
+
+int nativeToDartCallback() => 42;
diff --git a/tests/ffi_2/abi_specific_int_incomplete_jit_test.dart b/tests/ffi_2/abi_specific_int_incomplete_jit_test.dart
index b507ed9..b15274e 100644
--- a/tests/ffi_2/abi_specific_int_incomplete_jit_test.dart
+++ b/tests/ffi_2/abi_specific_int_incomplete_jit_test.dart
@@ -32,7 +32,6 @@
testInlineArray();
testInlineArray2();
testAsFunction();
- testFromFunction();
}
void testSizeOf() {
@@ -137,26 +136,3 @@
.asFunction<IncompleteArrayStruct Function()>();
});
}
-
-int myIncr(int a) => a + 1;
-
-IncompleteArrayStruct myIncompleteReturn() =>
- nullptr.cast<IncompleteArrayStruct>().ref;
-
-int myIncompleteArg(IncompleteArrayStruct a) => 5;
-
-void testFromFunction() {
- Expect.throws(() {
- Pointer.fromFunction<Incomplete Function(Int32)>(myIncr, 3);
- });
- Expect.throws(() {
- Pointer.fromFunction<Int32 Function(Incomplete)>(myIncr, 3);
- });
- Expect.throws(() {
- Pointer.fromFunction<IncompleteArrayStruct Function()>(myIncompleteReturn);
- });
- Expect.throws(() {
- Pointer.fromFunction<Int32 Function(IncompleteArrayStruct)>(
- myIncompleteArg, 3);
- });
-}
diff --git a/tests/ffi_2/ffi_callback_unique_test.dart b/tests/ffi_2/ffi_callback_unique_test.dart
new file mode 100644
index 0000000..1435bf2
--- /dev/null
+++ b/tests/ffi_2/ffi_callback_unique_test.dart
@@ -0,0 +1,38 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:ffi';
+
+import 'package:expect/expect.dart';
+
+void main() {
+ final a = <int>[];
+ final b = <int>[];
+ for (int i = 0; i < 10; ++i) {
+ // Several pointers for same call site.
+ a.add(
+ Pointer.fromFunction<Int Function()>(nativeToDartCallback, 0).address);
+ b.add(
+ Pointer.fromFunction<Int Function()>(nativeToDartCallback, 1).address);
+ }
+ // Another pointer from a different call site.
+ a.add(Pointer.fromFunction<Int Function()>(nativeToDartCallback, 0).address);
+ b.add(Pointer.fromFunction<Int Function()>(nativeToDartCallback, 1).address);
+
+ ensureEqualEntries(a);
+ ensureEqualEntries(b);
+
+ // The two functions have different exceptional return and should have
+ // therefore a different ffi trampoline.
+ Expect.notEquals(a.first, b.first);
+}
+
+void ensureEqualEntries(List<int> entries) {
+ final first = entries.first;
+ for (int i = 1; i < entries.length; ++i) {
+ Expect.equals(first, entries[i]);
+ }
+}
+
+int nativeToDartCallback() => 42;
diff --git a/tests/language/async/await_type_check_test.dart b/tests/language/async/await_type_check_test.dart
new file mode 100644
index 0000000..9dc9ec1
--- /dev/null
+++ b/tests/language/async/await_type_check_test.dart
@@ -0,0 +1,81 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Verifies that 'await' should check if the awaited value has a correct
+// Future<T> type before awaiting it. A Future of incompatible type
+// should not be awaited.
+//
+// Regression test for https://github.com/dart-lang/sdk/issues/49396.
+
+// Requirements=nnbd-strong
+
+import 'dart:async';
+import 'package:expect/expect.dart';
+import '../static_type_helper.dart';
+
+class A {}
+
+abstract class B<X> extends A implements Future<X> {
+ Future<X> get fut;
+ asStream() => fut.asStream();
+ catchError(error, {test}) => fut.catchError(error, test: test);
+ then<R>(onValue, {onError}) => fut.then(onValue, onError: onError);
+ timeout(timeLimit, {onTimeout}) =>
+ fut.timeout(timeLimit, onTimeout: onTimeout);
+ whenComplete(action) => fut.whenComplete(action);
+}
+
+class C extends B<Object?> {
+ final Future<Object?> fut = Future.value(CompletelyUnrelated());
+}
+
+class CompletelyUnrelated {}
+
+class C1 extends A {}
+
+class C2 extends B<C1> {
+ final Future<C1> fut = Future.value(C1());
+}
+
+void main() async {
+ final Object o = Future<Object?>.value();
+ var o2 = await o; // Remains a future.
+ o2.expectStaticType<Exactly<Object>>();
+ Expect.isTrue(o2 is Future<Object?>);
+ Expect.identical(o2, o);
+
+ final FutureOr<Object> x = Future<Object?>.value();
+ var x2 = await x; // Remains a future.
+ x2.expectStaticType<Exactly<Object>>();
+ Expect.isTrue(x2 is Future<Object?>);
+ Expect.identical(x2, x);
+
+ final FutureOr<Future<int>> y = Future<int>.value(1);
+ var y2 = await y; // Remains a `Future<int>`.
+ y2.expectStaticType<Exactly<Future<int>>>();
+ Expect.isTrue(y2 is Future<int>);
+ Expect.identical(y2, y);
+
+ A a = C();
+ var a2 = await a; // Remains an `A`.
+ a2.expectStaticType<Exactly<A>>();
+ Expect.isTrue(a2 is A);
+ Expect.identical(a2, a);
+
+ Future<void> f<X extends Object>(X x) async {
+ var x2 = await x; // Remains a `Future<Object?>`.
+ Expect.isTrue(x2 is Future<Object?>);
+ Expect.identical(x2, x);
+ }
+
+ await f(Future<Object?>.value(null));
+
+ Future<void> g<X extends A>(X x) async {
+ var x2 = await x; // The future is awaited.
+ Expect.isTrue(x2 is C1);
+ Expect.notIdentical(x2, x);
+ }
+
+ await g<A>(C2());
+}
diff --git a/tests/language/sealed_class/sealed_class_construct_error_test.dart b/tests/language/sealed_class/sealed_class_construct_error_test.dart
index 7491ab8..9df3a4c 100644
--- a/tests/language/sealed_class/sealed_class_construct_error_test.dart
+++ b/tests/language/sealed_class/sealed_class_construct_error_test.dart
@@ -16,13 +16,15 @@
main() {
var error = NotConstructable();
- // ^
+ // ^^^^^^^^^^^^^^^^
+ // [analyzer] COMPILE_TIME_ERROR.INSTANTIATE_ABSTRACT_CLASS
// [cfe] The class 'NotConstructable' is abstract and can't be instantiated.
var error2 = AlsoNotConstructable();
// ^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.MIXIN_INSTANTIATE
// [cfe] Couldn't find constructor 'AlsoNotConstructable'.
var error3 = NotConstructableWithMixin();
- // ^
+ // ^^^^^^^^^^^^^^^^^^^^^^^^^
+ // [analyzer] COMPILE_TIME_ERROR.INSTANTIATE_ABSTRACT_CLASS
// [cfe] The class 'NotConstructableWithMixin' is abstract and can't be instantiated.
}
diff --git a/tests/language/sealed_class/sealed_class_extend_error_test.dart b/tests/language/sealed_class/sealed_class_extend_error_test.dart
index f207ce0..07a4214 100644
--- a/tests/language/sealed_class/sealed_class_extend_error_test.dart
+++ b/tests/language/sealed_class/sealed_class_extend_error_test.dart
@@ -9,13 +9,15 @@
import 'sealed_class_extend_lib.dart';
abstract class OutsideA extends SealedClass {}
+// [error column 1, length 46]
+// [analyzer] COMPILE_TIME_ERROR.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY
// ^
-// [analyzer] unspecified
// [cfe] Sealed class 'SealedClass' can't be extended, implemented, or mixed in outside of its library.
class OutsideB extends SealedClass {
+// [error column 1, length 326]
+// [analyzer] COMPILE_TIME_ERROR.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY
// ^
-// [analyzer] unspecified
// [cfe] Sealed class 'SealedClass' can't be extended, implemented, or mixed in outside of its library.
@override
int foo = 2;
diff --git a/tests/language/sealed_class/sealed_class_implement_error_test.dart b/tests/language/sealed_class/sealed_class_implement_error_test.dart
index ede66e3..c8fda06 100644
--- a/tests/language/sealed_class/sealed_class_implement_error_test.dart
+++ b/tests/language/sealed_class/sealed_class_implement_error_test.dart
@@ -9,13 +9,15 @@
import "sealed_class_implement_lib.dart";
abstract class OutsideA implements SealedClass {}
+// [error column 1, length 49]
+// [analyzer] COMPILE_TIME_ERROR.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY
// ^
-// [analyzer] unspecified
// [cfe] Sealed class 'SealedClass' can't be extended, implemented, or mixed in outside of its library.
class OutsideB implements SealedClass {
+// [error column 1, length 344]
+// [analyzer] COMPILE_TIME_ERROR.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY
// ^
-// [analyzer] unspecified
// [cfe] Sealed class 'SealedClass' can't be extended, implemented, or mixed in outside of its library.
@override
int nonAbstractFoo = 2;
@@ -31,6 +33,7 @@
}
mixin OutsideMixin implements SealedClass {}
+// [error column 1, length 44]
+// [analyzer] COMPILE_TIME_ERROR.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY
// ^
-// [analyzer] unspecified
// [cfe] Sealed class 'SealedClass' can't be extended, implemented, or mixed in outside of its library.
diff --git a/tests/language/sealed_class/sealed_class_typedef_error_test.dart b/tests/language/sealed_class/sealed_class_typedef_error_test.dart
index 4a6414a..8535f9f 100644
--- a/tests/language/sealed_class/sealed_class_typedef_error_test.dart
+++ b/tests/language/sealed_class/sealed_class_typedef_error_test.dart
@@ -10,13 +10,15 @@
import 'sealed_class_typedef_lib.dart';
class ATypeDef extends SealedClassTypeDef {}
+// [error column 1, length 44]
+// [analyzer] COMPILE_TIME_ERROR.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY
// ^
-// [analyzer] unspecified
// [cfe] Sealed class 'SealedClass' can't be extended, implemented, or mixed in outside of its library.
class BTypeDef implements SealedClassTypeDef {
+// [error column 1, length 213]
+// [analyzer] COMPILE_TIME_ERROR.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY
// ^
-// [analyzer] unspecified
// [cfe] Sealed class 'SealedClass' can't be extended, implemented, or mixed in outside of its library.
@override
int foo = 1;
diff --git a/tests/language/sealed_class/sealed_class_typedef_used_outside_error_test.dart b/tests/language/sealed_class/sealed_class_typedef_used_outside_error_test.dart
index bb84809..7bb6707 100644
--- a/tests/language/sealed_class/sealed_class_typedef_used_outside_error_test.dart
+++ b/tests/language/sealed_class/sealed_class_typedef_used_outside_error_test.dart
@@ -13,13 +13,15 @@
typedef ATypeDef = SealedClass;
class A extends ATypeDef {}
+// [error column 1, length 27]
+// [analyzer] COMPILE_TIME_ERROR.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY
// ^
-// [analyzer] unspecified
// [cfe] Sealed class 'SealedClass' can't be extended, implemented, or mixed in outside of its library.
class B implements ATypeDef {
+// [error column 1, length 184]
+// [analyzer] COMPILE_TIME_ERROR.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY
// ^
-// [analyzer] unspecified
// [cfe] Sealed class 'SealedClass' can't be extended, implemented, or mixed in outside of its library.
int foo = 1;
}
diff --git a/tools/VERSION b/tools/VERSION
index 4848c71..4dcdfe1 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 3
MINOR 0
PATCH 0
-PRERELEASE 3
+PRERELEASE 4
PRERELEASE_PATCH 0