Version 2.9.0-7.0.dev
Merge commit 'd5af40b640f78c9461e57584abc15a73ac138f3c' into dev
diff --git a/benchmarks/Utf8Decode/dart/Utf8Decode.dart b/benchmarks/Utf8Decode/dart/Utf8Decode.dart
index 23762d6..a1b423d 100644
--- a/benchmarks/Utf8Decode/dart/Utf8Decode.dart
+++ b/benchmarks/Utf8Decode/dart/Utf8Decode.dart
@@ -21,9 +21,7 @@
final String text;
final int size;
final bool allowMalformed;
- final Utf8Decoder decoder;
- Uint8List data;
- List<int> chunks;
+ List<Uint8List> chunks;
int totalInputSize;
int totalOutputSize;
@@ -37,27 +35,27 @@
}
Utf8Decode(this.language, this.text, this.size, this.allowMalformed)
- : decoder = Utf8Decoder(allowMalformed: allowMalformed),
- super(_makeName(language, size, allowMalformed));
+ : super(_makeName(language, size, allowMalformed));
@override
void setup() {
- data = utf8.encode(text) as Uint8List;
+ Uint8List data = utf8.encode(text) as Uint8List;
if (data.length != 10000) {
throw "Expected input data of exactly 10000 bytes.";
}
if (size < data.length) {
// Split into chunks.
- chunks = <int>[];
- chunks.add(0);
+ chunks = <Uint8List>[];
+ int startPos = 0;
for (int pos = size; pos < data.length; pos += size) {
- int chunkPos = pos;
- while ((data[chunkPos] & 0xc0) == 0x80) {
- chunkPos--;
+ int endPos = pos;
+ while ((data[endPos] & 0xc0) == 0x80) {
+ endPos--;
}
- chunks.add(chunkPos);
+ chunks.add(Uint8List.fromList(data.sublist(startPos, endPos)));
+ startPos = endPos;
}
- chunks.add(data.length);
+ chunks.add(Uint8List.fromList(data.sublist(startPos, data.length)));
totalInputSize = data.length;
totalOutputSize = text.length;
} else if (size > data.length) {
@@ -66,13 +64,12 @@
for (int i = 0; i < size; i++) {
expanded[i] = data[i % data.length];
}
- chunks = <int>[0, size];
+ chunks = <Uint8List>[expanded];
totalInputSize = size;
totalOutputSize = text.length * size ~/ data.length;
- data = expanded;
} else {
// Use data as is.
- chunks = <int>[0, data.length];
+ chunks = <Uint8List>[data];
totalInputSize = data.length;
totalOutputSize = text.length;
}
@@ -81,9 +78,8 @@
@override
void run() {
int lengthSum = 0;
- final int numChunks = chunks.length - 1;
- for (int i = 0; i < numChunks; i++) {
- final String s = decoder.convert(data, chunks[i], chunks[i + 1]);
+ for (int i = 0; i < chunks.length; i++) {
+ final String s = utf8.decode(chunks[i], allowMalformed: allowMalformed);
lengthSum += s.length;
}
if (lengthSum != totalOutputSize) {
diff --git a/pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart b/pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart
index 890d581..3eb33ac 100644
--- a/pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart
@@ -1852,26 +1852,10 @@
[writtenType], tested, true, false, writeCaptured);
}
- List<Type> newPromotedTypes;
- if (promotedTypes == null) {
- newPromotedTypes = null;
- } else if (typeOperations.isSubtypeOf(writtenType, promotedTypes.last)) {
- newPromotedTypes = promotedTypes;
- } else {
- int numChainElementsToKeep = promotedTypes.length - 1;
- while (true) {
- if (numChainElementsToKeep == 0) {
- newPromotedTypes = null;
- break;
- } else if (typeOperations.isSubtypeOf(
- writtenType, promotedTypes[numChainElementsToKeep - 1])) {
- newPromotedTypes = promotedTypes.sublist(0, numChainElementsToKeep);
- break;
- } else {
- numChainElementsToKeep--;
- }
- }
- }
+ List<Type> newPromotedTypes = _demoteViaAssignment(
+ writtenType,
+ typeOperations,
+ );
Type declaredType = typeOperations.variableType(variable);
newPromotedTypes = _tryPromoteToTypeOfInterest(
@@ -1896,6 +1880,29 @@
null, const [], assigned, false, true);
}
+ List<Type> _demoteViaAssignment(
+ Type writtenType,
+ TypeOperations<Variable, Type> typeOperations,
+ ) {
+ if (promotedTypes == null) {
+ return null;
+ }
+
+ int numElementsToKeep = promotedTypes.length;
+ for (;; numElementsToKeep--) {
+ if (numElementsToKeep == 0) {
+ return null;
+ }
+ Type promoted = promotedTypes[numElementsToKeep - 1];
+ if (typeOperations.isSubtypeOf(writtenType, promoted)) {
+ if (numElementsToKeep == promotedTypes.length) {
+ return promotedTypes;
+ }
+ return promotedTypes.sublist(0, numElementsToKeep);
+ }
+ }
+ }
+
/// We say that a variable `x` is promotable via initialization given
/// variable model `VM` if `x` is a local variable (not a formal parameter)
/// and:
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 67bd777..b03b714 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
@@ -2283,6 +2283,35 @@
});
});
+ group('demotion, to NonNull', () {
+ test('when promoted via test', () {
+ var x = _Var('x', _Type('Object?'));
+
+ var h = _Harness();
+
+ var s1 = FlowModel<_Var, _Type>(true)
+ .declare(x, true)
+ .tryPromoteForTypeCheck(h, x, _Type('num?'))
+ .ifTrue
+ .tryPromoteForTypeCheck(h, x, _Type('int?'))
+ .ifTrue;
+ expect(s1.variableInfo, {
+ x: _matchVariableModel(
+ chain: ['num?', 'int?'],
+ ofInterest: ['num?', 'int?'],
+ ),
+ });
+
+ var s2 = s1.write(x, _Type('double'), h);
+ expect(s2.variableInfo, {
+ x: _matchVariableModel(
+ chain: ['num?', 'num'],
+ ofInterest: ['num?', 'int?'],
+ ),
+ });
+ });
+ });
+
group('declare', () {
var objectQVar = _Var('x', _Type('Object?'));
@@ -3131,7 +3160,11 @@
class _Harness implements TypeOperations<_Var, _Type> {
static const Map<String, bool> _coreSubtypes = const {
+ 'double <: Object': true,
+ 'double <: num': true,
+ 'double <: num?': true,
'double <: int': false,
+ 'double <: int?': false,
'int <: double': false,
'int <: int?': true,
'int <: Iterable': false,
diff --git a/pkg/_fe_analyzer_shared/test/flow_analysis/type_promotion/data/assignment.dart b/pkg/_fe_analyzer_shared/test/flow_analysis/type_promotion/data/assignment.dart
index 929536a..83ff29a 100644
--- a/pkg/_fe_analyzer_shared/test/flow_analysis/type_promotion/data/assignment.dart
+++ b/pkg/_fe_analyzer_shared/test/flow_analysis/type_promotion/data/assignment.dart
@@ -18,6 +18,17 @@
}
}
+assignmentDepromotes_partial_nonNull(Object? x) {
+ if (x is num?) {
+ /*num?*/ x;
+ if (/*num?*/ x is int?) {
+ /*int?*/ x;
+ x = 1.2;
+ /*num*/ x;
+ }
+ }
+}
+
assignmentPreservesPromotion(Object x) {
if (x is num) {
x = 42;
diff --git a/pkg/analysis_server/lib/src/edit/fix/non_nullable_fix.dart b/pkg/analysis_server/lib/src/edit/fix/non_nullable_fix.dart
index 48ecb59..2b2f011 100644
--- a/pkg/analysis_server/lib/src/edit/fix/non_nullable_fix.dart
+++ b/pkg/analysis_server/lib/src/edit/fix/non_nullable_fix.dart
@@ -75,6 +75,9 @@
Future<void> Function([List<String>]) rerunFunction;
+ /// A list of the URLs corresponding to the included roots.
+ List<String> previewUrls;
+
NonNullableFix(this.listener,
{List<String> included = const [],
this.preferredPort,
@@ -87,17 +90,6 @@
@override
int get numPhases => 3;
- /// Return a list of the URLs corresponding to the included roots.
- List<String> get previewUrls => [
- // TODO(jcollins-g): Change protocol to only return a single string.
- Uri(
- scheme: 'http',
- host: 'localhost',
- port: port,
- path: includedRoot,
- queryParameters: {'authToken': authToken}).toString()
- ];
-
@override
Future<void> finish() async {
final state = MigrationState(
@@ -110,6 +102,16 @@
_allServers.add(_server);
port = await _server.boundPort;
authToken = await _server.authToken;
+
+ previewUrls = [
+ // TODO(jcollins-g): Change protocol to only return a single string.
+ Uri(
+ scheme: 'http',
+ host: 'localhost',
+ port: port,
+ path: state.pathMapper.map(includedRoot),
+ queryParameters: {'authToken': authToken}).toString()
+ ];
}
}
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart b/pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart
index c6ed836..d81478d 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart
@@ -12,7 +12,7 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart'
- show ClassElement, Element, FieldElement;
+ show ClassElement, CompilationUnitElement, Element, FieldElement;
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/dart/element/type_provider.dart';
import 'package:analyzer/dart/element/type_system.dart';
@@ -545,13 +545,17 @@
/// Return `true` if this element, or any enclosing element, has been
/// annotated with the `@deprecated` annotation.
bool get hasOrInheritsDeprecated {
- var element = this;
- while (element != null) {
+ if (hasDeprecated) {
+ return true;
+ }
+ var element = enclosingElement;
+ if (element is ClassElement) {
if (element.hasDeprecated) {
return true;
}
element = element.enclosingElement;
}
- return false;
+ return element is CompilationUnitElement &&
+ element.enclosingElement.hasDeprecated;
}
}
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart
index 19e0d3a..1164992 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart
@@ -4,21 +4,15 @@
import 'dart:async';
-import 'package:analysis_server/src/computer/computer_hover.dart';
import 'package:analysis_server/src/protocol_server.dart'
show CompletionSuggestion, CompletionSuggestionKind;
import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart';
-import 'package:analysis_server/src/services/completion/dart/feature_computer.dart';
import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart';
-import 'package:analysis_server/src/services/completion/dart/utilities.dart';
import 'package:analysis_server/src/utilities/strings.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/dart/element/type_provider.dart';
-import 'package:analyzer/src/util/comment.dart';
-import 'package:analyzer_plugin/protocol/protocol_common.dart' as protocol
- show ElementKind;
import 'package:analyzer_plugin/src/utilities/completion/optype.dart';
import 'package:analyzer_plugin/src/utilities/visitors/local_declaration_visitor.dart'
show LocalDeclarationVisitor;
@@ -187,26 +181,16 @@
if ((opType.includeReturnValueSuggestions &&
(!opType.inStaticMethodBody || fieldDecl.isStatic)) ||
suggestLocalFields) {
- var deprecated = isDeprecated(fieldDecl) || isDeprecated(varDecl);
- var fieldElement = varDecl.declaredElement;
- var fieldType = fieldElement.type;
- var typeName = fieldDecl.fields.type;
- int relevance;
- if (useNewRelevance) {
- relevance = _relevanceForType(fieldType);
- } else {
- relevance = DART_RELEVANCE_LOCAL_FIELD;
+ var field = varDecl.declaredElement;
+ var inheritanceDistance = -1.0;
+ var enclosingClass = request.target.containingNode
+ .thisOrAncestorOfType<ClassDeclaration>();
+ if (enclosingClass != null) {
+ inheritanceDistance = request.featureComputer
+ .inheritanceDistanceFeature(
+ enclosingClass.declaredElement, field.enclosingElement);
}
- _addLocalSuggestion_includeReturnValueSuggestions(
- fieldElement,
- varDecl.name,
- typeName,
- protocol.ElementKind.FIELD,
- isDeprecated: deprecated,
- relevance: relevance,
- classDecl: fieldDecl.parent,
- type: fieldType,
- );
+ builder.suggestField(field, inheritanceDistance: inheritanceDistance);
}
}
@@ -214,39 +198,23 @@
void declaredFunction(FunctionDeclaration declaration) {
if (opType.includeReturnValueSuggestions ||
opType.includeVoidReturnSuggestions) {
- var typeName = declaration.returnType;
- protocol.ElementKind elemKind;
- var relevance = DART_RELEVANCE_DEFAULT;
- if (declaration.isGetter) {
- elemKind = protocol.ElementKind.GETTER;
- relevance = DART_RELEVANCE_LOCAL_ACCESSOR;
- } else if (declaration.isSetter) {
+ if (declaration.isSetter) {
if (!opType.includeVoidReturnSuggestions) {
return;
}
- elemKind = protocol.ElementKind.SETTER;
- typeName = NO_RETURN_TYPE;
- relevance = DART_RELEVANCE_LOCAL_ACCESSOR;
- } else {
- if (!opType.includeVoidReturnSuggestions && _isVoid(typeName)) {
+ } else if (!declaration.isGetter) {
+ if (!opType.includeVoidReturnSuggestions &&
+ _isVoid(declaration.returnType)) {
return;
}
- elemKind = protocol.ElementKind.FUNCTION;
- relevance = DART_RELEVANCE_LOCAL_FUNCTION;
}
- if (useNewRelevance) {
- relevance = _relevanceForType(declaration.declaredElement.returnType);
+ var declaredElement = declaration.declaredElement;
+ if (declaredElement is FunctionElement) {
+ builder.suggestTopLevelFunction(declaredElement, kind: _defaultKind);
+ } else if (declaredElement is PropertyAccessorElement) {
+ builder.suggestTopLevelPropertyAccessor(declaredElement,
+ kind: _defaultKind);
}
- _addLocalSuggestion_includeReturnValueSuggestions(
- declaration.declaredElement,
- declaration.name,
- typeName,
- elemKind,
- isDeprecated: isDeprecated(declaration),
- param: declaration.functionExpression.parameters,
- relevance: relevance,
- type: declaration.declaredElement.type,
- );
}
}
@@ -274,23 +242,7 @@
@override
void declaredLocalVar(SimpleIdentifier id, TypeAnnotation typeName) {
if (opType.includeReturnValueSuggestions) {
- var variableType = (id.staticElement as LocalVariableElement)?.type;
- int relevance;
- if (useNewRelevance) {
- // TODO(brianwilkerson) Use the distance to the local variable as
- // another feature.
- relevance = _relevanceForType(variableType);
- } else {
- relevance = DART_RELEVANCE_LOCAL_VARIABLE;
- }
- _addLocalSuggestion_includeReturnValueSuggestions(
- null,
- id,
- typeName,
- protocol.ElementKind.LOCAL_VARIABLE,
- relevance: relevance,
- type: variableType ?? typeProvider.dynamicType,
- );
+ builder.suggestLocalVariable(id.staticElement as LocalVariableElement);
}
}
@@ -299,49 +251,22 @@
if ((opType.includeReturnValueSuggestions ||
opType.includeVoidReturnSuggestions) &&
(!opType.inStaticMethodBody || declaration.isStatic)) {
-// var method = declaration.declaredElement;
-// // TODO(brianwilkerson) Use request.featureComputer.inheritanceDistance to
-// // compute the inheritance distance.
-// var inheritanceDistance = -1.0;
-// builder.suggestMethod(method, inheritanceDistance: inheritanceDistance, kind: _defaultKind);
- protocol.ElementKind elemKind;
- FormalParameterList param;
- var typeName = declaration.returnType;
- var relevance = DART_RELEVANCE_DEFAULT;
- if (declaration.isGetter) {
- elemKind = protocol.ElementKind.GETTER;
- param = null;
- relevance = DART_RELEVANCE_LOCAL_ACCESSOR;
- } else if (declaration.isSetter) {
- if (!opType.includeVoidReturnSuggestions) {
- return;
- }
- elemKind = protocol.ElementKind.SETTER;
- typeName = NO_RETURN_TYPE;
- relevance = DART_RELEVANCE_LOCAL_ACCESSOR;
- } else {
- if (!opType.includeVoidReturnSuggestions && _isVoid(typeName)) {
- return;
- }
- elemKind = protocol.ElementKind.METHOD;
- param = declaration.parameters;
- relevance = DART_RELEVANCE_LOCAL_METHOD;
+ var element = declaration.declaredElement;
+ var inheritanceDistance = -1.0;
+ var enclosingClass = request.target.containingNode
+ .thisOrAncestorOfType<ClassDeclaration>();
+ if (enclosingClass != null) {
+ inheritanceDistance = request.featureComputer
+ .inheritanceDistanceFeature(
+ enclosingClass.declaredElement, element.enclosingElement);
}
- if (useNewRelevance) {
- relevance = _relevanceForType(declaration.declaredElement.returnType);
+ if (element is MethodElement) {
+ builder.suggestMethod(element,
+ inheritanceDistance: inheritanceDistance, kind: _defaultKind);
+ } else if (element is PropertyAccessorElement) {
+ builder.suggestAccessor(element,
+ inheritanceDistance: inheritanceDistance);
}
- _addLocalSuggestion_includeReturnValueSuggestions(
- declaration.declaredElement,
- declaration.name,
- typeName,
- elemKind,
- isAbstract: declaration.isAbstract,
- isDeprecated: isDeprecated(declaration),
- classDecl: declaration.parent,
- param: param,
- relevance: relevance,
- type: declaration.declaredElement.type,
- );
}
}
@@ -355,21 +280,15 @@
@override
void declaredParam(SimpleIdentifier id, TypeAnnotation typeName) {
if (opType.includeReturnValueSuggestions) {
- var parameterType = (id.staticElement as VariableElement).type;
- int relevance;
- if (useNewRelevance) {
- relevance = _relevanceForType(parameterType);
- } else {
- relevance = DART_RELEVANCE_PARAMETER;
+ if (_isUnused(id.name)) {
+ return;
}
- _addLocalSuggestion_includeReturnValueSuggestions(
- null,
- id,
- typeName,
- protocol.ElementKind.PARAMETER,
- relevance: relevance,
- type: parameterType,
- );
+ var element = id.staticElement;
+ if (element is ParameterElement) {
+ builder.suggestParameter(element);
+ } else if (element is LocalVariableElement) {
+ builder.suggestCatchParameter(element);
+ }
}
}
@@ -378,177 +297,21 @@
VariableDeclarationList varList, VariableDeclaration varDecl) {
if (opType.includeReturnValueSuggestions) {
var variableElement = varDecl.declaredElement;
-// builder.suggestTopLevelPropertyAccessor((variableElement as TopLevelVariableElement).getter);
- var variableType = variableElement.type;
- int relevance;
- if (useNewRelevance) {
- relevance = _relevanceForType(variableType);
- } else {
- relevance = DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE;
- }
- _addLocalSuggestion_includeReturnValueSuggestions(
- variableElement,
- varDecl.name,
- varList.type,
- protocol.ElementKind.TOP_LEVEL_VARIABLE,
- isDeprecated: isDeprecated(varList) || isDeprecated(varDecl),
- relevance: relevance,
- type: variableType,
- );
+ builder.suggestTopLevelPropertyAccessor(
+ (variableElement as TopLevelVariableElement).getter);
}
}
@override
void declaredTypeParameter(TypeParameter node) {
if (opType.includeTypeNameSuggestions) {
- int relevance;
- if (useNewRelevance) {
- relevance = Relevance.typeParameter;
- } else {
- relevance = DART_RELEVANCE_TYPE_PARAMETER;
- }
- _addLocalSuggestion(
- null,
- node.name,
- null,
- protocol.ElementKind.TYPE_PARAMETER,
- isDeprecated: isDeprecated(node),
- kind: CompletionSuggestionKind.IDENTIFIER,
- relevance: relevance,
- );
+ builder.suggestTypeParameter(node.declaredElement);
}
}
- void _addLocalSuggestion(Element element, SimpleIdentifier id,
- TypeAnnotation typeName, protocol.ElementKind elemKind,
- {bool isAbstract = false,
- bool isDeprecated = false,
- ClassOrMixinDeclaration classDecl,
- CompletionSuggestionKind kind,
- FormalParameterList param,
- int relevance = DART_RELEVANCE_DEFAULT}) {
- if (id == null) {
- return null;
- }
- kind ??= _defaultKind;
- var suggestion = _createLocalSuggestion(
- id, isDeprecated, relevance, typeName,
- classDecl: classDecl, kind: kind);
- if (suggestion != null) {
- _setDocumentation(suggestion, element);
- if (!useNewRelevance &&
- privateMemberRelevance != null &&
- suggestion.completion.startsWith('_')) {
- suggestion.relevance = privateMemberRelevance;
- }
- suggestionMap.putIfAbsent(suggestion.completion, () => suggestion);
- suggestion.element = createLocalElement(request.source, elemKind, id,
- isAbstract: isAbstract,
- isDeprecated: isDeprecated,
- parameters: param?.toSource(),
- returnType: typeName);
- if ((elemKind == protocol.ElementKind.METHOD ||
- elemKind == protocol.ElementKind.FUNCTION) &&
- param != null) {
- _addParameterInfo(suggestion, param);
- }
- }
- }
-
- void _addLocalSuggestion_includeReturnValueSuggestions(
- Element element,
- SimpleIdentifier id,
- TypeAnnotation typeName,
- protocol.ElementKind elemKind,
- {bool isAbstract = false,
- bool isDeprecated = false,
- ClassOrMixinDeclaration classDecl,
- FormalParameterList param,
- int relevance = DART_RELEVANCE_DEFAULT,
- @required DartType type}) {
- if (!useNewRelevance) {
- relevance = opType.returnValueSuggestionsFilter(type, relevance);
- }
- if (relevance != null) {
- _addLocalSuggestion(element, id, typeName, elemKind,
- isAbstract: isAbstract,
- isDeprecated: isDeprecated,
- classDecl: classDecl,
- param: param,
- relevance: relevance);
- }
- }
-
- void _addParameterInfo(
- CompletionSuggestion suggestion, FormalParameterList parameters) {
- var paramList = parameters.parameters;
- suggestion.parameterNames = paramList
- .map((FormalParameter param) => param.identifier.name)
- .toList();
- suggestion.parameterTypes = paramList.map((FormalParameter param) {
- TypeAnnotation type;
- if (param is DefaultFormalParameter) {
- var child = param.parameter;
- if (child is SimpleFormalParameter) {
- type = child.type;
- } else if (child is FieldFormalParameter) {
- type = child.type;
- }
- }
- if (param is SimpleFormalParameter) {
- type = param.type;
- } else if (param is FieldFormalParameter) {
- type = param.type;
- }
- if (type == null) {
- return 'dynamic';
- }
- if (type is TypeName) {
- var typeId = type.name;
- if (typeId == null) {
- return 'dynamic';
- }
- return typeId.name;
- }
- // TODO(brianwilkerson) Support function types.
- return 'dynamic';
- }).toList();
-
- var requiredParameters = paramList
- .where((FormalParameter param) => param.isRequiredPositional)
- .map((p) => p.declaredElement);
- suggestion.requiredParameterCount = requiredParameters.length;
-
- var namedParameters = paramList
- .where((FormalParameter param) => param.isNamed)
- .map((p) => p.declaredElement);
- suggestion.hasNamedParameters = namedParameters.isNotEmpty;
-
- addDefaultArgDetails(suggestion, null, requiredParameters, namedParameters);
- }
-
- /// Create a new suggestion based upon the given information. Return the new
- /// suggestion or `null` if it could not be created.
- CompletionSuggestion _createLocalSuggestion(SimpleIdentifier id,
- bool isDeprecated, int relevance, TypeAnnotation returnType,
- {ClassOrMixinDeclaration classDecl,
- @required CompletionSuggestionKind kind}) {
- var completion = id.name;
- if (completion == null || completion.isEmpty || completion == '_') {
- return null;
- }
- if (!useNewRelevance) {
- relevance = isDeprecated ? DART_RELEVANCE_LOW : relevance;
- }
- var suggestion = CompletionSuggestion(
- kind, relevance, completion, completion.length, 0, isDeprecated, false,
- returnType: nameForType(id, returnType));
- var className = classDecl?.name?.name;
- if (className != null && className.isNotEmpty) {
- suggestion.declaringType = className;
- }
- return suggestion;
- }
+ /// Return `true` if the [identifier] is composed of one or more underscore
+ /// characters and nothing else.
+ bool _isUnused(String identifier) => RegExp(r'^_+$').hasMatch(identifier);
bool _isVoid(TypeAnnotation returnType) {
if (returnType is TypeName) {
@@ -559,25 +322,4 @@
}
return false;
}
-
- /// Return the relevance for an element with the given [elementType].
- int _relevanceForType(DartType elementType) {
- var contextTypeFeature =
- request.featureComputer.contextTypeFeature(contextType, elementType);
- // TODO(brianwilkerson) Figure out whether there are other features that
- // ought to be used here and what the right default value is. It's possible
- // that the right default value depends on where this is called from.
- return toRelevance(contextTypeFeature, 800);
- }
-
- /// If the given [documentationComment] is not `null`, fill the [suggestion]
- /// documentation fields.
- void _setDocumentation(CompletionSuggestion suggestion, Element element) {
- var doc = DartUnitHoverComputer.computeDocumentation(
- request.dartdocDirectiveInfo, element);
- if (doc != null) {
- suggestion.docComplete = doc;
- suggestion.docSummary = getDartDocSummary(doc);
- }
- }
}
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/named_constructor_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/named_constructor_contributor.dart
index 04b783e..c8d6130 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/named_constructor_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/named_constructor_contributor.dart
@@ -32,7 +32,7 @@
if (type != null) {
var element = type.element;
if (element is ClassElement) {
- return _buildSuggestions(request, libraryElement, element);
+ _buildSuggestions(request, builder, libraryElement, element);
}
}
}
@@ -40,27 +40,19 @@
return const <CompletionSuggestion>[];
}
- List<CompletionSuggestion> _buildSuggestions(DartCompletionRequest request,
- LibraryElement libElem, ClassElement classElem) {
+ void _buildSuggestions(
+ DartCompletionRequest request,
+ SuggestionBuilder builder,
+ LibraryElement libElem,
+ ClassElement classElem) {
var isLocalClassDecl = classElem.library == libElem;
- var suggestions = <CompletionSuggestion>[];
for (var constructor in classElem.constructors) {
if (isLocalClassDecl || !constructor.isPrivate) {
var name = constructor.name;
if (name != null) {
- var relevance = request.useNewRelevance
- ? Relevance.namedConstructor
- : (constructor.hasDeprecated
- ? DART_RELEVANCE_LOW
- : DART_RELEVANCE_DEFAULT);
- var suggestion = createSuggestion(request, constructor,
- completion: name, relevance: relevance);
- if (suggestion != null) {
- suggestions.add(suggestion);
- }
+ builder.suggestConstructor(constructor, hasClassName: true);
}
}
}
- return suggestions;
}
}
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart b/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart
index 6a4aeed..cad2006 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart
@@ -15,6 +15,7 @@
import 'package:analysis_server/src/services/completion/dart/utilities.dart';
import 'package:analysis_server/src/utilities/flutter.dart';
import 'package:analyzer/dart/analysis/features.dart';
+import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/nullability_suffix.dart';
import 'package:analyzer/dart/element/type.dart';
@@ -26,6 +27,7 @@
CompletionSuggestion createSuggestion(
DartCompletionRequest request, Element element,
{String completion,
+ protocol.ElementKind elementKind,
CompletionSuggestionKind kind,
int relevance = DART_RELEVANCE_DEFAULT}) {
if (element == null) {
@@ -52,6 +54,9 @@
}
suggestion.element = protocol.convertElement(element);
+ if (elementKind != null) {
+ suggestion.element.kind = elementKind;
+ }
var enclosingElement = element.enclosingElement;
if (enclosingElement is ClassElement) {
suggestion.declaringType = enclosingElement.displayName;
@@ -298,12 +303,22 @@
// approach is followed.
bool laterReplacesEarlier = true;
+ /// A flag indicating whether the [_cachedContainingMemberName] has been
+ /// computed.
+ bool _hasContainingMemberName = false;
+
+ /// The name of the member containing the completion location, or `null` if
+ /// either the completion location isn't within a member, the target of the
+ /// completion isn't `super`, or the name of the member hasn't yet been
+ /// computed. In the latter case, [_hasContainingMemberName] will be `false`.
+ String _cachedContainingMemberName;
+
/// A flag indicating whether the [_cachedContextType] has been computed.
bool _hasContextType = false;
/// The context type associated with the completion location, or `null` if
- /// either the location does not have a context type, or if the context type
- /// has not yet been computed. In the latter case, [_hasContextType] will be
+ /// either the location doesn't have a context type, or the context type
+ /// hasn't yet been computed. In the latter case, [_hasContextType] will be
/// `false`.
DartType _cachedContextType;
@@ -323,6 +338,28 @@
/// that have been built.
Iterable<CompletionSuggestion> get suggestions => _suggestionMap.values;
+ /// Return the name of the member containing the completion location, or
+ /// `null` if the completion location isn't within a member or if the target
+ /// of the completion isn't `super`.
+ String get _containingMemberName {
+ if (!_hasContainingMemberName) {
+ _hasContainingMemberName = true;
+ if (request.dotTarget is SuperExpression) {
+ var containingMethod = request.target.containingNode
+ .thisOrAncestorOfType<MethodDeclaration>();
+ if (containingMethod != null) {
+ var id = containingMethod.name;
+ if (id != null) {
+ _cachedContainingMemberName = id.name;
+ }
+ }
+ }
+ }
+ return _cachedContainingMemberName;
+ }
+
+ /// Return the context type associated with the completion location, or `null`
+ /// if the location doesn't have a context type.
DartType get _contextType {
if (!_hasContextType) {
_hasContextType = true;
@@ -332,41 +369,29 @@
return _cachedContextType;
}
- /// Add a suggestion for the [accessor]. If the accessor is being invoked with
- /// a target of `super`, then the [containingMemberName] should be the name of
- /// the member containing the invocation. The [inheritanceDistance] is the
- /// value of the inheritance distance feature computed for the method.
+ /// Add a suggestion for an [accessor] declared within a class or extension.
+ /// If the accessor is being invoked with a target of `super`, then the
+ /// [containingMemberName] should be the name of the member containing the
+ /// invocation. The [inheritanceDistance] is the value of the inheritance
+ /// distance feature computed for the accessor (or `-1.0` if the accessor is a
+ /// static accessor).
void suggestAccessor(PropertyAccessorElement accessor,
{String containingMemberName, @required double inheritanceDistance}) {
+ // TODO(brianwilkerson) Remove [containingMemberName].
+ containingMemberName ??= _containingMemberName;
+ assert(accessor.enclosingElement is ClassElement ||
+ accessor.enclosingElement is ExtensionElement);
if (accessor.isSynthetic) {
// Avoid visiting a field twice. All fields induce a getter, but only
// non-final fields induce a setter, so we don't add a suggestion for a
// synthetic setter.
if (accessor.isGetter) {
var variable = accessor.variable;
- int relevance;
- if (request.useNewRelevance) {
- var featureComputer = request.featureComputer;
- var contextType = featureComputer.contextTypeFeature(
- request.contextType, variable.type);
- var elementKind = featureComputer.elementKindFeature(
- variable, request.opType.completionLocation);
- var hasDeprecated = featureComputer.hasDeprecatedFeature(accessor);
- var startsWithDollar =
- featureComputer.startsWithDollarFeature(accessor.name);
- var superMatches = featureComputer.superMatchesFeature(
- containingMemberName, accessor.name);
- relevance = _computeMemberRelevance(
- contextType: contextType,
- elementKind: elementKind,
- hasDeprecated: hasDeprecated,
- inheritanceDistance: inheritanceDistance,
- startsWithDollar: startsWithDollar,
- superMatches: superMatches);
- } else {
- relevance = _computeOldMemberRelevance(accessor);
+ if (variable is FieldElement) {
+ suggestField(variable,
+ containingMemberName: containingMemberName,
+ inheritanceDistance: inheritanceDistance);
}
- _add(createSuggestion(request, variable, relevance: relevance));
}
} else {
var type =
@@ -392,12 +417,40 @@
superMatches: superMatches);
} else {
relevance = _computeOldMemberRelevance(accessor);
+ if (request.opType.includeReturnValueSuggestions) {
+ relevance =
+ request.opType.returnValueSuggestionsFilter(type, relevance);
+ }
+ if (relevance == null) {
+ return;
+ }
}
_add(createSuggestion(request, accessor, relevance: relevance));
}
}
- /// Add a suggestion for the [classElement]. If a [kind] is provided it will
+ /// Add a suggestion for a catch [parameter].
+ void suggestCatchParameter(LocalVariableElement parameter) {
+ var variableType = parameter.type;
+ int relevance;
+ if (request.useNewRelevance) {
+ var contextTypeFeature = request.featureComputer
+ .contextTypeFeature(_contextType, variableType);
+ relevance = toRelevance(contextTypeFeature, 800);
+ } else {
+ relevance = _computeOldMemberRelevance(parameter);
+ relevance =
+ request.opType.returnValueSuggestionsFilter(variableType, relevance);
+ if (relevance == null) {
+ return;
+ }
+ }
+
+ _add(createSuggestion(request, parameter,
+ elementKind: protocol.ElementKind.PARAMETER, relevance: relevance));
+ }
+
+ /// Add a suggestion for a [classElement]. If a [kind] is provided it will
/// be used as the kind for the suggestion.
void suggestClass(ClassElement classElement,
{CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION}) {
@@ -419,10 +472,13 @@
kind: kind, relevance: relevance));
}
- /// Add a suggestion for the [constructor]. If a [kind] is provided
- /// it will be used as the kind for the suggestion.
+ /// Add a suggestion for a [constructor]. If a [kind] is provided it will be
+ /// used as the kind for the suggestion. The flag [hasClassName] should be
+ /// `true` if the completion is occurring after the name of the class and a
+ /// period, and hence should not include the name of the class.
void suggestConstructor(ConstructorElement constructor,
- {CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION}) {
+ {CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION,
+ bool hasClassName = false}) {
var classElement = constructor.enclosingElement;
if (classElement == null) {
return;
@@ -435,7 +491,7 @@
}
var completion = constructor.displayName;
- if (prefix != null && prefix.isNotEmpty) {
+ if (!hasClassName && prefix != null && prefix.isNotEmpty) {
if (completion == null || completion.isEmpty) {
completion = prefix;
} else {
@@ -459,7 +515,7 @@
completion: completion, kind: kind, relevance: relevance));
}
- /// Add a suggestion for the top-level [element]. If a [kind] is provided it
+ /// Add a suggestion for a top-level [element]. If a [kind] is provided it
/// will be used as the kind for the suggestion.
void suggestElement(Element element,
{CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION}) {
@@ -482,7 +538,7 @@
}
}
- /// Add a suggestion for the enum [constant].
+ /// Add a suggestion for an enum [constant].
void suggestEnumConstant(FieldElement constant) {
var constantName = constant.name;
var enumElement = constant.enclosingElement;
@@ -507,7 +563,7 @@
completion: completion, relevance: relevance));
}
- /// Add a suggestion for the [extension]. If a [kind] is provided it will be
+ /// Add a suggestion for an [extension]. If a [kind] is provided it will be
/// used as the kind for the suggestion.
void suggestExtension(ExtensionElement extension,
{CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION}) {
@@ -525,7 +581,48 @@
createSuggestion(request, extension, kind: kind, relevance: relevance));
}
- /// Add a suggestion to reference the [field] in a field formal parameter.
+ /// Add a suggestion for a [field]. If the field is being referenced with a
+ /// target of `super`, then the [containingMemberName] should be the name of
+ /// the member containing the reference. The [inheritanceDistance] is the
+ /// value of the inheritance distance feature computed for the field (or
+ /// `-1.0` if the field is a static field).
+ void suggestField(FieldElement field,
+ {String containingMemberName, @required double inheritanceDistance}) {
+ // TODO(brianwilkerson) Remove [containingMemberName].
+ containingMemberName ??= _containingMemberName;
+ int relevance;
+ if (request.useNewRelevance) {
+ var featureComputer = request.featureComputer;
+ var contextType =
+ featureComputer.contextTypeFeature(request.contextType, field.type);
+ var elementKind = featureComputer.elementKindFeature(
+ field, request.opType.completionLocation);
+ var hasDeprecated = featureComputer.hasDeprecatedFeature(field);
+ var startsWithDollar =
+ featureComputer.startsWithDollarFeature(field.name);
+ var superMatches =
+ featureComputer.superMatchesFeature(containingMemberName, field.name);
+ relevance = _computeMemberRelevance(
+ contextType: contextType,
+ elementKind: elementKind,
+ hasDeprecated: hasDeprecated,
+ inheritanceDistance: inheritanceDistance,
+ startsWithDollar: startsWithDollar,
+ superMatches: superMatches);
+ } else {
+ relevance = _computeOldMemberRelevance(field);
+ if (request.opType.includeReturnValueSuggestions) {
+ relevance =
+ request.opType.returnValueSuggestionsFilter(field.type, relevance);
+ }
+ if (relevance == null) {
+ return;
+ }
+ }
+ _add(createSuggestion(request, field, relevance: relevance));
+ }
+
+ /// Add a suggestion to reference a [field] in a field formal parameter.
void suggestFieldFormalParameter(FieldElement field) {
// TODO(brianwilkerson) Add a parameter (`bool includePrefix`) indicating
// whether to include the `this.` prefix in the completion.
@@ -559,7 +656,7 @@
));
}
- /// Add a suggestion for the [functionTypeAlias]. If a [kind] is provided it
+ /// Add a suggestion for a [functionTypeAlias]. If a [kind] is provided it
/// will be used as the kind for the suggestion.
void suggestFunctionTypeAlias(FunctionTypeAliasElement functionTypeAlias,
{CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION}) {
@@ -596,7 +693,29 @@
_add(createSuggestion(request, function, relevance: relevance));
}
- /// Add a suggestion for the [method]. If the method is being invoked with a
+ /// Add a suggestion for a local [variable].
+ void suggestLocalVariable(LocalVariableElement variable) {
+ var variableType = variable.type;
+ int relevance;
+ if (request.useNewRelevance) {
+ // TODO(brianwilkerson) Use the distance to the local variable as
+ // another feature.
+ var contextTypeFeature = request.featureComputer
+ .contextTypeFeature(_contextType, variableType);
+ relevance = toRelevance(contextTypeFeature, 800);
+ } else {
+ relevance = _computeOldMemberRelevance(variable);
+ relevance =
+ request.opType.returnValueSuggestionsFilter(variableType, relevance);
+ if (relevance == null) {
+ return;
+ }
+ }
+
+ _add(createSuggestion(request, variable, relevance: relevance));
+ }
+
+ /// Add a suggestion for a [method]. If the method is being invoked with a
/// target of `super`, then the [containingMemberName] should be the name of
/// the member containing the invocation. If a [kind] is provided it will be
/// used as the kind for the suggestion. The [inheritanceDistance] is the
@@ -605,6 +724,8 @@
{String containingMemberName,
CompletionSuggestionKind kind,
@required double inheritanceDistance}) {
+ // TODO(brianwilkerson) Remove [containingMemberName].
+ containingMemberName ??= _containingMemberName;
// TODO(brianwilkerson) Refactor callers so that we're passing in the type
// of the target (assuming we don't already have that type available via
// the [request]) and compute the [inheritanceDistance] in this method.
@@ -630,6 +751,13 @@
} else {
relevance = _computeOldMemberRelevance(method,
containingMethodName: containingMemberName);
+ if (request.opType.includeReturnValueSuggestions) {
+ relevance = request.opType
+ .returnValueSuggestionsFilter(method.returnType, relevance);
+ }
+ if (relevance == null) {
+ return;
+ }
}
var suggestion =
@@ -664,7 +792,29 @@
}
}
- /// Add a suggestion for the top-level [function]. If a [kind] is provided it
+ /// Add a suggestion for a [parameter].
+ void suggestParameter(ParameterElement parameter) {
+ var variableType = parameter.type;
+ int relevance;
+ if (request.useNewRelevance) {
+ // TODO(brianwilkerson) Use the distance to the declaring function as
+ // another feature.
+ var contextTypeFeature = request.featureComputer
+ .contextTypeFeature(_contextType, variableType);
+ relevance = toRelevance(contextTypeFeature, 800);
+ } else {
+ relevance = _computeOldMemberRelevance(parameter);
+ relevance =
+ request.opType.returnValueSuggestionsFilter(variableType, relevance);
+ if (relevance == null) {
+ return;
+ }
+ }
+
+ _add(createSuggestion(request, parameter, relevance: relevance));
+ }
+
+ /// Add a suggestion for a top-level [function]. If a [kind] is provided it
/// will be used as the kind for the suggestion.
void suggestTopLevelFunction(FunctionElement function,
{CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION}) {
@@ -678,42 +828,103 @@
relevance = function.library == request.libraryElement
? DART_RELEVANCE_LOCAL_FUNCTION
: DART_RELEVANCE_DEFAULT;
+ relevance =
+ request.opType.returnValueSuggestionsFilter(function.type, relevance);
+ if (relevance == null) {
+ return;
+ }
}
_add(createSuggestion(request, function, kind: kind, relevance: relevance));
}
- /// Add a suggestion for the top-level property [accessor]. If a [kind] is
+ /// Add a suggestion for a top-level property [accessor]. If a [kind] is
/// provided it will be used as the kind for the suggestion.
void suggestTopLevelPropertyAccessor(PropertyAccessorElement accessor,
{CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION}) {
- if (accessor.isSetter && accessor.isSynthetic) {
- // TODO(brianwilkerson) Only discard the setter if a suggestion is built
- // for the corresponding getter. Currently that's always the case.
- // Handling this more generally will require the ability to build
- // suggestions for setters and then remove them later when the
- // corresponding getter is found.
- return;
+ assert(accessor.enclosingElement is CompilationUnitElement);
+ if (accessor.isSynthetic) {
+ // Avoid visiting a field twice. All fields induce a getter, but only
+ // non-final fields induce a setter, so we don't add a suggestion for a
+ // synthetic setter.
+ if (accessor.isGetter) {
+ var variable = accessor.variable;
+ if (variable is TopLevelVariableElement) {
+ suggestTopLevelVariable(variable, kind: kind);
+ }
+ }
+ } else {
+ var type =
+ accessor.isGetter ? accessor.returnType : accessor.parameters[0].type;
+ int relevance;
+ if (request.useNewRelevance) {
+ var featureComputer = request.featureComputer;
+ var contextType =
+ featureComputer.contextTypeFeature(request.contextType, type);
+ var elementKind = featureComputer.elementKindFeature(
+ accessor, request.opType.completionLocation);
+ var hasDeprecated = featureComputer.hasDeprecatedFeature(accessor);
+ var startsWithDollar =
+ featureComputer.startsWithDollarFeature(accessor.name);
+ relevance = _computeMemberRelevance(
+ contextType: contextType,
+ elementKind: elementKind,
+ hasDeprecated: hasDeprecated,
+ inheritanceDistance: -1.0,
+ startsWithDollar: startsWithDollar,
+ superMatches: -1.0);
+ } else {
+ relevance = _computeOldMemberRelevance(accessor);
+ if (request.opType.includeReturnValueSuggestions) {
+ relevance =
+ request.opType.returnValueSuggestionsFilter(type, relevance);
+ }
+ if (relevance == null) {
+ return;
+ }
+ }
+ _add(createSuggestion(request, accessor, relevance: relevance));
}
- // TODO(brianwilkerson) Should we use the variable only when the [element]
- // is synthetic?
- var variable = accessor.variable;
+ }
+
+ /// Add a suggestion for a top-level [variable]. If a [kind] is provided it
+ /// will be used as the kind for the suggestion.
+ void suggestTopLevelVariable(TopLevelVariableElement variable,
+ {CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION}) {
+ assert(variable.enclosingElement is CompilationUnitElement);
int relevance;
if (request.useNewRelevance) {
relevance =
_computeTopLevelRelevance(variable, elementType: variable.type);
- } else if (accessor.hasOrInheritsDeprecated) {
+ } else if (variable.hasOrInheritsDeprecated) {
relevance = DART_RELEVANCE_LOW;
} else {
- relevance = variable.library == request.libraryElement
- ? DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE
- : DART_RELEVANCE_DEFAULT;
+ var type = variable.type;
+ relevance = _computeOldMemberRelevance(variable);
+ relevance = request.opType.returnValueSuggestionsFilter(type, relevance);
+ if (relevance == null) {
+ return;
+ }
}
_add(createSuggestion(request, variable, kind: kind, relevance: relevance));
}
- /// Add the given [suggestion] if it isn't `null`.
+ /// Add a suggestion for a type [parameter].
+ void suggestTypeParameter(TypeParameterElement parameter) {
+ int relevance;
+ if (request.useNewRelevance) {
+ relevance = Relevance.typeParameter;
+ } else {
+ relevance = _computeOldMemberRelevance(parameter);
+ }
+
+ _add(createSuggestion(request, parameter,
+ kind: CompletionSuggestionKind.IDENTIFIER, relevance: relevance));
+ }
+
+ /// Add the given [suggestion] if it isn't `null` and if it isn't shadowed by
+ /// a previously added suggestion.
void _add(protocol.CompletionSuggestion suggestion) {
if (suggestion != null) {
if (laterReplacesEarlier) {
@@ -762,6 +973,8 @@
/// Compute the old relevance score for a member.
int _computeOldMemberRelevance(Element member,
{String containingMethodName}) {
+ // TODO(brianwilkerson) Remove [containingMethodName].
+ containingMethodName ??= _containingMemberName;
if (member.hasOrInheritsDeprecated) {
return DART_RELEVANCE_LOW;
} else if (member.name == containingMethodName) {
@@ -775,6 +988,28 @@
// https://github.com/dart-lang/sdk/issues/27303
return DART_RELEVANCE_LOW;
}
+ if (member is LocalVariableElement) {
+ return DART_RELEVANCE_LOCAL_VARIABLE;
+ }
+ if (!member.name.startsWith('_') &&
+ member.library == request.libraryElement) {
+ // Locally declared elements sometimes have a special relevance.
+ if (member is PropertyAccessorElement) {
+ return DART_RELEVANCE_LOCAL_ACCESSOR;
+ } else if (member is FieldElement) {
+ return DART_RELEVANCE_LOCAL_FIELD;
+ } else if (member is FunctionElement) {
+ return DART_RELEVANCE_LOCAL_FUNCTION;
+ } else if (member is MethodElement) {
+ return DART_RELEVANCE_LOCAL_METHOD;
+ } else if (member is ParameterElement) {
+ return DART_RELEVANCE_PARAMETER;
+ } else if (member is TopLevelVariableElement) {
+ return DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE;
+ } else if (member is TypeParameterElement) {
+ return DART_RELEVANCE_TYPE_PARAMETER;
+ }
+ }
return DART_RELEVANCE_DEFAULT;
}
diff --git a/pkg/analysis_server/test/domain_completion_test.dart b/pkg/analysis_server/test/domain_completion_test.dart
index 0d7f152..1db1f61 100644
--- a/pkg/analysis_server/test/domain_completion_test.dart
+++ b/pkg/analysis_server/test/domain_completion_test.dart
@@ -540,7 +540,8 @@
return getSuggestions().then((_) {
expect(replacementOffset, equals(completionOffset));
expect(replacementLength, equals(0));
- assertHasResult(CompletionSuggestionKind.INVOCATION, 'm');
+ assertHasResult(CompletionSuggestionKind.INVOCATION, 'm',
+ relevance: DART_RELEVANCE_LOCAL_METHOD);
});
}
@@ -569,7 +570,8 @@
return getSuggestions().then((_) {
expect(replacementOffset, equals(completionOffset));
expect(replacementLength, equals(0));
- assertHasResult(CompletionSuggestionKind.INVOCATION, 'b');
+ assertHasResult(CompletionSuggestionKind.INVOCATION, 'b',
+ relevance: DART_RELEVANCE_LOCAL_METHOD);
});
}
@@ -601,7 +603,8 @@
return getSuggestions().then((_) {
expect(replacementOffset, equals(completionOffset));
expect(replacementLength, equals(0));
- assertHasResult(CompletionSuggestionKind.INVOCATION, 'b');
+ assertHasResult(CompletionSuggestionKind.INVOCATION, 'b',
+ relevance: DART_RELEVANCE_LOCAL_METHOD);
});
}
@@ -611,7 +614,7 @@
main(A p) { var v1 = p.is^; }''');
await getSuggestions();
assertHasResult(CompletionSuggestionKind.INVOCATION, 'isVisible',
- relevance: DART_RELEVANCE_DEFAULT);
+ relevance: DART_RELEVANCE_LOCAL_FIELD);
}
Future<void> test_keyword() {
@@ -674,8 +677,7 @@
return getSuggestions().then((_) {
expect(replacementOffset, equals(completionOffset));
expect(replacementLength, equals(0));
- assertHasResult(CompletionSuggestionKind.INVOCATION, 'm',
- relevance: DART_RELEVANCE_LOCAL_METHOD);
+ assertHasResult(CompletionSuggestionKind.INVOCATION, 'm');
});
}
@@ -741,8 +743,7 @@
return getSuggestions().then((_) {
expect(replacementOffset, equals(completionOffset));
expect(replacementLength, equals(0));
- assertHasResult(CompletionSuggestionKind.INVOCATION, 'm',
- relevance: DART_RELEVANCE_LOCAL_METHOD);
+ assertHasResult(CompletionSuggestionKind.INVOCATION, 'm');
});
}
diff --git a/pkg/analysis_server/test/services/completion/dart/common_usage_sorter_test.dart b/pkg/analysis_server/test/services/completion/dart/common_usage_sorter_test.dart
index be5ab67..f917fa6 100644
--- a/pkg/analysis_server/test/services/completion/dart/common_usage_sorter_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/common_usage_sorter_test.dart
@@ -108,7 +108,8 @@
});
expect(replacementOffset, equals(completionOffset));
expect(replacementLength, equals(0));
- assertHasResult(CompletionSuggestionKind.INVOCATION, 'g1');
+ assertHasResult(CompletionSuggestionKind.INVOCATION, 'g1',
+ relevance: DART_RELEVANCE_LOCAL_ACCESSOR);
assertHasResult(CompletionSuggestionKind.INVOCATION, 'g2',
relevance: DART_RELEVANCE_COMMON_USAGE);
assertNoResult('Future');
@@ -124,7 +125,8 @@
});
expect(replacementOffset, equals(completionOffset));
expect(replacementLength, equals(0));
- assertHasResult(CompletionSuggestionKind.INVOCATION, 's1');
+ assertHasResult(CompletionSuggestionKind.INVOCATION, 's1',
+ relevance: DART_RELEVANCE_LOCAL_ACCESSOR);
assertHasResult(CompletionSuggestionKind.INVOCATION, 's2',
relevance: DART_RELEVANCE_COMMON_USAGE);
assertNoResult('Future');
diff --git a/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart
index 3f94e1f..6827874 100644
--- a/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart
@@ -1552,7 +1552,18 @@
Future<void> test_CatchClause_typed() async {
// Block CatchClause TryStatement
- addTestSource('class A {a() {try{var x;} on E catch (e) {^}}}');
+ addTestSource('''
+class A {
+ a() {
+ try {
+ var x;
+ } on E catch (e) {
+ ^
+ }
+ }
+}
+class E {}
+''');
await computeSuggestions();
expect(replacementOffset, completionOffset);
@@ -3016,8 +3027,12 @@
Future<void> test_FunctionExpression_body_function() async {
// Block BlockFunctionBody FunctionExpression
addTestSource('''
- void bar() { }
- String foo(List args) {x.then((R b) {^});}''');
+void bar() { }
+String foo(List args) {
+ x.then((R b) {^});
+}
+class R {}
+''');
await computeSuggestions();
expect(replacementOffset, completionOffset);
@@ -3070,7 +3085,15 @@
Future<void> test_IfStatement() async {
// SimpleIdentifier IfStatement
addTestSource('''
- class A {var b; X _c; foo() {A a; if (true) ^}}''');
+class A {
+ var b;
+ X _c;
+ foo() {
+ A a; if (true) ^
+ }
+}
+class X {}
+''');
await computeSuggestions();
expect(replacementOffset, completionOffset);
@@ -3101,7 +3124,16 @@
Future<void> test_IfStatement_empty() async {
// SimpleIdentifier IfStatement
addTestSource('''
- class A {var b; X _c; foo() {A a; if (^) something}}''');
+class A {
+ var b;
+ X _c;
+ foo() {
+ A a;
+ if (^) something
+ }
+}
+class X {}
+''');
await computeSuggestions();
expect(replacementOffset, completionOffset);
@@ -3116,13 +3148,22 @@
Future<void> test_IfStatement_empty_private() async {
// SimpleIdentifier IfStatement
addTestSource('''
- class A {var b; X _c; foo() {A a; if (_^) something}}''');
+class A {
+ var b;
+ X _c;
+ foo() {
+ A a;
+ if (_^) something
+ }
+}
+class X {}
+''');
await computeSuggestions();
expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestField('b', null, relevance: DART_RELEVANCE_LOCAL_FIELD);
- assertSuggestField('_c', 'X', relevance: DART_RELEVANCE_LOCAL_FIELD);
+ assertSuggestField('_c', 'X', relevance: DART_RELEVANCE_DEFAULT);
assertNotSuggested('Object');
assertSuggestClass('A');
assertNotSuggested('==');
@@ -3739,7 +3780,16 @@
Future<void> test_MethodDeclaration_body_getters() async {
// Block BlockFunctionBody MethodDeclaration
- addTestSource('class A {@deprecated X get f => 0; Z a() {^} get _g => 1;}');
+ addTestSource('''
+class A {
+ @deprecated
+ X get f => 0;
+ Z a() {^}
+ get _g => 1;
+}
+class X {}
+class Z {}
+''');
await computeSuggestions();
expect(replacementOffset, completionOffset);
@@ -3804,7 +3854,15 @@
Future<void> test_MethodDeclaration_members() async {
// Block BlockFunctionBody MethodDeclaration
- addTestSource('class A {@deprecated X f; Z _a() {^} var _g;}');
+ addTestSource('''
+class A {
+ @deprecated X f;
+ Z _a() {^}
+ var _g;
+}
+class X {}
+class Z {}
+''');
await computeSuggestions();
expect(replacementOffset, completionOffset);
@@ -3835,13 +3893,22 @@
Future<void> test_MethodDeclaration_members_private() async {
// Block BlockFunctionBody MethodDeclaration
- addTestSource('class A {@deprecated X f; Z _a() {_^} var _g;}');
+ addTestSource('''
+class A {
+ @deprecated
+ X f;
+ Z _a() {_^}
+ var _g;
+}
+class X {}
+class Z {}
+''');
await computeSuggestions();
expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
- var methodA = assertSuggestMethod('_a', 'A', 'Z',
- relevance: DART_RELEVANCE_LOCAL_METHOD);
+ var methodA =
+ assertSuggestMethod('_a', 'A', 'Z', relevance: DART_RELEVANCE_DEFAULT);
if (methodA != null) {
expect(methodA.element.isDeprecated, isFalse);
expect(methodA.element.isPrivate, isTrue);
@@ -3856,7 +3923,7 @@
// If user prefixed completion with '_' then suggestion of private members
// should be the same as public members
var getterG =
- assertSuggestField('_g', null, relevance: DART_RELEVANCE_LOCAL_FIELD);
+ assertSuggestField('_g', null, relevance: DART_RELEVANCE_DEFAULT);
if (getterG != null) {
expect(getterG.element.isDeprecated, isFalse);
expect(getterG.element.isPrivate, isTrue);
@@ -3867,7 +3934,14 @@
Future<void> test_MethodDeclaration_parameters_named() async {
// Block BlockFunctionBody MethodDeclaration
- addTestSource('class A {@deprecated Z a(X x, _, b, {y: boo}) {^}}');
+ addTestSource('''
+class A {
+ @deprecated
+ Z a(X x, _, b, {y: boo}) {^}
+}
+class X {}
+class Z {}
+''');
await computeSuggestions();
expect(replacementOffset, completionOffset);
@@ -3890,7 +3964,12 @@
addTestSource('''
foo() { }
void bar() { }
-class A {Z a(X x, [int y=1]) {^}}''');
+class A {
+ Z a(X x, [int y=1]) {^}
+}
+class X {}
+class Z {}
+''');
await computeSuggestions();
expect(replacementOffset, completionOffset);
@@ -4583,7 +4662,7 @@
addTestSource('main() {var ab; var _ab; ^}');
await computeSuggestions();
assertSuggestLocalVariable('ab', null);
- assertSuggestLocalVariable('_ab', null, relevance: DART_RELEVANCE_DEFAULT);
+ assertSuggestLocalVariable('_ab', null);
}
Future<void> test_prioritization_private() async {
@@ -4597,7 +4676,7 @@
addTestSource('main() {var ab; var _ab; a^}');
await computeSuggestions();
assertSuggestLocalVariable('ab', null);
- assertSuggestLocalVariable('_ab', null, relevance: DART_RELEVANCE_DEFAULT);
+ assertSuggestLocalVariable('_ab', null);
}
Future<void> test_PropertyAccess_expression() async {
diff --git a/pkg/analyzer/lib/error/error.dart b/pkg/analyzer/lib/error/error.dart
index a9efa56..1ecfb41 100644
--- a/pkg/analyzer/lib/error/error.dart
+++ b/pkg/analyzer/lib/error/error.dart
@@ -293,6 +293,7 @@
CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE_WITH,
CompileTimeErrorCode.REDIRECT_GENERATIVE_TO_MISSING_CONSTRUCTOR,
CompileTimeErrorCode.REDIRECT_GENERATIVE_TO_NON_GENERATIVE_CONSTRUCTOR,
+ CompileTimeErrorCode.REDIRECT_TO_ABSTRACT_CLASS_CONSTRUCTOR,
CompileTimeErrorCode.REDIRECT_TO_MISSING_CONSTRUCTOR,
CompileTimeErrorCode.REDIRECT_TO_NON_CLASS,
CompileTimeErrorCode.REDIRECT_TO_NON_CONST_CONSTRUCTOR,
diff --git a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
index 469b161..d312773 100644
--- a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
+++ b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
@@ -336,7 +336,13 @@
} else {
Source source;
if (workspace is WorkspaceWithDefaultAnalysisOptions) {
- source = sourceFactory.forUri(WorkspaceWithDefaultAnalysisOptions.uri);
+ if (path.contains('/third_party/dart/')) {
+ source = sourceFactory
+ .forUri(WorkspaceWithDefaultAnalysisOptions.thirdPartyUri);
+ } else {
+ source =
+ sourceFactory.forUri(WorkspaceWithDefaultAnalysisOptions.uri);
+ }
}
if (source != null && source.exists()) {
diff --git a/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
index d36cdf0..cf532a4 100644
--- a/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
@@ -70,7 +70,12 @@
return;
}
- _resolveOtherOperator(node);
+ if (operator.isUserDefinableOperator) {
+ _resolveUserDefinable(node);
+ return;
+ }
+
+ _resolveUnsupportedOperator(node);
}
/// Set the static type of [node] to be the least upper bound of the static
@@ -129,100 +134,26 @@
return _resolveTypeParameter(type);
}
- void _resolve1(BinaryExpressionImpl node) {
- Token operator = node.operator;
- if (operator.isUserDefinableOperator) {
- _resolveBinaryExpression(node, operator.lexeme);
- } else if (operator.type == TokenType.BANG_EQ) {
- _resolveBinaryExpression(node, TokenType.EQ_EQ.lexeme);
- }
- }
-
- void _resolve2(BinaryExpressionImpl node) {
- if (identical(node.leftOperand.staticType, NeverTypeImpl.instance)) {
- _inferenceHelper.recordStaticType(node, NeverTypeImpl.instance);
- return;
- }
-
- DartType staticType =
- node.staticInvokeType?.returnType ?? DynamicTypeImpl.instance;
- if (node.leftOperand is! ExtensionOverride) {
- staticType = _typeSystem.refineBinaryExpressionType(
- _getStaticType(node.leftOperand),
- node.operator.type,
- node.rightOperand.staticType,
- staticType,
- );
- }
- _inferenceHelper.recordStaticType(node, staticType);
- }
-
- void _resolveBinaryExpression(BinaryExpression node, String methodName) {
- Expression leftOperand = node.leftOperand;
-
- if (leftOperand is ExtensionOverride) {
- ExtensionElement extension = leftOperand.extensionName.staticElement;
- MethodElement member = extension.getMethod(methodName);
- if (member == null) {
- _errorReporter.reportErrorForToken(
- CompileTimeErrorCode.UNDEFINED_EXTENSION_OPERATOR,
- node.operator,
- [methodName, extension.name],
- );
- }
- node.staticElement = member;
- return;
- }
-
- var leftType = _getStaticType(leftOperand);
-
- if (identical(leftType, NeverTypeImpl.instance)) {
- _resolver.errorReporter.reportErrorForNode(
- HintCode.RECEIVER_OF_TYPE_NEVER,
- leftOperand,
- );
- return;
- }
-
- ResolutionResult result = _typePropertyResolver.resolve(
- receiver: leftOperand,
- receiverType: leftType,
- name: methodName,
- receiverErrorNode: leftOperand,
- nameErrorNode: node,
- );
-
- node.staticElement = result.getter;
- node.staticInvokeType = result.getter?.type;
- if (_shouldReportInvalidMember(leftType, result)) {
- if (leftOperand is SuperExpression) {
- _errorReporter.reportErrorForToken(
- StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR,
- node.operator,
- [methodName, leftType],
- );
- } else {
- _errorReporter.reportErrorForToken(
- StaticTypeWarningCode.UNDEFINED_OPERATOR,
- node.operator,
- [methodName, leftType],
- );
- }
- }
- }
-
void _resolveEqual(BinaryExpressionImpl node, {@required bool notEqual}) {
var left = node.leftOperand;
- var right = node.rightOperand;
- var flow = _flowAnalysis?.flow;
-
left.accept(_resolver);
+ left = node.leftOperand;
+
+ var flow = _flowAnalysis?.flow;
flow?.equalityOp_rightBegin(left);
+
+ var right = node.rightOperand;
right.accept(_resolver);
- _resolve1(node);
+ right = node.rightOperand;
+
flow?.equalityOp_end(node, right, notEqual: notEqual);
- _resolve2(node);
+ _resolveUserDefinableElement(
+ node,
+ TokenType.EQ_EQ.lexeme,
+ promoteLeftTypeToNonNull: true,
+ );
+ _resolveUserDefinableType(node);
}
void _resolveIfNull(BinaryExpressionImpl node) {
@@ -297,8 +228,7 @@
_checkNonBoolOperand(left, '&&');
_checkNonBoolOperand(right, '&&');
- _resolve1(node);
- _resolve2(node);
+ _inferenceHelper.recordStaticType(node, _typeProvider.boolType);
}
void _resolveLogicalOr(BinaryExpressionImpl node) {
@@ -325,20 +255,29 @@
_checkNonBoolOperand(left, '||');
_checkNonBoolOperand(right, '||');
- _resolve1(node);
- _resolve2(node);
+ _inferenceHelper.recordStaticType(node, _typeProvider.boolType);
}
- void _resolveOtherOperator(BinaryExpressionImpl node) {
+ /// If the given [type] is a type parameter, resolve it to the type that should
+ /// be used when looking up members. Otherwise, return the original type.
+ ///
+ /// TODO(scheglov) this is duplicate
+ DartType _resolveTypeParameter(DartType type) =>
+ type?.resolveToBound(_typeProvider.objectType);
+
+ void _resolveUnsupportedOperator(BinaryExpressionImpl node) {
+ _inferenceHelper.recordStaticType(node, DynamicTypeImpl.instance);
+ }
+
+ void _resolveUserDefinable(BinaryExpressionImpl node) {
Expression left = node.leftOperand;
Expression right = node.rightOperand;
// TODO(scheglov) Do we need these checks for null?
left?.accept(_resolver);
- // Call ElementResolver.visitBinaryExpression to resolve the user-defined
- // operator method, if applicable.
- _resolve1(node);
+ var operator = node.operator;
+ _resolveUserDefinableElement(node, operator.lexeme);
var invokeType = node.staticInvokeType;
if (invokeType != null && invokeType.parameters.isNotEmpty) {
@@ -351,15 +290,89 @@
// TODO(scheglov) Do we need these checks for null?
right?.accept(_resolver);
- _resolve2(node);
+ _resolveUserDefinableType(node);
}
- /// If the given [type] is a type parameter, resolve it to the type that should
- /// be used when looking up members. Otherwise, return the original type.
- ///
- /// TODO(scheglov) this is duplicate
- DartType _resolveTypeParameter(DartType type) =>
- type?.resolveToBound(_typeProvider.objectType);
+ void _resolveUserDefinableElement(
+ BinaryExpression node,
+ String methodName, {
+ bool promoteLeftTypeToNonNull = false,
+ }) {
+ Expression leftOperand = node.leftOperand;
+
+ if (leftOperand is ExtensionOverride) {
+ ExtensionElement extension = leftOperand.extensionName.staticElement;
+ MethodElement member = extension.getMethod(methodName);
+ if (member == null) {
+ _errorReporter.reportErrorForToken(
+ CompileTimeErrorCode.UNDEFINED_EXTENSION_OPERATOR,
+ node.operator,
+ [methodName, extension.name],
+ );
+ }
+ node.staticElement = member;
+ return;
+ }
+
+ var leftType = _getStaticType(leftOperand);
+
+ if (identical(leftType, NeverTypeImpl.instance)) {
+ _resolver.errorReporter.reportErrorForNode(
+ HintCode.RECEIVER_OF_TYPE_NEVER,
+ leftOperand,
+ );
+ return;
+ }
+
+ if (promoteLeftTypeToNonNull) {
+ leftType = _typeSystem.promoteToNonNull(leftType);
+ }
+
+ ResolutionResult result = _typePropertyResolver.resolve(
+ receiver: leftOperand,
+ receiverType: leftType,
+ name: methodName,
+ receiverErrorNode: leftOperand,
+ nameErrorNode: node,
+ );
+
+ node.staticElement = result.getter;
+ node.staticInvokeType = result.getter?.type;
+ if (_shouldReportInvalidMember(leftType, result)) {
+ if (leftOperand is SuperExpression) {
+ _errorReporter.reportErrorForToken(
+ StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR,
+ node.operator,
+ [methodName, leftType],
+ );
+ } else {
+ _errorReporter.reportErrorForToken(
+ StaticTypeWarningCode.UNDEFINED_OPERATOR,
+ node.operator,
+ [methodName, leftType],
+ );
+ }
+ }
+ }
+
+ void _resolveUserDefinableType(BinaryExpressionImpl node) {
+ if (identical(node.leftOperand.staticType, NeverTypeImpl.instance)) {
+ _inferenceHelper.recordStaticType(node, NeverTypeImpl.instance);
+ return;
+ }
+
+ DartType staticType =
+ node.staticInvokeType?.returnType ?? DynamicTypeImpl.instance;
+ if (node.leftOperand is! ExtensionOverride) {
+ staticType = _typeSystem.refineBinaryExpressionType(
+ _getStaticType(node.leftOperand),
+ node.operator.type,
+ node.rightOperand.staticType,
+ staticType,
+ );
+ }
+ _inferenceHelper.recordStaticType(node, staticType);
+ }
/// Return `true` if we should report an error for the lookup [result] on
/// the [type].
diff --git a/pkg/analyzer/lib/src/error/codes.dart b/pkg/analyzer/lib/src/error/codes.dart
index b7ad7d7..3a45736 100644
--- a/pkg/analyzer/lib/src/error/codes.dart
+++ b/pkg/analyzer/lib/src/error/codes.dart
@@ -5494,6 +5494,17 @@
correction: "Try redirecting to a different constructor.");
/**
+ * A factory constructor can't redirect to a non-generative constructor of an
+ * abstract class.
+ */
+ static const CompileTimeErrorCode REDIRECT_TO_ABSTRACT_CLASS_CONSTRUCTOR =
+ CompileTimeErrorCode(
+ 'REDIRECT_TO_ABSTRACT_CLASS_CONSTRUCTOR',
+ "The redirecting constructor '{0}' can't redirect to a constructor "
+ "of the abstract class '{1}'.",
+ correction: "Try redirecting to a constructor of a different class.");
+
+ /**
* 7.6.2 Factories: It is a compile-time error if <i>k</i> is prefixed with
* the const modifier but <i>k'</i> is not a constant constructor.
*/
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index 3d0f25e..dc1011c 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -277,7 +277,7 @@
assert(classElement is ClassElementImpl);
assert(_enclosingClass == null);
assert(_enclosingEnum == null);
- assert(_enclosingExecutable == null);
+ assert(_enclosingExecutable.element == null);
_enclosingClass = classElement;
}
@@ -4017,6 +4017,21 @@
redirectedConstructor.staticElement,
redirectedConstructor,
);
+ var redirectedClass =
+ redirectedConstructor.staticElement?.enclosingElement;
+ if (redirectedClass is ClassElement &&
+ redirectedClass.isAbstract &&
+ !redirectedConstructor.staticElement.isFactory) {
+ String enclosingTypeName = _enclosingClass.displayName;
+ String constructorStrName = enclosingTypeName;
+ if (declaration.name != null) {
+ constructorStrName += ".${declaration.name.name}";
+ }
+ _errorReporter.reportErrorForNode(
+ CompileTimeErrorCode.REDIRECT_TO_ABSTRACT_CLASS_CONSTRUCTOR,
+ redirectedConstructor,
+ [constructorStrName, redirectedClass.name]);
+ }
}
// check if there are redirected invocations
int numRedirections = 0;
diff --git a/pkg/analyzer/lib/src/task/strong/checker.dart b/pkg/analyzer/lib/src/task/strong/checker.dart
index e1a6501..7f5b2d4 100644
--- a/pkg/analyzer/lib/src/task/strong/checker.dart
+++ b/pkg/analyzer/lib/src/task/strong/checker.dart
@@ -271,7 +271,8 @@
checkBoolean(node.rightOperand);
break;
case TokenType.BANG_EQ:
- break;
+ case TokenType.BANG_EQ_EQ:
+ case TokenType.EQ_EQ_EQ:
case TokenType.QUESTION_QUESTION:
break;
default:
diff --git a/pkg/analyzer/lib/src/workspace/workspace.dart b/pkg/analyzer/lib/src/workspace/workspace.dart
index 3681cdf..51b67b3 100644
--- a/pkg/analyzer/lib/src/workspace/workspace.dart
+++ b/pkg/analyzer/lib/src/workspace/workspace.dart
@@ -79,7 +79,13 @@
*/
class WorkspaceWithDefaultAnalysisOptions {
/**
- * The uri for the analysis options file.
+ * The uri for the default analysis options file.
*/
static const String uri = 'package:dart.analysis_options/default.yaml';
+
+ /**
+ * The uri for third_party analysis options file.
+ */
+ static const String thirdPartyUri =
+ 'package:dart.analysis_options/third_party.yaml';
}
diff --git a/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart b/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart
index 24b695d..82ce793 100644
--- a/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart
+++ b/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart
@@ -139,6 +139,23 @@
]);
}
+ test_analysisOptions_file_inThirdParty() async {
+ newFile('/workspace/dart/analysis_options/lib/third_party.yaml',
+ content: r'''
+analyzer:
+ strong-mode:
+ implicit-casts: false
+''');
+
+ var aPath = '/workspace/third_party/dart/aaa/lib/a.dart';
+ await assertErrorsInFile(aPath, r'''
+num a = 0;
+int b = a;
+''', [
+ error(StaticTypeWarningCode.INVALID_ASSIGNMENT, 19, 1),
+ ]);
+ }
+
test_analysisOptions_lints() async {
newFile('/workspace/dart/analysis_options/lib/default.yaml', content: r'''
linter:
diff --git a/pkg/analyzer/test/src/dart/resolution/binary_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/binary_expression_test.dart
index f387181a2..27f64b1 100644
--- a/pkg/analyzer/test/src/dart/resolution/binary_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/binary_expression_test.dart
@@ -4,6 +4,7 @@
import 'package:analyzer/dart/analysis/features.dart';
import 'package:analyzer/src/dart/analysis/experiments.dart';
+import 'package:analyzer/src/dart/error/syntactic_errors.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -52,6 +53,22 @@
);
}
+ test_eqEqEq() async {
+ await assertErrorsInCode(r'''
+f(int a, int b) {
+ a === b;
+}
+''', [
+ error(ScannerErrorCode.UNSUPPORTED_OPERATOR, 22, 1),
+ ]);
+
+ assertBinaryExpression(
+ findNode.binary('a === b'),
+ element: null,
+ type: 'dynamic',
+ );
+ }
+
test_ifNull() async {
await assertNoErrorsInCode(r'''
f(int a, double b) {
diff --git a/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart b/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart
index b471124..2cc6cb6 100644
--- a/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart
@@ -419,6 +419,24 @@
]);
}
+ test_binary_eqEq_covariantParameterType() async {
+ await assertErrorsInCode(r'''
+class A {
+ bool operator==(covariant A other) => false;
+}
+
+main(A a, A? aq) {
+ a == 0;
+ aq == 1;
+ aq == aq;
+ aq == null;
+}
+''', [
+ error(StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE, 86, 1),
+ error(StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE, 97, 1),
+ ]);
+ }
+
test_dynamicCast() async {
await assertNoErrorsInCode(r'''
m() {
diff --git a/pkg/analyzer/test/src/diagnostics/redirect_to_abstract_class_constructor_test.dart b/pkg/analyzer/test/src/diagnostics/redirect_to_abstract_class_constructor_test.dart
new file mode 100644
index 0000000..a828062
--- /dev/null
+++ b/pkg/analyzer/test/src/diagnostics/redirect_to_abstract_class_constructor_test.dart
@@ -0,0 +1,52 @@
+// Copyright (c) 2020, 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/driver_resolution.dart';
+
+main() {
+ defineReflectiveSuite(() {
+ defineReflectiveTests(RedirectToAbstractClassConstructorTest);
+ });
+}
+
+@reflectiveTest
+class RedirectToAbstractClassConstructorTest extends DriverResolutionTest {
+ test_abstractRedirectsToSelf() async {
+ await assertErrorsInCode(r'''
+abstract class A {
+ factory A() = A._;
+ A._();
+}
+''', [
+ error(CompileTimeErrorCode.REDIRECT_TO_ABSTRACT_CLASS_CONSTRUCTOR, 35, 3),
+ ]);
+ }
+
+ test_redirectsToAbstractSubclass() async {
+ await assertErrorsInCode(r'''
+class A {
+ factory A.named() = B;
+ A();
+}
+
+abstract class B extends A {}
+''', [
+ error(CompileTimeErrorCode.REDIRECT_TO_ABSTRACT_CLASS_CONSTRUCTOR, 32, 1),
+ ]);
+ }
+
+ test_redirectsToSubclass() async {
+ await assertNoErrorsInCode(r'''
+class A {
+ factory A.named() = B;
+ A();
+}
+
+class B extends A {}
+''');
+ }
+}
diff --git a/pkg/analyzer/test/src/diagnostics/test_all.dart b/pkg/analyzer/test/src/diagnostics/test_all.dart
index 37b0a05..76664cc 100644
--- a/pkg/analyzer/test/src/diagnostics/test_all.dart
+++ b/pkg/analyzer/test/src/diagnostics/test_all.dart
@@ -376,6 +376,8 @@
as redirect_generative_to_missing_constructor;
import 'redirect_generative_to_non_generative_constructor_test.dart'
as redirect_generative_to_non_generative_constructor;
+import 'redirect_to_abstract_class_constructor_test.dart'
+ as redirect_to_abstract_class_constructor;
import 'redirect_to_invalid_function_type_test.dart'
as redirect_to_invalid_function_type;
import 'redirect_to_invalid_return_type_test.dart'
@@ -758,6 +760,7 @@
recursive_factory_redirect.main();
redirect_generative_to_missing_constructor.main();
redirect_generative_to_non_generative_constructor.main();
+ redirect_to_abstract_class_constructor.main();
redirect_to_invalid_function_type.main();
redirect_to_invalid_return_type.main();
redirect_to_missing_constructor.main();
diff --git a/pkg/compiler/lib/src/js_backend/native_data.dart b/pkg/compiler/lib/src/js_backend/native_data.dart
index 1d7794a..3519633 100644
--- a/pkg/compiler/lib/src/js_backend/native_data.dart
+++ b/pkg/compiler/lib/src/js_backend/native_data.dart
@@ -339,6 +339,7 @@
}
});
data.forEachJsInteropMember((ir.Member node, String name) {
+ if (memberIsIgnorable(node)) return;
jsInteropMembers[map.getMember(node)] = name;
});
diff --git a/pkg/compiler/lib/src/js_model/element_map_impl.dart b/pkg/compiler/lib/src/js_model/element_map_impl.dart
index 9ebf74a..90c7c44 100644
--- a/pkg/compiler/lib/src/js_model/element_map_impl.dart
+++ b/pkg/compiler/lib/src/js_model/element_map_impl.dart
@@ -2,7 +2,6 @@
// 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:front_end/src/api_unstable/dart2js.dart' show Link, LinkBuilder;
import 'package:front_end/src/api_unstable/dart2js.dart' as ir;
import 'package:kernel/ast.dart' as ir;
@@ -705,17 +704,41 @@
data.isMixinApplication = false;
data.interfaces = const <InterfaceType>[];
} else {
- InterfaceType processSupertype(ir.Supertype node) {
- InterfaceType supertype = _typeConverter.visitSupertype(node);
+ // Set of canonical supertypes.
+ //
+ // This is necessary to support when a class implements the same
+ // supertype in multiple non-conflicting ways, like implementing A<int*>
+ // and A<int?> or B<Object?> and B<dynamic>.
+ Set<InterfaceType> canonicalSupertypes = <InterfaceType>{};
+
+ InterfaceType processSupertype(ir.Supertype supertypeNode) {
+ supertypeNode = classHierarchy.getClassAsInstanceOf(
+ node, supertypeNode.classNode);
+ InterfaceType supertype =
+ _typeConverter.visitSupertype(supertypeNode);
+ canonicalSupertypes.add(supertype);
IndexedClass superclass = supertype.element;
JClassData superdata = classes.getData(superclass);
_ensureSupertypes(superclass, superdata);
+ for (InterfaceType supertype in superdata.orderedTypeSet.supertypes) {
+ ClassDefinition definition = getClassDefinition(supertype.element);
+ if (definition.kind == ClassKind.regular) {
+ ir.Supertype canonicalSupertype =
+ classHierarchy.getClassAsInstanceOf(node, definition.node);
+ if (canonicalSupertype != null) {
+ supertype = _typeConverter.visitSupertype(canonicalSupertype);
+ } else {
+ assert(supertype.typeArguments.isEmpty,
+ "Generic synthetic supertypes are not supported");
+ }
+ }
+ canonicalSupertypes.add(supertype);
+ }
return supertype;
}
InterfaceType supertype;
- LinkBuilder<InterfaceType> linkBuilder =
- new LinkBuilder<InterfaceType>();
+ List<InterfaceType> interfaces = <InterfaceType>[];
if (node.isMixinDeclaration) {
// A mixin declaration
//
@@ -733,7 +756,7 @@
// so we need get the superclasses from the on-clause, A, B, and C,
// through [superclassConstraints].
for (ir.Supertype constraint in node.superclassConstraints()) {
- linkBuilder.addLast(processSupertype(constraint));
+ interfaces.add(processSupertype(constraint));
}
// Set superclass to `Object`.
supertype = _commonElements.objectType;
@@ -744,26 +767,26 @@
ClassEntity defaultSuperclass =
_commonElements.getDefaultSuperclass(cls, nativeData);
data.supertype = _elementEnvironment.getRawType(defaultSuperclass);
+ assert(data.supertype.typeArguments.isEmpty,
+ "Generic default supertypes are not supported");
+ canonicalSupertypes.add(data.supertype);
} else {
data.supertype = supertype;
}
if (node.mixedInType != null) {
data.isMixinApplication = true;
- linkBuilder
- .addLast(data.mixedInType = processSupertype(node.mixedInType));
+ interfaces.add(data.mixedInType = processSupertype(node.mixedInType));
} else {
data.isMixinApplication = false;
}
node.implementedTypes.forEach((ir.Supertype supertype) {
- linkBuilder.addLast(processSupertype(supertype));
+ interfaces.add(processSupertype(supertype));
});
- Link<InterfaceType> interfaces =
- linkBuilder.toLink(const Link<InterfaceType>());
OrderedTypeSetBuilder setBuilder =
new KernelOrderedTypeSetBuilder(this, cls);
- data.orderedTypeSet = setBuilder.createOrderedTypeSet(
- data.supertype, interfaces.reverse(const Link<InterfaceType>()));
- data.interfaces = new List<InterfaceType>.from(interfaces.toList());
+ data.orderedTypeSet =
+ setBuilder.createOrderedTypeSet(canonicalSupertypes);
+ data.interfaces = interfaces;
}
}
}
diff --git a/pkg/compiler/lib/src/kernel/element_map.dart b/pkg/compiler/lib/src/kernel/element_map.dart
index 8fbb7d9..4b3917c8 100644
--- a/pkg/compiler/lib/src/kernel/element_map.dart
+++ b/pkg/compiler/lib/src/kernel/element_map.dart
@@ -185,3 +185,31 @@
JS_INTERCEPTOR_CONSTANT,
NONE,
}
+
+// Members which dart2js ignores.
+bool memberIsIgnorable(ir.Member node, {ir.Class cls}) {
+ if (node is! ir.Procedure) return false;
+ ir.Procedure member = node;
+ if ((member.isMemberSignature || member.isForwardingStub) &&
+ member.isAbstract) {
+ // Skip abstract forwarding stubs. These are never emitted but they
+ // might shadow the inclusion of a mixed in method in code like:
+ //
+ // class Super {}
+ // class Mixin<T> {
+ // void method(T t) {}
+ // }
+ // class Class extends Super with Mixin<int> {}
+ // main() => new Class().method();
+ //
+ // Here a stub is created for `Super&Mixin.method` hiding that
+ // `Mixin.method` is inherited by `Class`.
+ return true;
+ }
+ if (cls != null &&
+ (member.isMemberSignature || member.isForwardingStub) &&
+ cls.isAnonymousMixin) {
+ return true;
+ }
+ return false;
+}
diff --git a/pkg/compiler/lib/src/kernel/element_map_impl.dart b/pkg/compiler/lib/src/kernel/element_map_impl.dart
index 3d53600..8c34549 100644
--- a/pkg/compiler/lib/src/kernel/element_map_impl.dart
+++ b/pkg/compiler/lib/src/kernel/element_map_impl.dart
@@ -325,17 +325,38 @@
data.isMixinApplication = false;
data.interfaces = const <InterfaceType>[];
} else {
- InterfaceType processSupertype(ir.Supertype node) {
- InterfaceType supertype = _typeConverter.visitSupertype(node);
+ // Set of canonical supertypes.
+ //
+ // This is necessary to support when a class implements the same
+ // supertype in multiple non-conflicting ways, like implementing A<int*>
+ // and A<int?> or B<Object?> and B<dynamic>.
+ Set<InterfaceType> canonicalSupertypes = <InterfaceType>{};
+
+ InterfaceType processSupertype(ir.Supertype supertypeNode) {
+ supertypeNode = classHierarchy.getClassAsInstanceOf(
+ node, supertypeNode.classNode);
+ InterfaceType supertype =
+ _typeConverter.visitSupertype(supertypeNode);
+ canonicalSupertypes.add(supertype);
IndexedClass superclass = supertype.element;
KClassData superdata = classes.getData(superclass);
_ensureSupertypes(superclass, superdata);
+ for (InterfaceType supertype in superdata.orderedTypeSet.supertypes) {
+ ir.Supertype canonicalSupertype = classHierarchy
+ .getClassAsInstanceOf(node, getClassNode(supertype.element));
+ if (canonicalSupertype != null) {
+ supertype = _typeConverter.visitSupertype(canonicalSupertype);
+ } else {
+ assert(supertype.typeArguments.isEmpty,
+ "Generic synthetic supertypes are not supported");
+ }
+ canonicalSupertypes.add(supertype);
+ }
return supertype;
}
InterfaceType supertype;
- ir.LinkBuilder<InterfaceType> linkBuilder =
- new ir.LinkBuilder<InterfaceType>();
+ List<InterfaceType> interfaces = <InterfaceType>[];
if (node.isMixinDeclaration) {
// A mixin declaration
//
@@ -353,7 +374,7 @@
// so we need get the superclasses from the on-clause, A, B, and C,
// through [superclassConstraints].
for (ir.Supertype constraint in node.superclassConstraints()) {
- linkBuilder.addLast(processSupertype(constraint));
+ interfaces.add(processSupertype(constraint));
}
// Set superclass to `Object`.
supertype = _commonElements.objectType;
@@ -364,26 +385,26 @@
ClassEntity defaultSuperclass =
_commonElements.getDefaultSuperclass(cls, nativeBasicData);
data.supertype = _elementEnvironment.getRawType(defaultSuperclass);
+ assert(data.supertype.typeArguments.isEmpty,
+ "Generic default supertypes are not supported");
+ canonicalSupertypes.add(data.supertype);
} else {
data.supertype = supertype;
}
if (node.mixedInType != null) {
data.isMixinApplication = true;
- linkBuilder
- .addLast(data.mixedInType = processSupertype(node.mixedInType));
+ interfaces.add(data.mixedInType = processSupertype(node.mixedInType));
} else {
data.isMixinApplication = false;
}
node.implementedTypes.forEach((ir.Supertype supertype) {
- linkBuilder.addLast(processSupertype(supertype));
+ interfaces.add(processSupertype(supertype));
});
- ir.Link<InterfaceType> interfaces =
- linkBuilder.toLink(const ir.Link<InterfaceType>());
OrderedTypeSetBuilder setBuilder =
new KernelOrderedTypeSetBuilder(this, cls);
- data.orderedTypeSet = setBuilder.createOrderedTypeSet(
- data.supertype, interfaces.reverse(const ir.Link<InterfaceType>()));
- data.interfaces = new List<InterfaceType>.from(interfaces.toList());
+ data.orderedTypeSet =
+ setBuilder.createOrderedTypeSet(canonicalSupertypes);
+ data.interfaces = interfaces;
}
}
}
diff --git a/pkg/compiler/lib/src/kernel/env.dart b/pkg/compiler/lib/src/kernel/env.dart
index 517787b..23a170d 100644
--- a/pkg/compiler/lib/src/kernel/env.dart
+++ b/pkg/compiler/lib/src/kernel/env.dart
@@ -25,6 +25,7 @@
import '../ordered_typeset.dart';
import '../ssa/type_builder.dart';
import '../universe/member_usage.dart';
+import 'element_map.dart';
import 'element_map_impl.dart';
/// Environment for fast lookup of component libraries.
@@ -388,26 +389,7 @@
void addProcedure(ir.Procedure member,
{bool includeStatic, bool includeNoSuchMethodForwarders}) {
- if ((member.isMemberSignature || member.isForwardingStub) &&
- member.isAbstract) {
- // Skip abstract forwarding stubs. These are never emitted but they
- // might shadow the inclusion of a mixed in method in code like:
- //
- // class Super {}
- // class Mixin<T> {
- // void method(T t) {}
- // }
- // class Class extends Super with Mixin<int> {}
- // main() => new Class().method();
- //
- // Here a stub is created for `Super&Mixin.method` hiding that
- // `Mixin.method` is inherited by `Class`.
- return;
- }
- if ((member.isMemberSignature || member.isForwardingStub) &&
- cls.isAnonymousMixin) {
- return;
- }
+ if (memberIsIgnorable(member, cls: cls)) return;
if (!includeStatic && member.isStatic) return;
if (member.isNoSuchMethodForwarder) {
// TODO(sigmund): remove once #33732 is fixed.
diff --git a/pkg/compiler/lib/src/ordered_typeset.dart b/pkg/compiler/lib/src/ordered_typeset.dart
index d732744..dcbcf37 100644
--- a/pkg/compiler/lib/src/ordered_typeset.dart
+++ b/pkg/compiler/lib/src/ordered_typeset.dart
@@ -195,8 +195,7 @@
/// B: [B, Object]
/// C: [C, B, A, Object]
abstract class OrderedTypeSetBuilder {
- OrderedTypeSet createOrderedTypeSet(
- InterfaceType supertype, Link<DartType> interfaces);
+ OrderedTypeSet createOrderedTypeSet(Set<InterfaceType> canonicalSupertypes);
}
abstract class OrderedTypeSetBuilderBase implements OrderedTypeSetBuilder {
@@ -215,41 +214,14 @@
OrderedTypeSet getOrderedTypeSet(covariant ClassEntity cls);
@override
- OrderedTypeSet createOrderedTypeSet(
- InterfaceType supertype, Link<DartType> interfaces) {
- // TODO(15296): Collapse these iterations to one when the order is not
- // needed.
- add(supertype);
- for (Link<DartType> link = interfaces; !link.isEmpty; link = link.tail) {
- add(link.head);
- }
-
- _addAllSupertypes(supertype);
- for (Link<DartType> link = interfaces; !link.isEmpty; link = link.tail) {
- _addAllSupertypes(link.head);
+ OrderedTypeSet createOrderedTypeSet(Set<InterfaceType> canonicalSupertypes) {
+ for (InterfaceType supertype in canonicalSupertypes) {
+ add(supertype);
}
add(getThisType(cls));
return toTypeSet();
}
- /// Adds [type] and all supertypes of [type] to [allSupertypes] while
- /// substituting type variables.
- void _addAllSupertypes(InterfaceType type) {
- ClassEntity classElement = type.element;
- Link<InterfaceType> supertypes = getOrderedTypeSet(classElement).supertypes;
- assert(
- supertypes != null,
- failedAt(
- cls,
- "Supertypes not computed on $classElement "
- "during resolution of $cls"));
- while (!supertypes.isEmpty) {
- InterfaceType supertype = supertypes.head;
- add(substByContext(supertype, type));
- supertypes = supertypes.tail;
- }
- }
-
void add(InterfaceType type) {
if (type.element == cls) {
_addAtDepth(type, maxDepth + 1);
diff --git a/pkg/dds/dds_protocol.md b/pkg/dds/dds_protocol.md
index fb6fd82..c40b84d 100644
--- a/pkg/dds/dds_protocol.md
+++ b/pkg/dds/dds_protocol.md
@@ -8,14 +8,19 @@
[JSON-RPC 2.0]: http://www.jsonrpc.org/specification
-
-**Table of Contents**
+## Table of Contents
- [RPCs, Requests, and Responses](#rpcs-requests-and-responses)
- [Events](#events)
- [Types](#types)
- [IDs and Names](#ids-and-names)
- [Revision History](#revision-history)
+- [Public RPCs](#public-rpcs)
+ - [getClientName](#getclientname)
+ - [requirePermissionToResume](#requirepermissiontoresume)
+ - [setClientName](#setclientname)
+- [Public Types](#public-types)
+ - [ClientName](#clientname)
## RPCs, Requests, and Responses
@@ -41,16 +46,95 @@
The DDS Protocol supports all [public RPCs defined in the VM Service protocol][service-protocol-public-rpcs].
+### getClientName
+
+```
+ClientName getClientName()
+```
+
+The _getClientName_ RPC is used to retrieve the name associated with the currently
+connected VM service client. If no name was previously set through the
+[setClientName](#setclientname) RPC, a default name will be returned.
+
+See [ClientName](#clientname)
+
+### requirePermissionToResume
+
+```
+Success requirePermissionToResume(bool onPauseStart [optional],
+ bool onPauseReload[optional],
+ bool onPauseExit [optional])
+```
+
+The _requirePermissionToResume_ RPC is used to change the pause/resume behavior
+of isolates by providing a way for the VM service to wait for approval to resume
+from some set of clients. This is useful for clients which want to perform some
+operation on an isolate after a pause without it being resumed by another client.
+
+If the _onPauseStart_ parameter is `true`, isolates will not resume after pausing
+on start until the client sends a `resume` request and all other clients which
+need to provide resume approval for this pause type have done so.
+
+If the _onPauseReload_ parameter is `true`, isolates will not resume after pausing
+after a reload until the client sends a `resume` request and all other clients
+which need to provide resume approval for this pause type have done so.
+
+If the _onPauseExit_ parameter is `true`, isolates will not resume after pausing
+on exit until the client sends a `resume` request and all other clients which
+need to provide resume approval for this pause type have done so.
+
+**Important Notes:**
+
+- All clients with the same client name share resume permissions. Only a
+ single client of a given name is required to provide resume approval.
+- When a client requiring approval disconnects from the service, a paused
+ isolate may resume if all other clients requiring resume approval have
+ already given approval. In the case that no other client requires resume
+ approval for the current pause event, the isolate will be resumed if at
+ least one other client has attempted to [resume](resume) the isolate.
+
+### setClientName
+
+```
+Success setClientName(string name)
+```
+
+The _setClientName_ RPC is used to set a name to be associated with the currently
+connected VM service client. If the _name_ parameter is a non-empty string, _name_
+will become the new name associated with the client. If _name_ is an empty string,
+the client's name will be reset to its default name.
+
+See [Success](#success).
+
+## Public Types
+
+The DDS Protocol supports all [public types defined in the VM Service protocol][service-protocol-public-types].
+
+### ClientName
+
+```
+class ClientName extends Response {
+ // The name of the currently connected VM service client.
+ string name;
+}
+```
+
+See [getClientName](#getclientname) and [setClientName](#setclientname).
+
## Revision History
version | comments
------- | --------
0.x | Initial revision
+[resume]: https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md#resume
+[success]: https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md#success
+
[service-protocol]: https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md
[service-protocol-rpcs-requests-and-responses]: https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md#rpcs-requests-and-responses
[service-protocol-events]: https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md#events
[service-protocol-binary-events]: https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md#binary-events
[service-protocol-types]: https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md#types
[service-protocol-ids-and-names]: https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md#ids-and-names
-[service-protocol-public-rpcs]: https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md#public-rpcs
\ No newline at end of file
+[service-protocol-public-rpcs]: https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md#public-rpcs
+[service-protocol-public-types]: https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md#public-types
\ No newline at end of file
diff --git a/pkg/dds/lib/dds.dart b/pkg/dds/lib/dds.dart
index c71a3d6..4312c28 100644
--- a/pkg/dds/lib/dds.dart
+++ b/pkg/dds/lib/dds.dart
@@ -25,7 +25,10 @@
part 'src/binary_compatible_peer.dart';
part 'src/client.dart';
+part 'src/client_manager.dart';
+part 'src/constants.dart';
part 'src/dds_impl.dart';
+part 'src/isolate_manager.dart';
part 'src/named_lookup.dart';
part 'src/rpc_error_codes.dart';
part 'src/stream_manager.dart';
diff --git a/pkg/dds/lib/src/client.dart b/pkg/dds/lib/src/client.dart
index a6e39c2..2c19752 100644
--- a/pkg/dds/lib/src/client.dart
+++ b/pkg/dds/lib/src/client.dart
@@ -51,13 +51,13 @@
_clientPeer.registerMethod('streamListen', (parameters) async {
final streamId = parameters['streamId'].asString;
await dds.streamManager.streamListen(this, streamId);
- return _success;
+ return _RPCResponses.success;
});
_clientPeer.registerMethod('streamCancel', (parameters) async {
final streamId = parameters['streamId'].asString;
await dds.streamManager.streamCancel(this, streamId);
- return _success;
+ return _RPCResponses.success;
});
_clientPeer.registerMethod('registerService', (parameters) async {
@@ -75,9 +75,30 @@
serviceId,
alias,
);
- return _success;
+ return _RPCResponses.success;
});
+ _clientPeer.registerMethod(
+ 'getClientName',
+ (parameters) => {'type': 'ClientName', 'name': name},
+ );
+
+ _clientPeer.registerMethod(
+ 'setClientName',
+ (parameters) => dds.clientManager.setClientName(this, parameters),
+ );
+
+ _clientPeer.registerMethod(
+ 'requirePermissionToResume',
+ (parameters) =>
+ dds.clientManager.requirePermissionToResume(this, parameters),
+ );
+
+ _clientPeer.registerMethod(
+ 'resume',
+ (parameters) => dds.isolateManager.resumeIsolate(this, parameters),
+ );
+
// When invoked within a fallback, the next fallback will start executing.
// The final fallback forwards the request to the VM service directly.
@alwaysThrows
@@ -96,7 +117,7 @@
// method, forward the request to that client.
final method = getMethod(parameters.method);
final namespace = getNamespace(parameters.method);
- final serviceClient = dds._clients[namespace];
+ final serviceClient = dds.clientManager.clients[namespace];
if (serviceClient != null && serviceClient.services.containsKey(method)) {
return await Future.any(
[
@@ -123,9 +144,20 @@
await _vmServicePeer.sendRequest(parameters.method, parameters.asMap));
}
- static const _success = <String, dynamic>{
- 'type': 'Success',
- };
+ static int _idCounter = 0;
+ final int _id = ++_idCounter;
+
+ /// The name given to the client upon its creation.
+ String get defaultClientName => 'client$_id';
+
+ /// The current name associated with this client.
+ String get name => _name;
+
+ // NOTE: this should not be called directly except from:
+ // - `_ClientManager._clearClientName`
+ // - `_ClientManager._setClientNameHelper`
+ set name(String n) => _name = n ?? defaultClientName;
+ String _name;
final _DartDevelopmentService dds;
final Map<String, String> services = {};
diff --git a/pkg/dds/lib/src/client_manager.dart b/pkg/dds/lib/src/client_manager.dart
new file mode 100644
index 0000000..a7e066e
--- /dev/null
+++ b/pkg/dds/lib/src/client_manager.dart
@@ -0,0 +1,146 @@
+// Copyright (c) 2020, 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.
+
+part of dds;
+
+/// [_ClientResumePermissions] associates a list of
+/// [_DartDevelopmentServiceClient]s, all of the same client name, with a
+/// permissions mask used to determine which pause event types require approval
+/// from one of the listed clients before resuming an isolate.
+class _ClientResumePermissions {
+ final List<_DartDevelopmentServiceClient> clients = [];
+ int permissionsMask = 0;
+}
+
+/// The [_ClientManager] has the responsibility of managing all state and
+/// requests related to client connections, including:
+/// - A list of all currently connected clients
+/// - Tracking client names and associated permissions for isolate resume
+/// synchronization
+/// - Handling RPC invocations which change client state
+class _ClientManager {
+ _ClientManager(this.dds);
+
+ /// Initialize state for a newly connected client.
+ void addClient(_DartDevelopmentServiceClient client) {
+ _setClientNameHelper(
+ client,
+ client.defaultClientName,
+ );
+ clients.add(client);
+ client.listen().then((_) => removeClient(client));
+ }
+
+ /// Cleanup state for a disconnected client.
+ void removeClient(_DartDevelopmentServiceClient client) {
+ _clearClientName(client);
+ clients.remove(client);
+ }
+
+ /// Cleanup clients on DDS shutdown.
+ Future<void> shutdown() async {
+ // Close all incoming websocket connections.
+ final futures = <Future>[];
+ for (final client in clients) {
+ futures.add(client.close());
+ }
+ await Future.wait(futures);
+ }
+
+ /// Associates a name with a given client.
+ ///
+ /// The provided client name is used to track isolate resume approvals.
+ Map<String, dynamic> setClientName(
+ _DartDevelopmentServiceClient client,
+ json_rpc.Parameters parameters,
+ ) {
+ _setClientNameHelper(client, parameters['name'].asString);
+ return _RPCResponses.success;
+ }
+
+ /// Require permission from this client before resuming an isolate.
+ Map<String, dynamic> requirePermissionToResume(
+ _DartDevelopmentServiceClient client,
+ json_rpc.Parameters parameters,
+ ) {
+ int pauseTypeMask = 0;
+ if (parameters['onPauseStart'].asBoolOr(false)) {
+ pauseTypeMask |= _PauseTypeMasks.pauseOnStartMask;
+ }
+ if (parameters['onPauseReload'].asBoolOr(false)) {
+ pauseTypeMask |= _PauseTypeMasks.pauseOnReloadMask;
+ }
+ if (parameters['onPauseExit'].asBoolOr(false)) {
+ pauseTypeMask |= _PauseTypeMasks.pauseOnExitMask;
+ }
+
+ clientResumePermissions[client.name].permissionsMask = pauseTypeMask;
+ return _RPCResponses.success;
+ }
+
+ /// Changes `client`'s name to `name` while also updating resume permissions
+ /// and approvals.
+ void _setClientNameHelper(
+ _DartDevelopmentServiceClient client,
+ String name,
+ ) {
+ _clearClientName(client);
+ client.name = name.isEmpty ? client.defaultClientName : name;
+ clientResumePermissions.putIfAbsent(
+ client.name,
+ () => _ClientResumePermissions(),
+ );
+ clientResumePermissions[client.name].clients.add(client);
+ }
+
+ /// Resets the client's name while also cleaning up resume permissions and
+ /// approvals.
+ void _clearClientName(
+ _DartDevelopmentServiceClient client,
+ ) {
+ final name = client.name;
+ client.name = null;
+ final clientsForName = clientResumePermissions[name];
+ if (clientsForName != null) {
+ clientsForName.clients.remove(client);
+ // If this was the last client with a given name, cleanup resume
+ // permissions.
+ if (clientsForName.clients.isEmpty) {
+ clientResumePermissions.remove(name);
+
+ // Check to see if we need to resume any isolates now that the last
+ // client of a given name has disconnected or changed names.
+ //
+ // An isolate will be resumed in this situation if:
+ //
+ // 1) This client required resume approvals for the current pause event
+ // associated with the isolate and all other required resume approvals
+ // have been provided by other clients.
+ //
+ // OR
+ //
+ // 2) This client required resume approvals for the current pause event
+ // associated with the isolate, no other clients require resume approvals
+ // for the current pause event, and at least one client has issued a resume
+ // request.
+ dds.isolateManager.isolates.forEach(
+ (_, isolate) async =>
+ await isolate.maybeResumeAfterClientChange(name),
+ );
+ }
+ }
+ }
+
+ // Handles namespace generation for service extensions.
+ static const _kServicePrologue = 's';
+ final NamedLookup<_DartDevelopmentServiceClient> clients = NamedLookup(
+ prologue: _kServicePrologue,
+ );
+
+ /// Mapping of client names to all clients of that name and their resume
+ /// permissions.
+ final Map<String, _ClientResumePermissions> clientResumePermissions = {};
+
+ final _DartDevelopmentService dds;
+}
diff --git a/pkg/dds/lib/src/constants.dart b/pkg/dds/lib/src/constants.dart
new file mode 100644
index 0000000..6a41e0b
--- /dev/null
+++ b/pkg/dds/lib/src/constants.dart
@@ -0,0 +1,33 @@
+// Copyright (c) 2020, 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.
+
+part of dds;
+
+abstract class _RPCResponses {
+ static const success = <String, dynamic>{
+ 'type': 'Success',
+ };
+
+ static const collectedSentinel = <String, dynamic>{
+ 'type': 'Sentinel',
+ 'kind': 'Collected',
+ 'valueAsString': '<collected>',
+ };
+}
+
+abstract class _PauseTypeMasks {
+ static const pauseOnStartMask = 1 << 0;
+ static const pauseOnReloadMask = 1 << 1;
+ static const pauseOnExitMask = 1 << 2;
+}
+
+abstract class _ServiceEvents {
+ static const isolateExit = 'IsolateExit';
+ static const isolateSpawn = 'IsolateSpawn';
+ static const isolateStart = 'IsolateStart';
+ static const pauseExit = 'PauseExit';
+ static const pausePostRequest = 'PausePostRequest';
+ static const pauseStart = 'PauseStart';
+ static const resume = 'Resume';
+}
diff --git a/pkg/dds/lib/src/dds_impl.dart b/pkg/dds/lib/src/dds_impl.dart
index 4cd7b2d..f47d909f 100644
--- a/pkg/dds/lib/src/dds_impl.dart
+++ b/pkg/dds/lib/src/dds_impl.dart
@@ -6,18 +6,24 @@
class _DartDevelopmentService implements DartDevelopmentService {
_DartDevelopmentService(this._remoteVmServiceUri, this._uri) {
+ _clientManager = _ClientManager(this);
+ _isolateManager = _IsolateManager(this);
_streamManager = _StreamManager(this);
}
Future<void> startService() async {
+ // TODO(bkonyi): throw if we've already shutdown.
// Establish the connection to the VM service.
_vmServiceSocket = WebSocketChannel.connect(remoteVmServiceWsUri);
_vmServiceClient = _BinaryCompatiblePeer(_vmServiceSocket, _streamManager);
// Setup the JSON RPC client with the VM service.
- unawaited(_vmServiceClient.listen());
+ unawaited(_vmServiceClient.listen().then((_) => shutdown()));
// Setup stream event handling.
- streamManager.listen();
+ await streamManager.listen();
+
+ // Populate initial isolate state.
+ await _isolateManager.initialize();
// Once we have a connection to the VM service, we're ready to spawn the intermediary.
await _startDDSServer();
@@ -52,15 +58,16 @@
/// Stop accepting requests after gracefully handling existing requests.
Future<void> shutdown() async {
+ if (_done.isCompleted || _shuttingDown) {
+ // Already shutdown.
+ return;
+ }
+ _shuttingDown = true;
// Don't accept anymore HTTP requests.
await _server.close();
- // Close all incoming websocket connections.
- final futures = <Future>[];
- for (final client in _clients) {
- futures.add(client.close());
- }
- await Future.wait(futures);
+ // Close connections to clients.
+ await clientManager.shutdown();
// Close connection to VM service.
await _vmServiceSocket.sink.close();
@@ -79,8 +86,7 @@
ws,
_vmServiceClient,
);
- _clients.add(client);
- client.listen().then((_) => _clients.remove(client));
+ clientManager.addClient(client);
});
Handler _httpHandler() {
@@ -108,7 +114,7 @@
}
String _getNamespace(_DartDevelopmentServiceClient client) =>
- _clients.keyOf(client);
+ clientManager.clients.keyOf(client);
Uri get remoteVmServiceUri => _remoteVmServiceUri;
Uri get remoteVmServiceWsUri => _toWebSocket(_remoteVmServiceUri);
@@ -122,16 +128,17 @@
Future<void> get done => _done.future;
Completer _done = Completer<void>();
+ bool _shuttingDown = false;
+
+ _ClientManager get clientManager => _clientManager;
+ _ClientManager _clientManager;
+
+ _IsolateManager get isolateManager => _isolateManager;
+ _IsolateManager _isolateManager;
_StreamManager get streamManager => _streamManager;
_StreamManager _streamManager;
- // Handles namespace generation for service extensions.
- static const _kServicePrologue = 's';
- final NamedLookup<_DartDevelopmentServiceClient> _clients = NamedLookup(
- prologue: _kServicePrologue,
- );
-
json_rpc.Peer _vmServiceClient;
WebSocketChannel _vmServiceSocket;
HttpServer _server;
diff --git a/pkg/dds/lib/src/isolate_manager.dart b/pkg/dds/lib/src/isolate_manager.dart
new file mode 100644
index 0000000..1ebc9f7
--- /dev/null
+++ b/pkg/dds/lib/src/isolate_manager.dart
@@ -0,0 +1,237 @@
+// Copyright (c) 2020, 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.
+
+part of dds;
+
+/// This file contains functionality used to track the running state of
+/// all isolates in a given Dart process.
+///
+/// [_RunningIsolate] is a representation of a single live isolate and contains
+/// running state information for that isolate. In addition, approvals from
+/// clients used to synchronize isolate resuming across multiple clients are
+/// tracked in this class.
+///
+/// The [_IsolateManager] keeps track of all the isolates in the
+/// target process and handles isolate lifecycle events including:
+/// - Startup
+/// - Shutdown
+/// - Pauses
+///
+/// The [_IsolateManager] also handles the `resume` RPC, which checks the
+/// resume approvals in the target [_RunningIsolate] to determine if the
+/// isolate should be resumed or wait for additional approvals to be granted.
+
+enum _IsolateState {
+ start,
+ running,
+ pauseStart,
+ pauseExit,
+ pausePostRequest,
+}
+
+class _RunningIsolate {
+ _RunningIsolate(this.isolateManager, this.portId, this.name);
+
+ // State setters.
+ void pausedOnExit() => _state = _IsolateState.pauseExit;
+ void pausedOnStart() => _state = _IsolateState.pauseStart;
+ void pausedPostRequest() => _state = _IsolateState.pausePostRequest;
+ void resumed() => running();
+ void running() => _state = _IsolateState.running;
+ void started() => _state = _IsolateState.start;
+
+ /// Resumes the isolate if all clients which need to approve a resume have
+ /// done so. Called when the last client of a given name disconnects or
+ /// changes name to ensure we don't deadlock waiting for approval to resume
+ /// from a disconnected client.
+ Future<void> maybeResumeAfterClientChange(String clientName) async {
+ // Remove approvals from the disconnected client.
+ _resumeApprovalsByName.remove(clientName);
+
+ if (shouldResume()) {
+ clearResumeApprovals();
+ await isolateManager.dds._vmServiceClient.sendRequest('resume', {
+ 'isolateId': 'isolates/$portId',
+ });
+ }
+ }
+
+ /// Returns true if this isolate should resume given its client approvals
+ /// state.
+ ///
+ /// If `resumingClient` is provided, it will be added to the set of clients
+ /// which have provided approval to resume this isolate. If not provided,
+ /// the existing approvals state will be examined to see if the isolate
+ /// should resume due to a client disconnect or name change.
+ bool shouldResume({_DartDevelopmentServiceClient resumingClient}) {
+ if (resumingClient != null) {
+ // Mark approval by the client.
+ _resumeApprovalsByName.add(resumingClient.name);
+ }
+ final requiredClientApprovals = <String>{};
+ final permissions =
+ isolateManager.dds.clientManager.clientResumePermissions;
+
+ // Determine which clients require approval for this pause type.
+ permissions.forEach((name, clientNamePermissions) {
+ if (clientNamePermissions.permissionsMask & _isolateStateMask != 0) {
+ requiredClientApprovals.add(name);
+ }
+ });
+
+ // We require at least a single client to resume, even if that client
+ // doesn't require resume approval.
+ if (_resumeApprovalsByName.isEmpty) {
+ return false;
+ }
+
+ // If all the required approvals are present, we should resume.
+ return _resumeApprovalsByName.containsAll(requiredClientApprovals);
+ }
+
+ /// Resets the internal resume approvals state.
+ ///
+ /// Should always be called after an isolate is resumed.
+ void clearResumeApprovals() => _resumeApprovalsByName.clear();
+
+ int get _isolateStateMask => isolateStateToMaskMapping[_state] ?? 0;
+
+ static const isolateStateToMaskMapping = {
+ _IsolateState.pauseStart: _PauseTypeMasks.pauseOnStartMask,
+ _IsolateState.pausePostRequest: _PauseTypeMasks.pauseOnReloadMask,
+ _IsolateState.pauseExit: _PauseTypeMasks.pauseOnExitMask,
+ };
+
+ final _IsolateManager isolateManager;
+ final String name;
+ final String portId;
+ final Set<String> _resumeApprovalsByName = {};
+ _IsolateState _state;
+}
+
+class _IsolateManager {
+ _IsolateManager(this.dds);
+
+ /// Handles state changes for isolates.
+ void handleIsolateEvent(json_rpc.Parameters parameters) {
+ final event = parameters['event'];
+ final eventKind = event['kind'].asString;
+
+ // There's no interesting information about isolate state associated with
+ // and IsolateSpawn event.
+ if (eventKind == _ServiceEvents.isolateSpawn) {
+ return;
+ }
+
+ final isolateData = event['isolate'];
+ final id = isolateData['number'].asString;
+ final name = isolateData['name'].asString;
+ _updateIsolateState(id, name, eventKind);
+ }
+
+ void _updateIsolateState(String id, String name, String eventKind) {
+ switch (eventKind) {
+ case _ServiceEvents.isolateStart:
+ isolateStarted(id, name);
+ break;
+ case _ServiceEvents.isolateExit:
+ isolateExited(id);
+ break;
+ default:
+ final isolate = isolates[id];
+ switch (eventKind) {
+ case _ServiceEvents.pauseExit:
+ isolate.pausedOnExit();
+ break;
+ case _ServiceEvents.pausePostRequest:
+ isolate.pausedPostRequest();
+ break;
+ case _ServiceEvents.pauseStart:
+ isolate.pausedOnStart();
+ break;
+ case _ServiceEvents.resume:
+ isolate.resumed();
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ /// Initializes the set of running isolates.
+ Future<void> initialize() async {
+ final vm = await dds._vmServiceClient.sendRequest('getVM');
+ final List<Map> isolateRefs = vm['isolates'].cast<Map<String, dynamic>>();
+ // Check the pause event for each isolate to determine whether or not the
+ // isolate is already paused.
+ for (final isolateRef in isolateRefs) {
+ final isolate = await dds._vmServiceClient.sendRequest('getIsolate', {
+ 'isolateId': isolateRef['id'],
+ });
+ final portId = isolate['number'];
+ final name = isolate['name'];
+ final eventKind = isolate['pauseEvent']['kind'];
+ isolates[portId] = _RunningIsolate(this, portId, name);
+ _updateIsolateState(portId, name, eventKind);
+ }
+ }
+
+ /// Initializes state for a newly started isolate.
+ void isolateStarted(String portId, String name) {
+ final isolate = _RunningIsolate(this, portId, name);
+ isolate.running();
+ isolates[portId] = isolate;
+ }
+
+ /// Cleans up state for an isolate that has exited.
+ void isolateExited(String portId) {
+ isolates.remove(portId);
+ }
+
+ /// Handles `resume` RPC requests. If the client requires that approval be
+ /// given before resuming an isolate, this method will:
+ ///
+ /// - Update the approval state for the isolate.
+ /// - Resume the isolate if approval has been given by all clients which
+ /// require approval.
+ ///
+ /// Returns a collected sentinel if the isolate no longer exists.
+ Future<Map<String, dynamic>> resumeIsolate(
+ _DartDevelopmentServiceClient client,
+ json_rpc.Parameters parameters,
+ ) async {
+ final isolateId = parameters['isolateId'].asString;
+ final portId = _isolateIdToPortId(isolateId);
+ final isolate = isolates[portId];
+ if (isolate == null) {
+ return _RPCResponses.collectedSentinel;
+ }
+ if (isolate.shouldResume(resumingClient: client)) {
+ isolate.clearResumeApprovals();
+ return await _sendResumeRequest(isolateId, parameters);
+ }
+ return _RPCResponses.success;
+ }
+
+ /// Forwards a `resume` request to the VM service.
+ Future<Map<String, dynamic>> _sendResumeRequest(
+ String isolateId,
+ json_rpc.Parameters parameters,
+ ) async {
+ final step = parameters['step'].asStringOr(null);
+ final frameIndex = parameters['frameIndex'].asIntOr(null);
+ final resumeResult = await dds._vmServiceClient.sendRequest('resume', {
+ 'isolateId': isolateId,
+ if (step != null) 'step': step,
+ if (frameIndex != null) 'frameIndex': frameIndex,
+ });
+ return resumeResult;
+ }
+
+ static String _isolateIdToPortId(String isolateId) =>
+ isolateId.substring('isolates/'.length);
+
+ final _DartDevelopmentService dds;
+ final Map<String, _RunningIsolate> isolates = {};
+}
diff --git a/pkg/dds/lib/src/stream_manager.dart b/pkg/dds/lib/src/stream_manager.dart
index 6e2d8dd..217471f 100644
--- a/pkg/dds/lib/src/stream_manager.dart
+++ b/pkg/dds/lib/src/stream_manager.dart
@@ -83,13 +83,24 @@
/// Start listening for `streamNotify` events from the VM service and forward
/// them to the clients which have subscribed to the stream.
- void listen() => dds._vmServiceClient.registerMethod(
- 'streamNotify',
- (parameters) {
- final streamId = parameters['streamId'].asString;
- streamNotify(streamId, parameters.value);
- },
- );
+ Future<void> listen() async {
+ // The _IsolateManager requires information from both the Debug and
+ // Isolate streams, so they must always be subscribed to by DDS.
+ for (final stream in ddsCoreStreams) {
+ await streamListen(null, stream);
+ }
+ dds._vmServiceClient.registerMethod(
+ 'streamNotify',
+ (parameters) {
+ final streamId = parameters['streamId'].asString;
+ // Forward events from the streams _IsolateManager subscribes to.
+ if (isolateManagerStreams.contains(streamId)) {
+ dds.isolateManager.handleIsolateEvent(parameters);
+ }
+ streamNotify(streamId, parameters.value);
+ },
+ );
+ }
/// Subscribes `client` to a stream.
///
@@ -112,7 +123,9 @@
if (streamListeners[stream].contains(client)) {
throw kStreamAlreadySubscribedException;
}
- streamListeners[stream].add(client);
+ if (client != null) {
+ streamListeners[stream].add(client);
+ }
}
/// Unsubscribes `client` from a stream.
@@ -129,7 +142,8 @@
throw kStreamNotSubscribedException;
}
listeners.remove(client);
- if (listeners.isEmpty) {
+ // Don't cancel streams DDS needs to function.
+ if (listeners.isEmpty && !ddsCoreStreams.contains(stream)) {
streamListeners.remove(stream);
final result = await dds._vmServiceClient.sendRequest('streamCancel', {
'streamId': stream,
@@ -165,6 +179,21 @@
_RpcErrorCodes.kStreamNotSubscribed,
);
+ static const kDebugStream = 'Debug';
+ static const kIsolateStream = 'Isolate';
+
+ // Never cancel the Debug or Isolate stream as `_IsolateManager` requires
+ // them for isolate state notifications.
+ static const isolateManagerStreams = <String>{
+ kDebugStream,
+ kIsolateStream,
+ };
+
+ // The set of streams that DDS requires to function.
+ static final ddsCoreStreams = <String>{
+ ...isolateManagerStreams,
+ };
+
final _DartDevelopmentService dds;
final streamListeners = <String, List<_DartDevelopmentServiceClient>>{};
}
diff --git a/pkg/front_end/lib/src/api_prototype/language_version.dart b/pkg/front_end/lib/src/api_prototype/language_version.dart
index af123e5..2ce4a67 100644
--- a/pkg/front_end/lib/src/api_prototype/language_version.dart
+++ b/pkg/front_end/lib/src/api_prototype/language_version.dart
@@ -7,7 +7,7 @@
import 'package:_fe_analyzer_shared/src/scanner/scanner.dart'
show LanguageVersionToken, Scanner, ScannerConfiguration, scan;
-import 'package:kernel/ast.dart' show Version;
+import 'package:kernel/ast.dart' show Version, defaultLanguageVersion;
export 'package:kernel/ast.dart' show Version;
import 'package:package_config/package_config.dart'
@@ -17,6 +17,8 @@
import '../fasta/compiler_context.dart' show CompilerContext;
+import '../fasta/source/source_library_builder.dart' show SourceLibraryBuilder;
+
import '../fasta/uri_translator.dart' show UriTranslator;
import 'compiler_options.dart' show CompilerOptions;
@@ -122,3 +124,12 @@
return new Version(currentSdkVersionMajor, currentSdkVersionMinor);
});
}
+
+Future<bool> uriUsesLegacyLanguageVersion(
+ Uri uri, CompilerOptions options) async {
+ // This method is here in order to use the opt out hack here for test
+ // sources.
+ if (SourceLibraryBuilder.isOptOutTest(uri)) return true;
+ Version uriVersion = await languageVersionForUri(uri, options);
+ return (uriVersion < defaultLanguageVersion);
+}
diff --git a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
index 2ce9496..6b0594b 100644
--- a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
@@ -386,7 +386,7 @@
languageVersion.version >= enableNonNullableVersion &&
!isOptOutTest(library.importUri);
- bool isOptOutTest(Uri uri) {
+ static bool isOptOutTest(Uri uri) {
String path = uri.path;
for (String testDir in ['/tests/', '/generated_tests/']) {
int start = path.indexOf(testDir);
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart
new file mode 100644
index 0000000..ed232d2
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart
@@ -0,0 +1,9 @@
+class C {
+ int with() => 7;
+ int with = 7;
+ int get with => 7;
+ void set with(int x) {}
+}
+
+int with() => 7;
+int with = 7;
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.expect
new file mode 100644
index 0000000..eac2ae2
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.expect
@@ -0,0 +1,326 @@
+Problems reported:
+
+parser/error_recovery/method_called_with:2:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int with() => 7;
+ ^^^
+
+parser/error_recovery/method_called_with:2:3: Expected ';' after this.
+ int with() => 7;
+ ^^^
+
+parser/error_recovery/method_called_with:2:7: Expected a class member, but got 'with'.
+ int with() => 7;
+ ^^^^
+
+parser/error_recovery/method_called_with:2:11: Expected an identifier, but got '('.
+ int with() => 7;
+ ^
+
+parser/error_recovery/method_called_with:3:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int with = 7;
+ ^^^
+
+parser/error_recovery/method_called_with:3:3: Expected ';' after this.
+ int with = 7;
+ ^^^
+
+parser/error_recovery/method_called_with:3:7: Expected a class member, but got 'with'.
+ int with = 7;
+ ^^^^
+
+parser/error_recovery/method_called_with:3:12: Operator declarations must be preceded by the keyword 'operator'.
+ int with = 7;
+ ^
+
+parser/error_recovery/method_called_with:3:12: The string '=' isn't a user-definable operator.
+ int with = 7;
+ ^
+
+parser/error_recovery/method_called_with:3:12: A method declaration needs an explicit list of parameters.
+ int with = 7;
+ ^
+
+parser/error_recovery/method_called_with:3:14: Expected a function body, but got '7'.
+ int with = 7;
+ ^
+
+parser/error_recovery/method_called_with:3:14: Expected a class member, but got '7'.
+ int with = 7;
+ ^
+
+parser/error_recovery/method_called_with:3:15: Expected a class member, but got ';'.
+ int with = 7;
+ ^
+
+parser/error_recovery/method_called_with:4:7: Expected ';' after this.
+ int get with => 7;
+ ^^^
+
+parser/error_recovery/method_called_with:4:11: Expected a class member, but got 'with'.
+ int get with => 7;
+ ^^^^
+
+parser/error_recovery/method_called_with:4:16: Expected an identifier, but got '=>'.
+ int get with => 7;
+ ^^
+
+parser/error_recovery/method_called_with:4:16: A method declaration needs an explicit list of parameters.
+ int get with => 7;
+ ^^
+
+parser/error_recovery/method_called_with:5:8: Expected ';' after this.
+ void set with(int x) {}
+ ^^^
+
+parser/error_recovery/method_called_with:5:12: Expected a class member, but got 'with'.
+ void set with(int x) {}
+ ^^^^
+
+parser/error_recovery/method_called_with:5:16: Expected an identifier, but got '('.
+ void set with(int x) {}
+ ^
+
+parser/error_recovery/method_called_with:8:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int with() => 7;
+^^^
+
+parser/error_recovery/method_called_with:8:1: Expected ';' after this.
+int with() => 7;
+^^^
+
+parser/error_recovery/method_called_with:8:5: Expected an identifier, but got 'with'.
+int with() => 7;
+ ^^^^
+
+parser/error_recovery/method_called_with:9:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int with = 7;
+^^^
+
+parser/error_recovery/method_called_with:9:1: Expected ';' after this.
+int with = 7;
+^^^
+
+parser/error_recovery/method_called_with:9:5: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int with = 7;
+ ^^^^
+
+parser/error_recovery/method_called_with:9:5: Expected an identifier, but got 'with'.
+int with = 7;
+ ^^^^
+
+beginCompilationUnit(class)
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables({)
+ beginClassDeclaration(class, null, C)
+ handleNoType(C)
+ handleClassExtends(null)
+ handleClassNoWithClause()
+ handleClassOrMixinImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinBody(DeclarationKind.Class, {)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType({)
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(with)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ endClassFields(null, null, null, null, 1, int, ;)
+ endMember()
+ beginMetadataStar(with)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'with'., null, {token: with}], with, with)
+ handleInvalidMember(with)
+ endMember()
+ beginMetadataStar(()
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, ()
+ handleNoType(with)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ handleIdentifier(, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ handleLiteralInt(7)
+ handleExpressionFunctionBody(=>, ;)
+ endClassMethod(null, , (, null, ;)
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType(;)
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(with)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ endClassFields(null, null, null, null, 1, int, ;)
+ endMember()
+ beginMetadataStar(with)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'with'., null, {token: with}], with, with)
+ handleInvalidMember(with)
+ endMember()
+ beginMetadataStar(=)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingOperatorKeyword, =, =)
+ beginMethod(null, null, null, null, null, operator)
+ handleNoType(with)
+ handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ handleInvalidOperatorName(operator, =)
+ handleNoTypeVariables(7)
+ handleRecoverableError(MissingMethodParameters, =, =)
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '7'., null, {token: 7}], 7, 7)
+ handleInvalidFunctionBody({)
+ endClassMethod(null, operator, (, null, })
+ endMember()
+ beginMetadataStar(7)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '7'., null, {token: 7}], 7, 7)
+ handleInvalidMember(7)
+ endMember()
+ beginMetadataStar(;)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ handleInvalidMember(;)
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(get)
+ handleType(int, null)
+ handleIdentifier(get, fieldDeclaration)
+ handleNoFieldInitializer(with)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], get, get)
+ endClassFields(null, null, null, null, 1, int, ;)
+ endMember()
+ beginMetadataStar(with)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'with'., null, {token: with}], with, with)
+ handleInvalidMember(with)
+ endMember()
+ beginMetadataStar(=>)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, =>)
+ handleNoType(with)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '=>'., null, {token: =>}], =>, =>)
+ handleIdentifier(, methodDeclaration)
+ handleNoTypeVariables(=>)
+ handleRecoverableError(MissingMethodParameters, =>, =>)
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ handleLiteralInt(7)
+ handleExpressionFunctionBody(=>, ;)
+ endClassMethod(null, , (, null, ;)
+ endMember()
+ beginMetadataStar(void)
+ endMetadataStar(0)
+ beginMember()
+ handleVoidKeyword(void)
+ handleIdentifier(set, fieldDeclaration)
+ handleNoFieldInitializer(with)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], set, set)
+ endClassFields(null, null, null, null, 1, void, ;)
+endMember()
+beginMetadataStar(with)
+endMetadataStar(0)
+beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'with'., null, {token: with}], with, with)
+ handleInvalidMember(with)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+ beginMethod(null, null, null, null, null, ()
+ handleNoType(with)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ handleIdentifier(, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ endBlockFunctionBody(0, {, })
+ endClassMethod(null, , (, null, })
+endMember()
+endClassOrMixinBody(DeclarationKind.Class, 14, {, })
+endClassDeclaration(class, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(with)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(with)
+beginMetadataStar(with)
+endMetadataStar(0)
+beginTopLevelMember(with)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+handleIdentifier(with, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+handleLiteralInt(7)
+handleExpressionFunctionBody(=>, ;)
+endTopLevelMethod(with, null, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(with)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(with)
+beginMetadataStar(with)
+endMetadataStar(0)
+beginTopLevelMember(with)
+handleRecoverableError(MissingConstFinalVarOrType, with, with)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+handleIdentifier(with, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(7)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, with, ;)
+endTopLevelDeclaration()
+endCompilationUnit(5, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.intertwined.expect
new file mode 100644
index 0000000..3335498
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.intertwined.expect
@@ -0,0 +1,461 @@
+parseUnit(class)
+ skipErrorTokens(class)
+ listener: beginCompilationUnit(class)
+ syntheticPreviousToken(class)
+ parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+ parseMetadataStar()
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(, class, Instance of 'DirectiveContext')
+ parseClassDeclarationModifiers(, class)
+ parseClassOrNamedMixinApplication(null, class)
+ listener: beginClassOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables({)
+ listener: beginClassDeclaration(class, null, C)
+ parseClass(C, class, class, C)
+ parseClassHeaderOpt(C, class, class)
+ parseClassExtendsOpt(C)
+ listener: handleNoType(C)
+ listener: handleClassExtends(null)
+ parseWithClauseOpt(C)
+ listener: handleClassNoWithClause()
+ parseClassOrMixinImplementsOpt(C)
+ listener: handleClassOrMixinImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(C, DeclarationKind.Class, C)
+ listener: beginClassOrMixinBody(DeclarationKind.Class, {)
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl({, DeclarationKind.Class, C)
+ parseMetadataStar({)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields({, null, null, null, null, null, {, Instance of 'NoType', int, DeclarationKind.Class, C)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType({)
+ ensureIdentifier({, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, C)
+ listener: handleNoFieldInitializer(with)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, with)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(with)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, C)
+ reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'with'., null, {token: with}], with, with)
+ listener: handleInvalidMember(with)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(with, DeclarationKind.Class, C)
+ parseMetadataStar(with)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(with, with, null, null, null, null, null, with, Instance of 'NoType', null, DeclarationKind.Class, C)
+ parseMethod(with, null, null, null, null, null, with, Instance of 'NoType', null, (, DeclarationKind.Class, C)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(with)
+ ensureIdentifier(with, methodDeclaration)
+ insertSyntheticIdentifier(with, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ parseExpressionFunctionBody(=>, false)
+ parseExpression(=>)
+ parsePrecedenceExpression(=>, 1, true)
+ parseUnaryExpression(=>, true)
+ parsePrimary(=>, expression)
+ parseLiteralInt(=>)
+ listener: handleLiteralInt(7)
+ ensureSemicolon(7)
+ listener: handleExpressionFunctionBody(=>, ;)
+ inGenerator()
+ listener: endClassMethod(null, , (, null, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, C)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, C)
+ listener: handleNoFieldInitializer(with)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, with)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(with)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, C)
+ reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'with'., null, {token: with}], with, with)
+ listener: handleInvalidMember(with)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(with, DeclarationKind.Class, C)
+ parseMetadataStar(with)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(with, with, null, null, null, null, null, with, Instance of 'NoType', null, DeclarationKind.Class, C)
+ parseInvalidOperatorDeclaration(with, null, null, null, null, null, with, DeclarationKind.Class, C)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(with, null, null, null, null, null, with, Instance of 'NoType', null, operator, DeclarationKind.Class, C)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(with)
+ parseOperatorName(with)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(7)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(7, Message[ExpectedFunctionBody, Expected a function body, but got '7'., null, {token: 7}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '7'., null, {token: 7}], 7, 7)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 7)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, C)
+ parseMetadataStar(})
+ listener: beginMetadataStar(7)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, C)
+ reportRecoverableErrorWithToken(7, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '7'., null, {token: 7}], 7, 7)
+ listener: handleInvalidMember(7)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(7, DeclarationKind.Class, C)
+ parseMetadataStar(7)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(7, 7, null, null, null, null, null, 7, Instance of 'NoType', null, DeclarationKind.Class, C)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.Class, C)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(get)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(get, fieldDeclaration)
+ parseFieldInitializerOpt(get, get, null, null, DeclarationKind.Class, C)
+ listener: handleNoFieldInitializer(with)
+ ensureSemicolon(get)
+ reportRecoverableError(get, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], get, get)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, with)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(with)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, C)
+ reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'with'., null, {token: with}], with, with)
+ listener: handleInvalidMember(with)
+ listener: endMember()
+ notEofOrValue(}, =>)
+ parseClassOrMixinOrExtensionMemberImpl(with, DeclarationKind.Class, C)
+ parseMetadataStar(with)
+ listener: beginMetadataStar(=>)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(with, with, null, null, null, null, null, with, Instance of 'NoType', null, DeclarationKind.Class, C)
+ parseMethod(with, null, null, null, null, null, with, Instance of 'NoType', null, =>, DeclarationKind.Class, C)
+ listener: beginMethod(null, null, null, null, null, =>)
+ listener: handleNoType(with)
+ ensureIdentifier(with, methodDeclaration)
+ insertSyntheticIdentifier(with, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError(=>, Message[ExpectedIdentifier, Expected an identifier, but got '=>'., null, {token: =>}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '=>'., null, {token: =>}], =>, =>)
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(=>)
+ parseGetterOrFormalParameters(, =>, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=>, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =>, =>)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ parseExpressionFunctionBody(=>, false)
+ parseExpression(=>)
+ parsePrecedenceExpression(=>, 1, true)
+ parseUnaryExpression(=>, true)
+ parsePrimary(=>, expression)
+ parseLiteralInt(=>)
+ listener: handleLiteralInt(7)
+ ensureSemicolon(7)
+ listener: handleExpressionFunctionBody(=>, ;)
+ inGenerator()
+ listener: endClassMethod(null, , (, null, ;)
+ listener: endMember()
+ notEofOrValue(}, void)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(void)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'VoidType', set, DeclarationKind.Class, C)
+ listener: handleVoidKeyword(void)
+ ensureIdentifier(void, fieldDeclaration)
+ listener: handleIdentifier(set, fieldDeclaration)
+ parseFieldInitializerOpt(set, set, null, null, DeclarationKind.Class, C)
+ listener: handleNoFieldInitializer(with)
+ ensureSemicolon(set)
+ reportRecoverableError(set, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], set, set)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, void, ;)
+ listener: endMember()
+ notEofOrValue(}, with)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(with)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, C)
+ reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'with'., null, {token: with}], with, with)
+ listener: handleInvalidMember(with)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(with, DeclarationKind.Class, C)
+ parseMetadataStar(with)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(with, with, null, null, null, null, null, with, Instance of 'NoType', null, DeclarationKind.Class, C)
+ parseMethod(with, null, null, null, null, null, with, Instance of 'NoType', null, (, DeclarationKind.Class, C)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(with)
+ ensureIdentifier(with, methodDeclaration)
+ insertSyntheticIdentifier(with, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(0, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, })
+ listener: endClassOrMixinBody(DeclarationKind.Class, 14, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(with)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(with)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(with)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(with)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, with)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+ listener: handleIdentifier(with, topLevelFunctionDeclaration)
+ parseMethodTypeVar(with)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(with, with, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(with, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ parseExpressionFunctionBody(=>, false)
+ parseExpression(=>)
+ parsePrecedenceExpression(=>, 1, true)
+ parseUnaryExpression(=>, true)
+ parsePrimary(=>, expression)
+ parseLiteralInt(=>)
+ listener: handleLiteralInt(7)
+ ensureSemicolon(7)
+ listener: handleExpressionFunctionBody(=>, ;)
+ inGenerator()
+ listener: endTopLevelMethod(with, null, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(with)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(with)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(with)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(with)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', with, DeclarationKind.TopLevel, null)
+ reportRecoverableError(with, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, with, with)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelVariableDeclaration)
+ reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+ listener: handleIdentifier(with, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(with, with, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(7)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, with, ;)
+ listener: endTopLevelDeclaration()
+ reportAllErrorTokens(class)
+ listener: endCompilationUnit(5, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.parser.expect
new file mode 100644
index 0000000..0d88f7f
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.parser.expect
@@ -0,0 +1,23 @@
+NOTICE: Stream was rewritten by parser!
+
+class C {
+int ;with() => 7;
+int ;with operator= (){}7;
+int get ;with ()=> 7;
+void set ;with(int x) {}
+}
+
+int ;with() => 7;
+int ;with = 7;
+
+
+class[KeywordToken] C[StringToken] {[BeginToken]
+int[StringToken] ;[SyntheticToken]with[KeywordToken][SyntheticStringToken]([BeginToken])[SimpleToken] =>[SimpleToken] 7[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]with[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]7[StringToken];[SimpleToken]
+int[StringToken] get[KeywordToken] ;[SyntheticToken]with[KeywordToken] [SyntheticStringToken]([SyntheticBeginToken])[SyntheticToken]=>[SimpleToken] 7[StringToken];[SimpleToken]
+void[KeywordToken] set[KeywordToken] ;[SyntheticToken]with[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]with[KeywordToken]([BeginToken])[SimpleToken] =>[SimpleToken] 7[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]with[KeywordToken] =[SimpleToken] 7[StringToken];[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.scanner.expect
new file mode 100644
index 0000000..8295b68
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.scanner.expect
@@ -0,0 +1,21 @@
+class C {
+int with() => 7;
+int with = 7;
+int get with => 7;
+void set with(int x) {}
+}
+
+int with() => 7;
+int with = 7;
+
+
+class[KeywordToken] C[StringToken] {[BeginToken]
+int[StringToken] with[KeywordToken]([BeginToken])[SimpleToken] =>[SimpleToken] 7[StringToken];[SimpleToken]
+int[StringToken] with[KeywordToken] =[SimpleToken] 7[StringToken];[SimpleToken]
+int[StringToken] get[KeywordToken] with[KeywordToken] =>[SimpleToken] 7[StringToken];[SimpleToken]
+void[KeywordToken] set[KeywordToken] with[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] with[KeywordToken]([BeginToken])[SimpleToken] =>[SimpleToken] 7[StringToken];[SimpleToken]
+int[StringToken] with[KeywordToken] =[SimpleToken] 7[StringToken];[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart
new file mode 100644
index 0000000..ed5ce5e
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart
@@ -0,0 +1,9 @@
+class C {
+ int With() => 7;
+ int With = 7;
+ int get With => 7;
+ void set With(int x) {}
+}
+
+int With() => 7;
+int With = 7;
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.expect
new file mode 100644
index 0000000..5dd0a88
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.expect
@@ -0,0 +1,114 @@
+beginCompilationUnit(class)
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables({)
+ beginClassDeclaration(class, null, C)
+ handleNoType(C)
+ handleClassExtends(null)
+ handleClassNoWithClause()
+ handleClassOrMixinImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinBody(DeclarationKind.Class, {)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, With)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(With)
+ handleType(int, null)
+ handleIdentifier(With, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ handleLiteralInt(7)
+ handleExpressionFunctionBody(=>, ;)
+ endClassMethod(null, int, (, null, ;)
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(With)
+ handleType(int, null)
+ handleIdentifier(With, fieldDeclaration)
+ beginFieldInitializer(=)
+ handleLiteralInt(7)
+ endFieldInitializer(=, ;)
+ endClassFields(null, null, null, null, 1, int, ;)
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, get, With)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(get)
+ handleType(int, null)
+ handleIdentifier(With, methodDeclaration)
+ handleNoTypeVariables(=>)
+ handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ handleLiteralInt(7)
+ handleExpressionFunctionBody(=>, ;)
+ endClassMethod(get, int, =>, null, ;)
+ endMember()
+ beginMetadataStar(void)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, set, With)
+ handleVoidKeyword(void)
+ handleIdentifier(With, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ endBlockFunctionBody(0, {, })
+ endClassMethod(set, void, (, null, })
+ endMember()
+ endClassOrMixinBody(DeclarationKind.Class, 4, {, })
+ endClassDeclaration(class, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(With)
+ handleType(int, null)
+ handleIdentifier(With, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ handleLiteralInt(7)
+ handleExpressionFunctionBody(=>, ;)
+ endTopLevelMethod(int, null, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(With)
+ handleType(int, null)
+ handleIdentifier(With, topLevelVariableDeclaration)
+ beginFieldInitializer(=)
+ handleLiteralInt(7)
+ endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration()
+endCompilationUnit(3, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.intertwined.expect
new file mode 100644
index 0000000..695beee
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.intertwined.expect
@@ -0,0 +1,236 @@
+parseUnit(class)
+ skipErrorTokens(class)
+ listener: beginCompilationUnit(class)
+ syntheticPreviousToken(class)
+ parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+ parseMetadataStar()
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(, class, Instance of 'DirectiveContext')
+ parseClassDeclarationModifiers(, class)
+ parseClassOrNamedMixinApplication(null, class)
+ listener: beginClassOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables({)
+ listener: beginClassDeclaration(class, null, C)
+ parseClass(C, class, class, C)
+ parseClassHeaderOpt(C, class, class)
+ parseClassExtendsOpt(C)
+ listener: handleNoType(C)
+ listener: handleClassExtends(null)
+ parseWithClauseOpt(C)
+ listener: handleClassNoWithClause()
+ parseClassOrMixinImplementsOpt(C)
+ listener: handleClassOrMixinImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(C, DeclarationKind.Class, C)
+ listener: beginClassOrMixinBody(DeclarationKind.Class, {)
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl({, DeclarationKind.Class, C)
+ parseMetadataStar({)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod({, null, null, null, null, null, {, Instance of 'SimpleType', null, With, DeclarationKind.Class, C)
+ listener: beginMethod(null, null, null, null, null, With)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(With)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(With, methodDeclaration)
+ parseQualifiedRestOpt(With, methodDeclarationContinuation)
+ parseMethodTypeVar(With)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(With, With, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(With, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ parseExpressionFunctionBody(=>, false)
+ parseExpression(=>)
+ parsePrecedenceExpression(=>, 1, true)
+ parseUnaryExpression(=>, true)
+ parsePrimary(=>, expression)
+ parseLiteralInt(=>)
+ listener: handleLiteralInt(7)
+ ensureSemicolon(7)
+ listener: handleExpressionFunctionBody(=>, ;)
+ inGenerator()
+ listener: endClassMethod(null, int, (, null, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', With, DeclarationKind.Class, C)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(With)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(With, fieldDeclaration)
+ parseFieldInitializerOpt(With, With, null, null, DeclarationKind.Class, C)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(7)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(;, null, null, null, null, null, ;, Instance of 'SimpleType', get, With, DeclarationKind.Class, C)
+ listener: beginMethod(null, null, null, null, get, With)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(get)
+ listener: handleType(int, null)
+ ensureIdentifier(get, methodDeclaration)
+ listener: handleIdentifier(With, methodDeclaration)
+ parseQualifiedRestOpt(With, methodDeclarationContinuation)
+ listener: handleNoTypeVariables(=>)
+ parseGetterOrFormalParameters(With, With, true, MemberKind.NonStaticMethod)
+ listener: handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+ parseInitializersOpt(With)
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt(With)
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(With, false, true)
+ parseExpressionFunctionBody(=>, false)
+ parseExpression(=>)
+ parsePrecedenceExpression(=>, 1, true)
+ parseUnaryExpression(=>, true)
+ parsePrimary(=>, expression)
+ parseLiteralInt(=>)
+ listener: handleLiteralInt(7)
+ ensureSemicolon(7)
+ listener: handleExpressionFunctionBody(=>, ;)
+ inGenerator()
+ listener: endClassMethod(get, int, =>, null, ;)
+ listener: endMember()
+ notEofOrValue(}, void)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(void)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(;, null, null, null, null, null, ;, Instance of 'VoidType', set, With, DeclarationKind.Class, C)
+ listener: beginMethod(null, null, null, null, set, With)
+ listener: handleVoidKeyword(void)
+ ensureIdentifier(set, methodDeclaration)
+ listener: handleIdentifier(With, methodDeclaration)
+ parseQualifiedRestOpt(With, methodDeclarationContinuation)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(With, With, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(With, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(0, {, })
+ listener: endClassMethod(set, void, (, null, })
+ listener: endMember()
+ notEofOrValue(}, })
+ listener: endClassOrMixinBody(DeclarationKind.Class, 4, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, With)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(With)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(With, topLevelFunctionDeclaration)
+ parseMethodTypeVar(With)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(With, With, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(With, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ parseExpressionFunctionBody(=>, false)
+ parseExpression(=>)
+ parsePrecedenceExpression(=>, 1, true)
+ parseUnaryExpression(=>, true)
+ parsePrimary(=>, expression)
+ parseLiteralInt(=>)
+ listener: handleLiteralInt(7)
+ ensureSemicolon(7)
+ listener: handleExpressionFunctionBody(=>, ;)
+ inGenerator()
+ listener: endTopLevelMethod(int, null, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', With, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(With)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(With, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(With, With, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(7)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration()
+ reportAllErrorTokens(class)
+ listener: endCompilationUnit(3, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.parser.expect
new file mode 100644
index 0000000..285faf2
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.parser.expect
@@ -0,0 +1,21 @@
+class C {
+int With() => 7;
+int With = 7;
+int get With => 7;
+void set With(int x) {}
+}
+
+int With() => 7;
+int With = 7;
+
+
+class[KeywordToken] C[StringToken] {[BeginToken]
+int[StringToken] With[StringToken]([BeginToken])[SimpleToken] =>[SimpleToken] 7[StringToken];[SimpleToken]
+int[StringToken] With[StringToken] =[SimpleToken] 7[StringToken];[SimpleToken]
+int[StringToken] get[KeywordToken] With[StringToken] =>[SimpleToken] 7[StringToken];[SimpleToken]
+void[KeywordToken] set[KeywordToken] With[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] With[StringToken]([BeginToken])[SimpleToken] =>[SimpleToken] 7[StringToken];[SimpleToken]
+int[StringToken] With[StringToken] =[SimpleToken] 7[StringToken];[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.scanner.expect
new file mode 100644
index 0000000..285faf2
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.scanner.expect
@@ -0,0 +1,21 @@
+class C {
+int With() => 7;
+int With = 7;
+int get With => 7;
+void set With(int x) {}
+}
+
+int With() => 7;
+int With = 7;
+
+
+class[KeywordToken] C[StringToken] {[BeginToken]
+int[StringToken] With[StringToken]([BeginToken])[SimpleToken] =>[SimpleToken] 7[StringToken];[SimpleToken]
+int[StringToken] With[StringToken] =[SimpleToken] 7[StringToken];[SimpleToken]
+int[StringToken] get[KeywordToken] With[StringToken] =>[SimpleToken] 7[StringToken];[SimpleToken]
+void[KeywordToken] set[KeywordToken] With[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] With[StringToken]([BeginToken])[SimpleToken] =>[SimpleToken] 7[StringToken];[SimpleToken]
+int[StringToken] With[StringToken] =[SimpleToken] 7[StringToken];[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart
new file mode 100644
index 0000000..30ca978
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart
@@ -0,0 +1,35 @@
+class WrapperClass {
+ int assert = 42;
+ int break = 42;
+ int case = 42;
+ int catch = 42;
+ int class = 42;
+ int const = 42;
+ int continue = 42;
+ int default = 42;
+ int do = 42;
+ int else = 42;
+ int enum = 42;
+ int extends = 42;
+ int false = 42;
+ int final = 42;
+ int finally = 42;
+ int for = 42;
+ int if = 42;
+ int in = 42;
+ int is = 42;
+ int new = 42;
+ int null = 42;
+ int rethrow = 42;
+ int return = 42;
+ int super = 42;
+ int switch = 42;
+ int this = 42;
+ int throw = 42;
+ int true = 42;
+ int try = 42;
+ int var = 42;
+ int void = 42;
+ int while = 42;
+ int with = 42;
+}
\ No newline at end of file
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart.expect
new file mode 100644
index 0000000..313f38a
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart.expect
@@ -0,0 +1,2633 @@
+Problems reported:
+
+parser/error_recovery/reserved_words_class_fields:2:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int assert = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:2:3: Expected ';' after this.
+ int assert = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:2:7: Expected a class member, but got 'assert'.
+ int assert = 42;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_class_fields:2:14: Operator declarations must be preceded by the keyword 'operator'.
+ int assert = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:2:14: The string '=' isn't a user-definable operator.
+ int assert = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:2:14: A method declaration needs an explicit list of parameters.
+ int assert = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:2:16: Expected a function body, but got '42'.
+ int assert = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:2:16: Expected a class member, but got '42'.
+ int assert = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:2:18: Expected a class member, but got ';'.
+ int assert = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:3:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int break = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:3:3: Expected ';' after this.
+ int break = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:3:7: Expected a class member, but got 'break'.
+ int break = 42;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_fields:3:13: Operator declarations must be preceded by the keyword 'operator'.
+ int break = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:3:13: The string '=' isn't a user-definable operator.
+ int break = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:3:13: A method declaration needs an explicit list of parameters.
+ int break = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:3:15: Expected a function body, but got '42'.
+ int break = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:3:15: Expected a class member, but got '42'.
+ int break = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:3:17: Expected a class member, but got ';'.
+ int break = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:4:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int case = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:4:3: Expected ';' after this.
+ int case = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:4:7: Expected a class member, but got 'case'.
+ int case = 42;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_fields:4:12: Operator declarations must be preceded by the keyword 'operator'.
+ int case = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:4:12: The string '=' isn't a user-definable operator.
+ int case = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:4:12: A method declaration needs an explicit list of parameters.
+ int case = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:4:14: Expected a function body, but got '42'.
+ int case = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:4:14: Expected a class member, but got '42'.
+ int case = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:4:16: Expected a class member, but got ';'.
+ int case = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:5:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int catch = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:5:3: Expected ';' after this.
+ int catch = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:5:7: Expected a class member, but got 'catch'.
+ int catch = 42;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_fields:5:13: Operator declarations must be preceded by the keyword 'operator'.
+ int catch = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:5:13: The string '=' isn't a user-definable operator.
+ int catch = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:5:13: A method declaration needs an explicit list of parameters.
+ int catch = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:5:15: Expected a function body, but got '42'.
+ int catch = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:5:15: Expected a class member, but got '42'.
+ int catch = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:5:17: Expected a class member, but got ';'.
+ int catch = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:6:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int class = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:6:3: Expected ';' after this.
+ int class = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:6:7: Classes can't be declared inside other classes.
+ int class = 42;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_fields:6:13: Operator declarations must be preceded by the keyword 'operator'.
+ int class = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:6:13: The string '=' isn't a user-definable operator.
+ int class = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:6:13: A method declaration needs an explicit list of parameters.
+ int class = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:6:15: Expected a function body, but got '42'.
+ int class = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:6:15: Expected a class member, but got '42'.
+ int class = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:6:17: Expected a class member, but got ';'.
+ int class = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:7:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int const = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:7:3: Expected ';' after this.
+ int const = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:7:13: Operator declarations must be preceded by the keyword 'operator'.
+ int const = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:7:13: The string '=' isn't a user-definable operator.
+ int const = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:7:13: A method declaration needs an explicit list of parameters.
+ int const = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:7:15: Expected a function body, but got '42'.
+ int const = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:7:7: Getters, setters and methods can't be declared to be 'const'.
+ int const = 42;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_fields:7:15: Expected a class member, but got '42'.
+ int const = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:7:17: Expected a class member, but got ';'.
+ int const = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:8:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int continue = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:8:3: Expected ';' after this.
+ int continue = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:8:7: Expected a class member, but got 'continue'.
+ int continue = 42;
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_class_fields:8:16: Operator declarations must be preceded by the keyword 'operator'.
+ int continue = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:8:16: The string '=' isn't a user-definable operator.
+ int continue = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:8:16: A method declaration needs an explicit list of parameters.
+ int continue = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:8:18: Expected a function body, but got '42'.
+ int continue = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:8:18: Expected a class member, but got '42'.
+ int continue = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:8:20: Expected a class member, but got ';'.
+ int continue = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:9:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int default = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:9:3: Expected ';' after this.
+ int default = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:9:7: Expected a class member, but got 'default'.
+ int default = 42;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_class_fields:9:15: Operator declarations must be preceded by the keyword 'operator'.
+ int default = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:9:15: The string '=' isn't a user-definable operator.
+ int default = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:9:15: A method declaration needs an explicit list of parameters.
+ int default = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:9:17: Expected a function body, but got '42'.
+ int default = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:9:17: Expected a class member, but got '42'.
+ int default = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:9:19: Expected a class member, but got ';'.
+ int default = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:10:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int do = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:10:3: Expected ';' after this.
+ int do = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:10:7: Expected a class member, but got 'do'.
+ int do = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:10:10: Operator declarations must be preceded by the keyword 'operator'.
+ int do = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:10:10: The string '=' isn't a user-definable operator.
+ int do = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:10:10: A method declaration needs an explicit list of parameters.
+ int do = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:10:12: Expected a function body, but got '42'.
+ int do = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:10:12: Expected a class member, but got '42'.
+ int do = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:10:14: Expected a class member, but got ';'.
+ int do = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:11:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int else = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:11:3: Expected ';' after this.
+ int else = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:11:7: Expected a class member, but got 'else'.
+ int else = 42;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_fields:11:12: Operator declarations must be preceded by the keyword 'operator'.
+ int else = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:11:12: The string '=' isn't a user-definable operator.
+ int else = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:11:12: A method declaration needs an explicit list of parameters.
+ int else = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:11:14: Expected a function body, but got '42'.
+ int else = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:11:14: Expected a class member, but got '42'.
+ int else = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:11:16: Expected a class member, but got ';'.
+ int else = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:12:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int enum = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:12:3: Expected ';' after this.
+ int enum = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:12:7: Enums can't be declared inside classes.
+ int enum = 42;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_fields:12:12: Operator declarations must be preceded by the keyword 'operator'.
+ int enum = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:12:12: The string '=' isn't a user-definable operator.
+ int enum = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:12:12: A method declaration needs an explicit list of parameters.
+ int enum = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:12:14: Expected a function body, but got '42'.
+ int enum = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:12:14: Expected a class member, but got '42'.
+ int enum = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:12:16: Expected a class member, but got ';'.
+ int enum = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:13:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int extends = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:13:3: Expected ';' after this.
+ int extends = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:13:7: Expected a class member, but got 'extends'.
+ int extends = 42;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_class_fields:13:15: Operator declarations must be preceded by the keyword 'operator'.
+ int extends = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:13:15: The string '=' isn't a user-definable operator.
+ int extends = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:13:15: A method declaration needs an explicit list of parameters.
+ int extends = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:13:17: Expected a function body, but got '42'.
+ int extends = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:13:17: Expected a class member, but got '42'.
+ int extends = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:13:19: Expected a class member, but got ';'.
+ int extends = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:14:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int false = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:14:3: Expected ';' after this.
+ int false = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:14:7: Expected a class member, but got 'false'.
+ int false = 42;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_fields:14:13: Operator declarations must be preceded by the keyword 'operator'.
+ int false = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:14:13: The string '=' isn't a user-definable operator.
+ int false = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:14:13: A method declaration needs an explicit list of parameters.
+ int false = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:14:15: Expected a function body, but got '42'.
+ int false = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:14:15: Expected a class member, but got '42'.
+ int false = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:14:17: Expected a class member, but got ';'.
+ int false = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:15:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int final = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:15:3: Expected ';' after this.
+ int final = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:15:13: Operator declarations must be preceded by the keyword 'operator'.
+ int final = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:15:7: Can't have modifier 'final' here.
+ int final = 42;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_fields:15:13: The string '=' isn't a user-definable operator.
+ int final = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:15:13: A method declaration needs an explicit list of parameters.
+ int final = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:15:15: Expected a function body, but got '42'.
+ int final = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:15:15: Expected a class member, but got '42'.
+ int final = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:15:17: Expected a class member, but got ';'.
+ int final = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:16:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int finally = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:16:3: Expected ';' after this.
+ int finally = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:16:7: Expected a class member, but got 'finally'.
+ int finally = 42;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_class_fields:16:15: Operator declarations must be preceded by the keyword 'operator'.
+ int finally = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:16:15: The string '=' isn't a user-definable operator.
+ int finally = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:16:15: A method declaration needs an explicit list of parameters.
+ int finally = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:16:17: Expected a function body, but got '42'.
+ int finally = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:16:17: Expected a class member, but got '42'.
+ int finally = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:16:19: Expected a class member, but got ';'.
+ int finally = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:17:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int for = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:17:3: Expected ';' after this.
+ int for = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:17:7: Expected a class member, but got 'for'.
+ int for = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:17:11: Operator declarations must be preceded by the keyword 'operator'.
+ int for = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:17:11: The string '=' isn't a user-definable operator.
+ int for = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:17:11: A method declaration needs an explicit list of parameters.
+ int for = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:17:13: Expected a function body, but got '42'.
+ int for = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:17:13: Expected a class member, but got '42'.
+ int for = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:17:15: Expected a class member, but got ';'.
+ int for = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:18:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int if = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:18:3: Expected ';' after this.
+ int if = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:18:7: Expected a class member, but got 'if'.
+ int if = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:18:10: Operator declarations must be preceded by the keyword 'operator'.
+ int if = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:18:10: The string '=' isn't a user-definable operator.
+ int if = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:18:10: A method declaration needs an explicit list of parameters.
+ int if = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:18:12: Expected a function body, but got '42'.
+ int if = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:18:12: Expected a class member, but got '42'.
+ int if = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:18:14: Expected a class member, but got ';'.
+ int if = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:19:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int in = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:19:3: Expected ';' after this.
+ int in = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:19:7: Expected a class member, but got 'in'.
+ int in = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:19:10: Operator declarations must be preceded by the keyword 'operator'.
+ int in = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:19:10: The string '=' isn't a user-definable operator.
+ int in = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:19:10: A method declaration needs an explicit list of parameters.
+ int in = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:19:12: Expected a function body, but got '42'.
+ int in = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:19:12: Expected a class member, but got '42'.
+ int in = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:19:14: Expected a class member, but got ';'.
+ int in = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:20:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int is = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:20:3: Expected ';' after this.
+ int is = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:20:7: Expected a class member, but got 'is'.
+ int is = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:20:10: Operator declarations must be preceded by the keyword 'operator'.
+ int is = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:20:10: The string '=' isn't a user-definable operator.
+ int is = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:20:10: A method declaration needs an explicit list of parameters.
+ int is = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:20:12: Expected a function body, but got '42'.
+ int is = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:20:12: Expected a class member, but got '42'.
+ int is = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:20:14: Expected a class member, but got ';'.
+ int is = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:21:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int new = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:21:3: Expected ';' after this.
+ int new = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:21:7: Expected a class member, but got 'new'.
+ int new = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:21:11: Operator declarations must be preceded by the keyword 'operator'.
+ int new = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:21:11: The string '=' isn't a user-definable operator.
+ int new = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:21:11: A method declaration needs an explicit list of parameters.
+ int new = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:21:13: Expected a function body, but got '42'.
+ int new = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:21:13: Expected a class member, but got '42'.
+ int new = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:21:15: Expected a class member, but got ';'.
+ int new = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:22:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int null = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:22:3: Expected ';' after this.
+ int null = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:22:7: Expected a class member, but got 'null'.
+ int null = 42;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_fields:22:12: Operator declarations must be preceded by the keyword 'operator'.
+ int null = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:22:12: The string '=' isn't a user-definable operator.
+ int null = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:22:12: A method declaration needs an explicit list of parameters.
+ int null = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:22:14: Expected a function body, but got '42'.
+ int null = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:22:14: Expected a class member, but got '42'.
+ int null = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:22:16: Expected a class member, but got ';'.
+ int null = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:23:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int rethrow = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:23:3: Expected ';' after this.
+ int rethrow = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:23:7: Expected a class member, but got 'rethrow'.
+ int rethrow = 42;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_class_fields:23:15: Operator declarations must be preceded by the keyword 'operator'.
+ int rethrow = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:23:15: The string '=' isn't a user-definable operator.
+ int rethrow = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:23:15: A method declaration needs an explicit list of parameters.
+ int rethrow = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:23:17: Expected a function body, but got '42'.
+ int rethrow = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:23:17: Expected a class member, but got '42'.
+ int rethrow = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:23:19: Expected a class member, but got ';'.
+ int rethrow = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:24:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int return = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:24:3: Expected ';' after this.
+ int return = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:24:7: Expected a class member, but got 'return'.
+ int return = 42;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_class_fields:24:14: Operator declarations must be preceded by the keyword 'operator'.
+ int return = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:24:14: The string '=' isn't a user-definable operator.
+ int return = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:24:14: A method declaration needs an explicit list of parameters.
+ int return = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:24:16: Expected a function body, but got '42'.
+ int return = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:24:16: Expected a class member, but got '42'.
+ int return = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:24:18: Expected a class member, but got ';'.
+ int return = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:25:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int super = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:25:3: Expected ';' after this.
+ int super = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:25:7: Expected a class member, but got 'super'.
+ int super = 42;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_fields:25:13: Operator declarations must be preceded by the keyword 'operator'.
+ int super = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:25:13: The string '=' isn't a user-definable operator.
+ int super = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:25:13: A method declaration needs an explicit list of parameters.
+ int super = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:25:15: Expected a function body, but got '42'.
+ int super = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:25:15: Expected a class member, but got '42'.
+ int super = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:25:17: Expected a class member, but got ';'.
+ int super = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:26:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int switch = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:26:3: Expected ';' after this.
+ int switch = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:26:7: Expected a class member, but got 'switch'.
+ int switch = 42;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_class_fields:26:14: Operator declarations must be preceded by the keyword 'operator'.
+ int switch = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:26:14: The string '=' isn't a user-definable operator.
+ int switch = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:26:14: A method declaration needs an explicit list of parameters.
+ int switch = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:26:16: Expected a function body, but got '42'.
+ int switch = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:26:16: Expected a class member, but got '42'.
+ int switch = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:26:18: Expected a class member, but got ';'.
+ int switch = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:27:7: Expected an identifier, but got 'this'.
+ int this = 42;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_fields:28:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int throw = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:28:3: Expected ';' after this.
+ int throw = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:28:7: Expected a class member, but got 'throw'.
+ int throw = 42;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_fields:28:13: Operator declarations must be preceded by the keyword 'operator'.
+ int throw = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:28:13: The string '=' isn't a user-definable operator.
+ int throw = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:28:13: A method declaration needs an explicit list of parameters.
+ int throw = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:28:15: Expected a function body, but got '42'.
+ int throw = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:28:15: Expected a class member, but got '42'.
+ int throw = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:28:17: Expected a class member, but got ';'.
+ int throw = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:29:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int true = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:29:3: Expected ';' after this.
+ int true = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:29:7: Expected a class member, but got 'true'.
+ int true = 42;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_fields:29:12: Operator declarations must be preceded by the keyword 'operator'.
+ int true = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:29:12: The string '=' isn't a user-definable operator.
+ int true = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:29:12: A method declaration needs an explicit list of parameters.
+ int true = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:29:14: Expected a function body, but got '42'.
+ int true = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:29:14: Expected a class member, but got '42'.
+ int true = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:29:16: Expected a class member, but got ';'.
+ int true = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:30:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int try = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:30:3: Expected ';' after this.
+ int try = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:30:7: Expected a class member, but got 'try'.
+ int try = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:30:11: Operator declarations must be preceded by the keyword 'operator'.
+ int try = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:30:11: The string '=' isn't a user-definable operator.
+ int try = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:30:11: A method declaration needs an explicit list of parameters.
+ int try = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:30:13: Expected a function body, but got '42'.
+ int try = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:30:13: Expected a class member, but got '42'.
+ int try = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:30:15: Expected a class member, but got ';'.
+ int try = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:31:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int var = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:31:3: Expected ';' after this.
+ int var = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:31:11: Operator declarations must be preceded by the keyword 'operator'.
+ int var = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:31:7: The return type can't be 'var'.
+ int var = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:31:11: The string '=' isn't a user-definable operator.
+ int var = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:31:11: A method declaration needs an explicit list of parameters.
+ int var = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:31:13: Expected a function body, but got '42'.
+ int var = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:31:13: Expected a class member, but got '42'.
+ int var = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:31:15: Expected a class member, but got ';'.
+ int var = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:32:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int void = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:32:3: Expected ';' after this.
+ int void = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:32:12: Operator declarations must be preceded by the keyword 'operator'.
+ int void = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:32:12: The string '=' isn't a user-definable operator.
+ int void = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:32:12: A method declaration needs an explicit list of parameters.
+ int void = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:32:14: Expected a function body, but got '42'.
+ int void = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:32:14: Expected a class member, but got '42'.
+ int void = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:32:16: Expected a class member, but got ';'.
+ int void = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:33:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int while = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:33:3: Expected ';' after this.
+ int while = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:33:7: Expected a class member, but got 'while'.
+ int while = 42;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_fields:33:13: Operator declarations must be preceded by the keyword 'operator'.
+ int while = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:33:13: The string '=' isn't a user-definable operator.
+ int while = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:33:13: A method declaration needs an explicit list of parameters.
+ int while = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:33:15: Expected a function body, but got '42'.
+ int while = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:33:15: Expected a class member, but got '42'.
+ int while = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:33:17: Expected a class member, but got ';'.
+ int while = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:34:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int with = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:34:3: Expected ';' after this.
+ int with = 42;
+ ^^^
+
+parser/error_recovery/reserved_words_class_fields:34:7: Expected a class member, but got 'with'.
+ int with = 42;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_fields:34:12: Operator declarations must be preceded by the keyword 'operator'.
+ int with = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:34:12: The string '=' isn't a user-definable operator.
+ int with = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:34:12: A method declaration needs an explicit list of parameters.
+ int with = 42;
+ ^
+
+parser/error_recovery/reserved_words_class_fields:34:14: Expected a function body, but got '42'.
+ int with = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:34:14: Expected a class member, but got '42'.
+ int with = 42;
+ ^^
+
+parser/error_recovery/reserved_words_class_fields:34:16: Expected a class member, but got ';'.
+ int with = 42;
+ ^
+
+beginCompilationUnit(class)
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(WrapperClass, classOrMixinDeclaration)
+ handleNoTypeVariables({)
+ beginClassDeclaration(class, null, WrapperClass)
+ handleNoType(WrapperClass)
+ handleClassExtends(null)
+ handleClassNoWithClause()
+ handleClassOrMixinImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinBody(DeclarationKind.Class, {)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType({)
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(assert)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ endClassFields(null, null, null, null, 1, int, ;)
+ endMember()
+ beginMetadataStar(assert)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'assert'., null, {token: assert}], assert, assert)
+ handleInvalidMember(assert)
+ endMember()
+ beginMetadataStar(=)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingOperatorKeyword, =, =)
+ beginMethod(null, null, null, null, null, operator)
+ handleNoType(assert)
+ handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ handleInvalidOperatorName(operator, =)
+ handleNoTypeVariables(42)
+ handleRecoverableError(MissingMethodParameters, =, =)
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ handleInvalidFunctionBody({)
+ endClassMethod(null, operator, (, null, })
+ endMember()
+ beginMetadataStar(42)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ handleInvalidMember(42)
+ endMember()
+ beginMetadataStar(;)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ handleInvalidMember(;)
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType(;)
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(break)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ endClassFields(null, null, null, null, 1, int, ;)
+ endMember()
+ beginMetadataStar(break)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'break'., null, {token: break}], break, break)
+ handleInvalidMember(break)
+ endMember()
+ beginMetadataStar(=)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingOperatorKeyword, =, =)
+ beginMethod(null, null, null, null, null, operator)
+ handleNoType(break)
+ handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ handleInvalidOperatorName(operator, =)
+ handleNoTypeVariables(42)
+ handleRecoverableError(MissingMethodParameters, =, =)
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ handleInvalidFunctionBody({)
+ endClassMethod(null, operator, (, null, })
+ endMember()
+ beginMetadataStar(42)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ handleInvalidMember(42)
+ endMember()
+ beginMetadataStar(;)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ handleInvalidMember(;)
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType(;)
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(case)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ endClassFields(null, null, null, null, 1, int, ;)
+ endMember()
+ beginMetadataStar(case)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'case'., null, {token: case}], case, case)
+ handleInvalidMember(case)
+ endMember()
+ beginMetadataStar(=)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingOperatorKeyword, =, =)
+ beginMethod(null, null, null, null, null, operator)
+ handleNoType(case)
+ handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ handleInvalidOperatorName(operator, =)
+ handleNoTypeVariables(42)
+ handleRecoverableError(MissingMethodParameters, =, =)
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ handleInvalidFunctionBody({)
+ endClassMethod(null, operator, (, null, })
+ endMember()
+ beginMetadataStar(42)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ handleInvalidMember(42)
+ endMember()
+ beginMetadataStar(;)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ handleInvalidMember(;)
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType(;)
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(catch)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(catch)
+endMetadataStar(0)
+beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'catch'., null, {token: catch}], catch, catch)
+ handleInvalidMember(catch)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+ handleRecoverableError(MissingOperatorKeyword, =, =)
+ beginMethod(null, null, null, null, null, operator)
+ handleNoType(catch)
+ handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ handleInvalidOperatorName(operator, =)
+ handleNoTypeVariables(42)
+ handleRecoverableError(MissingMethodParameters, =, =)
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ handleInvalidFunctionBody({)
+ endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType(;)
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(class)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(class)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(ClassInClass, class, class)
+handleInvalidMember(class)
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+ handleRecoverableError(MissingOperatorKeyword, =, =)
+ beginMethod(null, null, null, null, null, operator)
+ handleNoType(class)
+ handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ handleInvalidOperatorName(operator, =)
+ handleNoTypeVariables(42)
+ handleRecoverableError(MissingMethodParameters, =, =)
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ handleInvalidFunctionBody({)
+ endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType(;)
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(const)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(const)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, const, null, operator)
+ handleNoType(const)
+ handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ handleInvalidOperatorName(operator, =)
+ handleNoTypeVariables(42)
+ handleRecoverableError(MissingMethodParameters, =, =)
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ handleInvalidFunctionBody({)
+ handleRecoverableError(ConstMethod, const, const)
+endClassMethod(null, const, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(continue)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(continue)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'continue'., null, {token: continue}], continue, continue)
+handleInvalidMember(continue)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(continue)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(default)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(default)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'default'., null, {token: default}], default, default)
+handleInvalidMember(default)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(default)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(do)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(do)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'do'., null, {token: do}], do, do)
+handleInvalidMember(do)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(do)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(else)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(else)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'else'., null, {token: else}], else, else)
+handleInvalidMember(else)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(else)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(enum)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(enum)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(EnumInClass, enum, enum)
+handleInvalidMember(enum)
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(enum)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(extends)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(extends)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'extends'., null, {token: extends}], extends, extends)
+handleInvalidMember(extends)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(extends)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(false)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(false)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'false'., null, {token: false}], false, false)
+handleInvalidMember(false)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(false)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(final)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(final)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'final' here., Try removing 'final'., {token: final}], final, final)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(final)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, final, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(finally)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(finally)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'finally'., null, {token: finally}], finally, finally)
+handleInvalidMember(finally)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(finally)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(for)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(for)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'for'., null, {token: for}], for, for)
+handleInvalidMember(for)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(for)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(if)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(if)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'if'., null, {token: if}], if, if)
+handleInvalidMember(if)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(if)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(in)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(in)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'in'., null, {token: in}], in, in)
+handleInvalidMember(in)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(in)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(is)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(is)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'is'., null, {token: is}], is, is)
+handleInvalidMember(is)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(is)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(new)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(new)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'new'., null, {token: new}], new, new)
+handleInvalidMember(new)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(new)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(null)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(null)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'null'., null, {token: null}], null, null)
+handleInvalidMember(null)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(null)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(rethrow)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(rethrow)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+handleInvalidMember(rethrow)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(rethrow)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(return)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(return)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'return'., null, {token: return}], return, return)
+handleInvalidMember(return)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(return)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(super)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(super)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'super'., null, {token: super}], super, super)
+handleInvalidMember(super)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(super)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(switch)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(switch)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'switch'., null, {token: switch}], switch, switch)
+handleInvalidMember(switch)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(switch)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(this)
+handleType(int, null)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
+handleIdentifier(this, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(throw)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(throw)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'throw'., null, {token: throw}], throw, throw)
+handleInvalidMember(throw)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(throw)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(true)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(true)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'true'., null, {token: true}], true, true)
+handleInvalidMember(true)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(true)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(try)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(try)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'try'., null, {token: try}], try, try)
+handleInvalidMember(try)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(try)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(var)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(var)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+handleRecoverableError(VarReturnType, var, var)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(var)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, var, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(void)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(void)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleVoidKeyword(void)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, void, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(while)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(while)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'while'., null, {token: while}], while, while)
+handleInvalidMember(while)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(while)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(;)
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(with)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(with)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'with'., null, {token: with}], with, with)
+handleInvalidMember(with)
+endMember()
+beginMetadataStar(=)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingOperatorKeyword, =, =)
+beginMethod(null, null, null, null, null, operator)
+handleNoType(with)
+handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+handleInvalidOperatorName(operator, =)
+handleNoTypeVariables(42)
+handleRecoverableError(MissingMethodParameters, =, =)
+beginFormalParameters((, MemberKind.NonStaticMethod)
+endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidFunctionBody({)
+endClassMethod(null, operator, (, null, })
+endMember()
+beginMetadataStar(42)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+handleInvalidMember(42)
+endMember()
+beginMetadataStar(;)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+handleInvalidMember(;)
+endMember()
+endClassOrMixinBody(DeclarationKind.Class, 157, {, })
+endClassDeclaration(class, })
+endTopLevelDeclaration()
+endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart.intertwined.expect
new file mode 100644
index 0000000..3cd1733
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart.intertwined.expect
@@ -0,0 +1,3158 @@
+parseUnit(class)
+ skipErrorTokens(class)
+ listener: beginCompilationUnit(class)
+ syntheticPreviousToken(class)
+ parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+ parseMetadataStar()
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(, class, Instance of 'DirectiveContext')
+ parseClassDeclarationModifiers(, class)
+ parseClassOrNamedMixinApplication(null, class)
+ listener: beginClassOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(WrapperClass, classOrMixinDeclaration)
+ listener: handleNoTypeVariables({)
+ listener: beginClassDeclaration(class, null, WrapperClass)
+ parseClass(WrapperClass, class, class, WrapperClass)
+ parseClassHeaderOpt(WrapperClass, class, class)
+ parseClassExtendsOpt(WrapperClass)
+ listener: handleNoType(WrapperClass)
+ listener: handleClassExtends(null)
+ parseWithClauseOpt(WrapperClass)
+ listener: handleClassNoWithClause()
+ parseClassOrMixinImplementsOpt(WrapperClass)
+ listener: handleClassOrMixinImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(WrapperClass, DeclarationKind.Class, WrapperClass)
+ listener: beginClassOrMixinBody(DeclarationKind.Class, {)
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl({, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar({)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields({, null, null, null, null, null, {, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType({)
+ ensureIdentifier({, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(assert)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, assert)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(assert)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'assert'., null, {token: assert}], assert, assert)
+ listener: handleInvalidMember(assert)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(assert, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(assert)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(assert, assert, null, null, null, null, null, assert, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(assert, null, null, null, null, null, assert, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(assert, null, null, null, null, null, assert, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(assert)
+ parseOperatorName(assert)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(break)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, break)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(break)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'break'., null, {token: break}], break, break)
+ listener: handleInvalidMember(break)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(break, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(break)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(break, break, null, null, null, null, null, break, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(break, null, null, null, null, null, break, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(break, null, null, null, null, null, break, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(break)
+ parseOperatorName(break)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(case)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, case)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(case)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'case'., null, {token: case}], case, case)
+ listener: handleInvalidMember(case)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(case, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(case)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(case, case, null, null, null, null, null, case, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(case, null, null, null, null, null, case, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(case, null, null, null, null, null, case, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(case)
+ parseOperatorName(case)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(catch)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, catch)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(catch)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'catch'., null, {token: catch}], catch, catch)
+ listener: handleInvalidMember(catch)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(catch, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(catch)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(catch, catch, null, null, null, null, null, catch, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(catch, null, null, null, null, null, catch, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(catch, null, null, null, null, null, catch, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(catch)
+ parseOperatorName(catch)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(class)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, class)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportAndSkipClassInClass(class)
+ reportRecoverableError(class, ClassInClass)
+ listener: handleRecoverableError(ClassInClass, class, class)
+ listener: handleInvalidMember(class)
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(class, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(class)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(class, class, null, null, null, null, null, class, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(class, null, null, null, null, null, class, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(class, null, null, null, null, null, class, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(class)
+ parseOperatorName(class)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(const)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, const)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(const, ;, null, null, null, null, const, const, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(;, null, null, null, null, const, const, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(;, null, null, null, null, const, const, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, const, null, operator)
+ listener: handleNoType(const)
+ parseOperatorName(const)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ reportRecoverableError(const, ConstMethod)
+ listener: handleRecoverableError(ConstMethod, const, const)
+ listener: endClassMethod(null, const, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(continue)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, continue)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(continue)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'continue'., null, {token: continue}], continue, continue)
+ listener: handleInvalidMember(continue)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(continue, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(continue)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(continue, continue, null, null, null, null, null, continue, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(continue, null, null, null, null, null, continue, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(continue, null, null, null, null, null, continue, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(continue)
+ parseOperatorName(continue)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(default)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, default)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(default)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'default'., null, {token: default}], default, default)
+ listener: handleInvalidMember(default)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(default, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(default)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(default, default, null, null, null, null, null, default, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(default, null, null, null, null, null, default, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(default, null, null, null, null, null, default, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(default)
+ parseOperatorName(default)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(do)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, do)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(do)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'do'., null, {token: do}], do, do)
+ listener: handleInvalidMember(do)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(do, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(do)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(do, do, null, null, null, null, null, do, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(do, null, null, null, null, null, do, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(do, null, null, null, null, null, do, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(do)
+ parseOperatorName(do)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(else)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, else)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(else)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'else'., null, {token: else}], else, else)
+ listener: handleInvalidMember(else)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(else, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(else)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(else, else, null, null, null, null, null, else, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(else, null, null, null, null, null, else, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(else, null, null, null, null, null, else, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(else)
+ parseOperatorName(else)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(enum)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, enum)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportAndSkipEnumInClass(enum)
+ reportRecoverableError(enum, EnumInClass)
+ listener: handleRecoverableError(EnumInClass, enum, enum)
+ listener: handleInvalidMember(enum)
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(enum, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(enum)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(enum, enum, null, null, null, null, null, enum, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(enum, null, null, null, null, null, enum, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(enum, null, null, null, null, null, enum, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(enum)
+ parseOperatorName(enum)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(extends)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, extends)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(extends)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'extends'., null, {token: extends}], extends, extends)
+ listener: handleInvalidMember(extends)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(extends, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(extends)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(extends, extends, null, null, null, null, null, extends, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(extends, null, null, null, null, null, extends, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(extends, null, null, null, null, null, extends, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(extends)
+ parseOperatorName(extends)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(false)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, false)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(false)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'false'., null, {token: false}], false, false)
+ listener: handleInvalidMember(false)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(false, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(false)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(false, false, null, null, null, null, null, false, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(false, null, null, null, null, null, false, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(false, null, null, null, null, null, false, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(false)
+ parseOperatorName(false)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(final)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, final)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(final, ;, null, null, null, null, final, final, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(;, null, null, null, null, final, final, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(;, null, null, null, null, final, final, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'final' here., Try removing 'final'., {token: final}], final, final)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(final)
+ parseOperatorName(final)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, final, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(finally)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, finally)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(finally)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'finally'., null, {token: finally}], finally, finally)
+ listener: handleInvalidMember(finally)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(finally, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(finally)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(finally, finally, null, null, null, null, null, finally, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(finally, null, null, null, null, null, finally, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(finally, null, null, null, null, null, finally, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(finally)
+ parseOperatorName(finally)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(for)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, for)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(for)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'for'., null, {token: for}], for, for)
+ listener: handleInvalidMember(for)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(for, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(for)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(for, for, null, null, null, null, null, for, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(for, null, null, null, null, null, for, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(for, null, null, null, null, null, for, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(for)
+ parseOperatorName(for)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(if)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, if)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(if)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'if'., null, {token: if}], if, if)
+ listener: handleInvalidMember(if)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(if, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(if)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(if, if, null, null, null, null, null, if, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(if, null, null, null, null, null, if, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(if, null, null, null, null, null, if, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(if)
+ parseOperatorName(if)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(in)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, in)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(in)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'in'., null, {token: in}], in, in)
+ listener: handleInvalidMember(in)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(in, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(in)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(in, in, null, null, null, null, null, in, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(in, null, null, null, null, null, in, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(in, null, null, null, null, null, in, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(in)
+ parseOperatorName(in)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(is)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, is)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(is)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'is'., null, {token: is}], is, is)
+ listener: handleInvalidMember(is)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(is, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(is)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(is, is, null, null, null, null, null, is, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(is, null, null, null, null, null, is, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(is, null, null, null, null, null, is, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(is)
+ parseOperatorName(is)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(new)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, new)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(new)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'new'., null, {token: new}], new, new)
+ listener: handleInvalidMember(new)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(new, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(new)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(new, new, null, null, null, null, null, new, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(new, null, null, null, null, null, new, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(new, null, null, null, null, null, new, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(new)
+ parseOperatorName(new)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(null)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, null)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(null)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'null'., null, {token: null}], null, null)
+ listener: handleInvalidMember(null)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(null, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(null)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(null, null, null, null, null, null, null, null, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(null, null, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(null, null, null, null, null, null, null, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(null)
+ parseOperatorName(null)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(rethrow)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, rethrow)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(rethrow)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+ listener: handleInvalidMember(rethrow)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(rethrow, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(rethrow)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(rethrow, rethrow, null, null, null, null, null, rethrow, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(rethrow, null, null, null, null, null, rethrow, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(rethrow, null, null, null, null, null, rethrow, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(rethrow)
+ parseOperatorName(rethrow)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(return)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, return)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(return)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'return'., null, {token: return}], return, return)
+ listener: handleInvalidMember(return)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(return, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(return)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(return, return, null, null, null, null, null, return, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(return, null, null, null, null, null, return, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(return, null, null, null, null, null, return, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(return)
+ parseOperatorName(return)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(super)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, super)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(super)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'super'., null, {token: super}], super, super)
+ listener: handleInvalidMember(super)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(super, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(super)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(super, super, null, null, null, null, null, super, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(super, null, null, null, null, null, super, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(super, null, null, null, null, null, super, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(super)
+ parseOperatorName(super)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(switch)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, switch)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(switch)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'switch'., null, {token: switch}], switch, switch)
+ listener: handleInvalidMember(switch)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(switch, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(switch)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(switch, switch, null, null, null, null, null, switch, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(switch, null, null, null, null, null, switch, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(switch, null, null, null, null, null, switch, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(switch)
+ parseOperatorName(switch)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(int, ;, null, null, null, null, null, ;, Instance of 'SimpleType', null, DeclarationKind.Class, WrapperClass)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', this, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(this)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
+ listener: handleIdentifier(this, fieldDeclaration)
+ parseFieldInitializerOpt(this, this, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(throw)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, throw)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(throw)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'throw'., null, {token: throw}], throw, throw)
+ listener: handleInvalidMember(throw)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(throw, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(throw)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(throw, throw, null, null, null, null, null, throw, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(throw, null, null, null, null, null, throw, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(throw, null, null, null, null, null, throw, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(throw)
+ parseOperatorName(throw)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(true)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, true)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(true)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'true'., null, {token: true}], true, true)
+ listener: handleInvalidMember(true)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(true, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(true)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(true, true, null, null, null, null, null, true, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(true, null, null, null, null, null, true, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(true, null, null, null, null, null, true, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(true)
+ parseOperatorName(true)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(try)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, try)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(try)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'try'., null, {token: try}], try, try)
+ listener: handleInvalidMember(try)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(try, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(try)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(try, try, null, null, null, null, null, try, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(try, null, null, null, null, null, try, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(try, null, null, null, null, null, try, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(try)
+ parseOperatorName(try)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(var)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, var)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(var, ;, null, null, null, null, var, var, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(;, null, null, null, null, var, var, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(;, null, null, null, null, var, var, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(var, VarReturnType)
+ listener: handleRecoverableError(VarReturnType, var, var)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(var)
+ parseOperatorName(var)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, var, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(void)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, void)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(void)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(void, ;, null, null, null, null, null, ;, Instance of 'VoidType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(;, null, null, null, null, null, ;, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(;, null, null, null, null, null, ;, Instance of 'VoidType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleVoidKeyword(void)
+ parseOperatorName(void)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, void, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(while)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, while)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(while)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'while'., null, {token: while}], while, while)
+ listener: handleInvalidMember(while)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(while, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(while)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(while, while, null, null, null, null, null, while, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(while, null, null, null, null, null, while, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(while, null, null, null, null, null, while, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(while)
+ parseOperatorName(while)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(;)
+ ensureIdentifier(;, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(with)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, with)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(with)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'with'., null, {token: with}], with, with)
+ listener: handleInvalidMember(with)
+ listener: endMember()
+ notEofOrValue(}, =)
+ parseClassOrMixinOrExtensionMemberImpl(with, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(with)
+ listener: beginMetadataStar(=)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(with, with, null, null, null, null, null, with, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseInvalidOperatorDeclaration(with, null, null, null, null, null, with, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(=, MissingOperatorKeyword)
+ listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+ rewriter()
+ parseMethod(with, null, null, null, null, null, with, Instance of 'NoType', null, operator, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleNoType(with)
+ parseOperatorName(with)
+ isUnaryMinus(=)
+ reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {token: =}], =, =)
+ listener: handleInvalidOperatorName(operator, =)
+ parseMethodTypeVar(=)
+ listener: handleNoTypeVariables(42)
+ parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+ missingParameterMessage(MemberKind.NonStaticMethod)
+ reportRecoverableError(=, MissingMethodParameters)
+ listener: handleRecoverableError(MissingMethodParameters, =, =)
+ rewriter()
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(42, Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}])
+ listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '42'., null, {token: 42}], 42, 42)
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: handleInvalidFunctionBody({)
+ listener: endClassMethod(null, operator, (, null, })
+ listener: endMember()
+ notEofOrValue(}, 42)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(42)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(}, }, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(42, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '42'., null, {token: 42}], 42, 42)
+ listener: handleInvalidMember(42)
+ listener: endMember()
+ notEofOrValue(}, ;)
+ parseClassOrMixinOrExtensionMemberImpl(42, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(42)
+ listener: beginMetadataStar(;)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(42, 42, null, null, null, null, null, 42, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+ listener: handleInvalidMember(;)
+ listener: endMember()
+ notEofOrValue(}, })
+ listener: endClassOrMixinBody(DeclarationKind.Class, 157, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration()
+ reportAllErrorTokens(class)
+ listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart.parser.expect
new file mode 100644
index 0000000..0ed105a
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart.parser.expect
@@ -0,0 +1,73 @@
+NOTICE: Stream was rewritten by parser!
+
+class WrapperClass {
+int ;assert operator= (){}42;
+int ;break operator= (){}42;
+int ;case operator= (){}42;
+int ;catch operator= (){}42;
+int ;class operator= (){}42;
+int ;const operator= (){}42;
+int ;continue operator= (){}42;
+int ;default operator= (){}42;
+int ;do operator= (){}42;
+int ;else operator= (){}42;
+int ;enum operator= (){}42;
+int ;extends operator= (){}42;
+int ;false operator= (){}42;
+int ;final operator= (){}42;
+int ;finally operator= (){}42;
+int ;for operator= (){}42;
+int ;if operator= (){}42;
+int ;in operator= (){}42;
+int ;is operator= (){}42;
+int ;new operator= (){}42;
+int ;null operator= (){}42;
+int ;rethrow operator= (){}42;
+int ;return operator= (){}42;
+int ;super operator= (){}42;
+int ;switch operator= (){}42;
+int this = 42;
+int ;throw operator= (){}42;
+int ;true operator= (){}42;
+int ;try operator= (){}42;
+int ;var operator= (){}42;
+int ;void operator= (){}42;
+int ;while operator= (){}42;
+int ;with operator= (){}42;
+}
+
+class[KeywordToken] WrapperClass[StringToken] {[BeginToken]
+int[StringToken] ;[SyntheticToken]assert[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]break[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]case[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]catch[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]class[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]const[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]continue[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]default[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]do[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]else[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]enum[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]extends[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]false[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]final[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]finally[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]for[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]if[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]in[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]is[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]new[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]null[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]rethrow[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]return[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]super[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]switch[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] this[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]throw[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]true[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]try[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]var[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]void[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]while[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+int[StringToken] ;[SyntheticToken]with[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]42[StringToken];[SimpleToken]
+}[SimpleToken][SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart.scanner.expect
new file mode 100644
index 0000000..99a26c4
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_fields.dart.scanner.expect
@@ -0,0 +1,71 @@
+class WrapperClass {
+int assert = 42;
+int break = 42;
+int case = 42;
+int catch = 42;
+int class = 42;
+int const = 42;
+int continue = 42;
+int default = 42;
+int do = 42;
+int else = 42;
+int enum = 42;
+int extends = 42;
+int false = 42;
+int final = 42;
+int finally = 42;
+int for = 42;
+int if = 42;
+int in = 42;
+int is = 42;
+int new = 42;
+int null = 42;
+int rethrow = 42;
+int return = 42;
+int super = 42;
+int switch = 42;
+int this = 42;
+int throw = 42;
+int true = 42;
+int try = 42;
+int var = 42;
+int void = 42;
+int while = 42;
+int with = 42;
+}
+
+class[KeywordToken] WrapperClass[StringToken] {[BeginToken]
+int[StringToken] assert[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] break[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] case[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] catch[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] class[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] const[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] continue[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] default[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] do[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] else[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] enum[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] extends[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] false[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] final[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] finally[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] for[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] if[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] in[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] is[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] new[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] null[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] rethrow[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] return[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] super[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] switch[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] this[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] throw[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] true[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] try[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] var[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] void[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] while[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] with[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+}[SimpleToken][SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart
new file mode 100644
index 0000000..0ee7ab3
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart
@@ -0,0 +1,166 @@
+class WrapperClass {
+ int assert(int x) {
+ if (x == 0) return 42;
+ return assert(x-1) + 1;
+ }
+
+ int break(int x) {
+ if (x == 0) return 42;
+ return break(x-1) + 1;
+ }
+
+ int case(int x) {
+ if (x == 0) return 42;
+ return case(x-1) + 1;
+ }
+
+ int catch(int x) {
+ if (x == 0) return 42;
+ return catch(x-1) + 1;
+ }
+
+ int class(int x) {
+ if (x == 0) return 42;
+ return class(x-1) + 1;
+ }
+
+ int const(int x) {
+ if (x == 0) return 42;
+ return const(x-1) + 1;
+ }
+
+ int continue(int x) {
+ if (x == 0) return 42;
+ return continue(x-1) + 1;
+ }
+
+ int default(int x) {
+ if (x == 0) return 42;
+ return default(x-1) + 1;
+ }
+
+ int do(int x) {
+ if (x == 0) return 42;
+ return do(x-1) + 1;
+ }
+
+ int else(int x) {
+ if (x == 0) return 42;
+ return else(x-1) + 1;
+ }
+
+ int enum(int x) {
+ if (x == 0) return 42;
+ return enum(x-1) + 1;
+ }
+
+ int extends(int x) {
+ if (x == 0) return 42;
+ return extends(x-1) + 1;
+ }
+
+ int false(int x) {
+ if (x == 0) return 42;
+ return false(x-1) + 1;
+ }
+
+ int final(int x) {
+ if (x == 0) return 42;
+ return final(x-1) + 1;
+ }
+
+ int finally(int x) {
+ if (x == 0) return 42;
+ return finally(x-1) + 1;
+ }
+
+ int for(int x) {
+ if (x == 0) return 42;
+ return for(x-1) + 1;
+ }
+
+ int if(int x) {
+ if (x == 0) return 42;
+ return if(x-1) + 1;
+ }
+
+ int in(int x) {
+ if (x == 0) return 42;
+ return in(x-1) + 1;
+ }
+
+ int is(int x) {
+ if (x == 0) return 42;
+ return is(x-1) + 1;
+ }
+
+ int new(int x) {
+ if (x == 0) return 42;
+ return new(x-1) + 1;
+ }
+
+ int null(int x) {
+ if (x == 0) return 42;
+ return null(x-1) + 1;
+ }
+
+ int rethrow(int x) {
+ if (x == 0) return 42;
+ return rethrow(x-1) + 1;
+ }
+
+ int return(int x) {
+ if (x == 0) return 42;
+ return return(x-1) + 1;
+ }
+
+ int super(int x) {
+ if (x == 0) return 42;
+ return super(x-1) + 1;
+ }
+
+ int switch(int x) {
+ if (x == 0) return 42;
+ return switch(x-1) + 1;
+ }
+
+ int this(int x) {
+ if (x == 0) return 42;
+ return this(x-1) + 1;
+ }
+
+ int throw(int x) {
+ if (x == 0) return 42;
+ return throw(x-1) + 1;
+ }
+
+ int true(int x) {
+ if (x == 0) return 42;
+ return true(x-1) + 1;
+ }
+
+ int try(int x) {
+ if (x == 0) return 42;
+ return try(x-1) + 1;
+ }
+
+ int var(int x) {
+ if (x == 0) return 42;
+ return var(x-1) + 1;
+ }
+
+ int void(int x) {
+ if (x == 0) return 42;
+ return void(x-1) + 1;
+ }
+
+ int while(int x) {
+ if (x == 0) return 42;
+ return while(x-1) + 1;
+ }
+
+ int with(int x) {
+ if (x == 0) return 42;
+ return with(x-1) + 1;
+ }
+}
\ No newline at end of file
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart.expect
new file mode 100644
index 0000000..adf4e0b
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart.expect
@@ -0,0 +1,3465 @@
+Problems reported:
+
+parser/error_recovery/reserved_words_class_methods:2:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int assert(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:2:3: Expected ';' after this.
+ int assert(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:2:7: Expected a class member, but got 'assert'.
+ int assert(int x) {
+ ^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:2:13: Expected an identifier, but got '('.
+ int assert(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:4:12: `assert` can't be used as an expression.
+ return assert(x-1) + 1;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:7:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int break(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:7:3: Expected ';' after this.
+ int break(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:7:7: Expected a class member, but got 'break'.
+ int break(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:7:12: Expected an identifier, but got '('.
+ int break(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:9:12: Expected an identifier, but got 'break'.
+ return break(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:9:12: Expected ';' after this.
+ return break(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:9:12: A break statement can't be used outside of a loop or switch statement.
+ return break(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:9:12: Expected ';' after this.
+ return break(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:12:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int case(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:12:3: Expected ';' after this.
+ int case(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:12:7: Expected a class member, but got 'case'.
+ int case(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:12:11: Expected an identifier, but got '('.
+ int case(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:14:12: Expected an identifier, but got 'case'.
+ return case(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:17:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int catch(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:17:3: Expected ';' after this.
+ int catch(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:17:7: Expected a class member, but got 'catch'.
+ int catch(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:17:12: Expected an identifier, but got '('.
+ int catch(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:19:12: Expected an identifier, but got 'catch'.
+ return catch(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:22:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int class(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:22:3: Expected ';' after this.
+ int class(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:22:7: Classes can't be declared inside other classes.
+ int class(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:22:12: Expected an identifier, but got '('.
+ int class(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:24:12: Expected an identifier, but got 'class'.
+ return class(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:27:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int const(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:27:3: Expected ';' after this.
+ int const(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:27:12: Expected an identifier, but got '('.
+ int const(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:29:17: Expected an identifier, but got '('.
+ return const(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:27:7: Getters, setters and methods can't be declared to be 'const'.
+ int const(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:32:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int continue(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:32:3: Expected ';' after this.
+ int continue(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:32:7: Expected a class member, but got 'continue'.
+ int continue(int x) {
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:32:15: Expected an identifier, but got '('.
+ int continue(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:34:12: Expected an identifier, but got 'continue'.
+ return continue(x-1) + 1;
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:34:12: Expected ';' after this.
+ return continue(x-1) + 1;
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:34:12: A continue statement can't be used outside of a loop or switch statement.
+ return continue(x-1) + 1;
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:34:12: Expected ';' after this.
+ return continue(x-1) + 1;
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:37:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int default(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:37:3: Expected ';' after this.
+ int default(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:37:7: Expected a class member, but got 'default'.
+ int default(int x) {
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:37:14: Expected an identifier, but got '('.
+ int default(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:39:12: Expected an identifier, but got 'default'.
+ return default(x-1) + 1;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:42:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int do(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:42:3: Expected ';' after this.
+ int do(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:42:7: Expected a class member, but got 'do'.
+ int do(int x) {
+ ^^
+
+parser/error_recovery/reserved_words_class_methods:42:9: Expected an identifier, but got '('.
+ int do(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:44:12: Expected an identifier, but got 'do'.
+ return do(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_class_methods:44:12: Expected ';' after this.
+ return do(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_class_methods:45:3: Expected 'while' before this.
+ }
+ ^
+
+parser/error_recovery/reserved_words_class_methods:45:3: Expected to find '('.
+ }
+ ^
+
+parser/error_recovery/reserved_words_class_methods:45:3: Expected an identifier, but got '}'.
+ }
+ ^
+
+parser/error_recovery/reserved_words_class_methods:45:3: Expected ';' after this.
+ }
+ ^
+
+parser/error_recovery/reserved_words_class_methods:47:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int else(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:47:3: Expected ';' after this.
+ int else(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:47:7: Expected a class member, but got 'else'.
+ int else(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:47:11: Expected an identifier, but got '('.
+ int else(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:49:12: Expected an identifier, but got 'else'.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:49:12: Expected ';' after this.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:49:12: Expected an identifier, but got 'else'.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:49:12: Expected ';' after this.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:49:12: Unexpected token ';'.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:52:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int enum(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:52:3: Expected ';' after this.
+ int enum(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:52:7: Enums can't be declared inside classes.
+ int enum(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:52:11: Expected an identifier, but got '('.
+ int enum(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:54:12: Expected an identifier, but got 'enum'.
+ return enum(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:57:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int extends(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:57:3: Expected ';' after this.
+ int extends(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:57:7: Expected a class member, but got 'extends'.
+ int extends(int x) {
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:57:14: Expected an identifier, but got '('.
+ int extends(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:59:12: Expected an identifier, but got 'extends'.
+ return extends(x-1) + 1;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:62:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int false(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:62:3: Expected ';' after this.
+ int false(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:62:7: Expected a class member, but got 'false'.
+ int false(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:62:12: Expected an identifier, but got '('.
+ int false(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:67:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int final(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:67:3: Expected ';' after this.
+ int final(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:67:7: Can't have modifier 'final' here.
+ int final(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:67:12: Expected an identifier, but got '('.
+ int final(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:69:12: Expected an identifier, but got 'final'.
+ return final(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:69:12: Expected ';' after this.
+ return final(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:69:17: Expected an identifier, but got '('.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:69:18: Expected ';' after this.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:69:20: Expected ';' after this.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:69:21: Expected an identifier, but got ')'.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:69:21: Expected ';' after this.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:69:21: Unexpected token ';'.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:69:23: '+' is not a prefix operator.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:72:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int finally(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:72:3: Expected ';' after this.
+ int finally(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:72:7: Expected a class member, but got 'finally'.
+ int finally(int x) {
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:72:14: Expected an identifier, but got '('.
+ int finally(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:74:12: Expected an identifier, but got 'finally'.
+ return finally(x-1) + 1;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:77:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int for(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:77:3: Expected ';' after this.
+ int for(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:77:7: Expected a class member, but got 'for'.
+ int for(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:77:10: Expected an identifier, but got '('.
+ int for(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:79:12: Expected an identifier, but got 'for'.
+ return for(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:79:12: Expected ';' after this.
+ return for(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:79:18: Expected ';' after this.
+ return for(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:79:19: Expected an identifier, but got ')'.
+ return for(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:79:19: Expected ';' after this.
+ return for(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:79:21: '+' is not a prefix operator.
+ return for(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:82:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int if(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:82:3: Expected ';' after this.
+ int if(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:82:7: Expected a class member, but got 'if'.
+ int if(int x) {
+ ^^
+
+parser/error_recovery/reserved_words_class_methods:82:9: Expected an identifier, but got '('.
+ int if(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:84:12: Expected an identifier, but got 'if'.
+ return if(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_class_methods:84:12: Expected ';' after this.
+ return if(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_class_methods:84:20: '+' is not a prefix operator.
+ return if(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:87:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int in(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:87:3: Expected ';' after this.
+ int in(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:87:7: Expected a class member, but got 'in'.
+ int in(int x) {
+ ^^
+
+parser/error_recovery/reserved_words_class_methods:87:9: Expected an identifier, but got '('.
+ int in(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:89:12: Expected an identifier, but got 'in'.
+ return in(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_class_methods:92:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int is(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:92:3: Expected ';' after this.
+ int is(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:92:7: Expected a class member, but got 'is'.
+ int is(int x) {
+ ^^
+
+parser/error_recovery/reserved_words_class_methods:92:9: Expected an identifier, but got '('.
+ int is(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:94:12: Expected an identifier, but got 'is'.
+ return is(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_class_methods:94:14: Expected a type, but got '('.
+ return is(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:94:14: Expected ';' after this.
+ return is(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:97:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int new(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:97:3: Expected ';' after this.
+ int new(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:97:7: Expected a class member, but got 'new'.
+ int new(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:97:10: Expected an identifier, but got '('.
+ int new(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:99:15: Expected an identifier, but got '('.
+ return new(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:102:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int null(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:102:3: Expected ';' after this.
+ int null(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:102:7: Expected a class member, but got 'null'.
+ int null(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:102:11: Expected an identifier, but got '('.
+ int null(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:107:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int rethrow(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:107:3: Expected ';' after this.
+ int rethrow(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:107:7: Expected a class member, but got 'rethrow'.
+ int rethrow(int x) {
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:107:14: Expected an identifier, but got '('.
+ int rethrow(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:109:12: Expected an identifier, but got 'rethrow'.
+ return rethrow(x-1) + 1;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:112:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int return(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:112:3: Expected ';' after this.
+ int return(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:112:7: Expected a class member, but got 'return'.
+ int return(int x) {
+ ^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:112:13: Expected an identifier, but got '('.
+ int return(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:114:12: Unexpected token 'return'.
+ return return(x-1) + 1;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:117:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int super(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:117:3: Expected ';' after this.
+ int super(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:117:7: Expected a class member, but got 'super'.
+ int super(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:117:12: Expected an identifier, but got '('.
+ int super(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:122:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int switch(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:122:3: Expected ';' after this.
+ int switch(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:122:7: Expected a class member, but got 'switch'.
+ int switch(int x) {
+ ^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:122:13: Expected an identifier, but got '('.
+ int switch(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:124:12: Expected an identifier, but got 'switch'.
+ return switch(x-1) + 1;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:124:12: Expected ';' after this.
+ return switch(x-1) + 1;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_class_methods:124:22: A switch statement must have a body, even if it is empty.
+ return switch(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:124:24: '+' is not a prefix operator.
+ return switch(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:127:7: Expected an identifier, but got 'this'.
+ int this(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:127:7: Expected ';' after this.
+ int this(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:127:11: Expected an identifier, but got '('.
+ int this(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:132:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int throw(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:132:3: Expected ';' after this.
+ int throw(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:132:7: Expected a class member, but got 'throw'.
+ int throw(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:132:12: Expected an identifier, but got '('.
+ int throw(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:137:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int true(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:137:3: Expected ';' after this.
+ int true(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:137:7: Expected a class member, but got 'true'.
+ int true(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:137:11: Expected an identifier, but got '('.
+ int true(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:142:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int try(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:142:3: Expected ';' after this.
+ int try(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:142:7: Expected a class member, but got 'try'.
+ int try(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:142:10: Expected an identifier, but got '('.
+ int try(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:144:12: Expected an identifier, but got 'try'.
+ return try(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:144:12: Expected ';' after this.
+ return try(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:144:12: A try statement must have a body, even if it is empty.
+ return try(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:144:12: A try block must be followed by an 'on', 'catch', or 'finally' clause.
+ return try(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:147:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int var(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:147:3: Expected ';' after this.
+ int var(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:147:7: The return type can't be 'var'.
+ int var(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:147:10: Expected an identifier, but got '('.
+ int var(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:149:12: Expected an identifier, but got 'var'.
+ return var(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:149:12: Expected ';' after this.
+ return var(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:149:15: Expected an identifier, but got '('.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:149:16: Expected ';' after this.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:149:18: Expected ';' after this.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:149:19: Expected an identifier, but got ')'.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:149:19: Expected ';' after this.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:149:19: Unexpected token ';'.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:149:21: '+' is not a prefix operator.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:152:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int void(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:152:3: Expected ';' after this.
+ int void(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:152:11: Expected an identifier, but got '('.
+ int void(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:154:12: Expected an identifier, but got 'void'.
+ return void(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:154:12: Expected ';' after this.
+ return void(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:154:16: Expected an identifier, but got '('.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:154:17: Expected ';' after this.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:154:19: Expected ';' after this.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:154:20: Expected an identifier, but got ')'.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:154:20: Expected ';' after this.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:154:20: Unexpected token ';'.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:154:22: '+' is not a prefix operator.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:157:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int while(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:157:3: Expected ';' after this.
+ int while(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:157:7: Expected a class member, but got 'while'.
+ int while(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:157:12: Expected an identifier, but got '('.
+ int while(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:159:12: Expected an identifier, but got 'while'.
+ return while(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:159:12: Expected ';' after this.
+ return while(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_class_methods:159:23: '+' is not a prefix operator.
+ return while(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_class_methods:162:3: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+ int with(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:162:3: Expected ';' after this.
+ int with(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_class_methods:162:7: Expected a class member, but got 'with'.
+ int with(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_class_methods:162:11: Expected an identifier, but got '('.
+ int with(int x) {
+ ^
+
+parser/error_recovery/reserved_words_class_methods:164:12: Expected an identifier, but got 'with'.
+ return with(x-1) + 1;
+ ^^^^
+
+beginCompilationUnit(class)
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(WrapperClass, classOrMixinDeclaration)
+ handleNoTypeVariables({)
+ beginClassDeclaration(class, null, WrapperClass)
+ handleNoType(WrapperClass)
+ handleClassExtends(null)
+ handleClassNoWithClause()
+ handleClassOrMixinImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinBody(DeclarationKind.Class, {)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType({)
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(assert)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ endClassFields(null, null, null, null, 1, int, ;)
+ endMember()
+ beginMetadataStar(assert)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'assert'., null, {token: assert}], assert, assert)
+ handleInvalidMember(assert)
+ endMember()
+ beginMetadataStar(()
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, ()
+ handleNoType(assert)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ handleIdentifier(, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ beginAssert(assert, Assert.Expression)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ handleRecoverableError(AssertAsExpression, assert, assert)
+ endAssert(assert, Assert.Expression, (, null, +)
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, , (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType(})
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(break)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ endClassFields(null, null, null, null, 1, int, ;)
+ endMember()
+ beginMetadataStar(break)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'break'., null, {token: break}], break, break)
+ handleInvalidMember(break)
+ endMember()
+ beginMetadataStar(()
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, ()
+ handleNoType(break)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ handleIdentifier(, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+ handleIdentifier(, expression)
+ handleNoTypeArguments(break)
+ handleNoArguments(break)
+ handleSend(, break)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], break, break)
+ endReturnStatement(true, return, ;)
+ handleRecoverableError(BreakOutsideOfLoop, break, break)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], break, break)
+ handleBreakStatement(false, break, ;)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ handleParenthesizedExpression(()
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ handleExpressionStatement(;)
+ endBlockFunctionBody(4, {, })
+ endClassMethod(null, , (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType(})
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(case)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ endClassFields(null, null, null, null, 1, int, ;)
+ endMember()
+ beginMetadataStar(case)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'case'., null, {token: case}], case, case)
+ handleInvalidMember(case)
+ endMember()
+ beginMetadataStar(()
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, ()
+ handleNoType(case)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ handleIdentifier(, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+ handleIdentifier(case, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(case, +)
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, , (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType(})
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(catch)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(catch)
+endMetadataStar(0)
+beginMember()
+ handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'catch'., null, {token: catch}], catch, catch)
+ handleInvalidMember(catch)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+ beginMethod(null, null, null, null, null, ()
+ handleNoType(catch)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ handleIdentifier(, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+ handleIdentifier(catch, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(catch, +)
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType(})
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(class)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(class)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(ClassInClass, class, class)
+handleInvalidMember(class)
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+ beginMethod(null, null, null, null, null, ()
+ handleNoType(class)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ handleIdentifier(, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'class'., null, {token: class}], class, class)
+ handleIdentifier(class, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(class, +)
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType(})
+ handleIdentifier(int, fieldDeclaration)
+ handleNoFieldInitializer(const)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(const)
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, const, null, ()
+ handleNoType(const)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ handleIdentifier(, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ beginConstExpression(const)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ handleIdentifier(, constructorReference)
+ beginConstructorReference()
+ handleNoTypeArguments(()
+ handleNoConstructorReferenceContinuationAfterTypeArguments(()
+ endConstructorReference(, null, ()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ endConstExpression(const)
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ handleRecoverableError(ConstMethod, const, const)
+endClassMethod(null, const, (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(continue)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(continue)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'continue'., null, {token: continue}], continue, continue)
+handleInvalidMember(continue)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(continue)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+ handleIdentifier(, expression)
+ handleNoTypeArguments(continue)
+ handleNoArguments(continue)
+ handleSend(, continue)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], continue, continue)
+ endReturnStatement(true, return, ;)
+ handleRecoverableError(ContinueOutsideOfLoop, continue, continue)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], continue, continue)
+ handleContinueStatement(false, continue, ;)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ handleParenthesizedExpression(()
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ handleExpressionStatement(;)
+endBlockFunctionBody(4, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(default)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(default)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'default'., null, {token: default}], default, default)
+handleInvalidMember(default)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(default)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+ handleIdentifier(default, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(default, +)
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(do)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(do)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'do'., null, {token: do}], do, do)
+handleInvalidMember(do)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(do)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+handleIdentifier(, expression)
+handleNoTypeArguments(do)
+handleNoArguments(do)
+handleSend(, do)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], do, do)
+endReturnStatement(true, return, ;)
+beginDoWhileStatement(do)
+beginDoWhileStatementBody(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ handleParenthesizedExpression(()
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ handleExpressionStatement(;)
+endDoWhileStatementBody(;)
+handleRecoverableError(Message[ExpectedButGot, Expected 'while' before this., null, {string: while}], }, })
+handleRecoverableError(Message[ExpectedToken, Expected to find '('., null, {string: (}], }, })
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., null, {token: }}], }, })
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleParenthesizedCondition(()
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], }, })
+endDoWhileStatement(do, while, ;)
+endBlockFunctionBody(3, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(else)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(else)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'else'., null, {token: else}], else, else)
+handleInvalidMember(else)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(else)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+ handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+handleIdentifier(, expression)
+handleNoTypeArguments(else)
+handleNoArguments(else)
+handleSend(, else)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
+endReturnStatement(true, return, ;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+handleIdentifier(, expression)
+handleNoTypeArguments(else)
+handleNoArguments(else)
+handleSend(, else)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
+handleExpressionStatement(;)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], else, else)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(4, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(enum)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(enum)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(EnumInClass, enum, enum)
+handleInvalidMember(enum)
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(enum)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+ handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'enum'., null, {token: enum}], enum, enum)
+handleIdentifier(enum, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(enum, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(extends)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(extends)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'extends'., null, {token: extends}], extends, extends)
+handleInvalidMember(extends)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(extends)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+handleIdentifier(extends, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(extends, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(false)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(false)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'false'., null, {token: false}], false, false)
+handleInvalidMember(false)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(false)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleLiteralBool(false)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend((, ))
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(final)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(final)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'final' here., Try removing 'final'., {token: final}], final, final)
+beginMethod(null, null, null, null, null, ()
+handleNoType(final)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
+handleIdentifier(, expression)
+handleNoTypeArguments(final)
+handleNoArguments(final)
+handleSend(, final)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], final, final)
+endReturnStatement(true, return, ;)
+beginMetadataStar(final)
+endMetadataStar(0)
+handleNoType(final)
+beginVariablesDeclaration((, null, final)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, localVariableDeclaration)
+beginInitializedIdentifier()
+handleNoVariableInitializer(x)
+endInitializedIdentifier()
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+endVariablesDeclaration(1, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+handleExpressionStatement(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+handleExpressionStatement(;)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(6, {, })
+endClassMethod(null, final, (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(finally)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(finally)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'finally'., null, {token: finally}], finally, finally)
+handleInvalidMember(finally)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(finally)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+handleIdentifier(finally, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(finally, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(for)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(for)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'for'., null, {token: for}], for, for)
+handleInvalidMember(for)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(for)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+handleIdentifier(, expression)
+handleNoTypeArguments(for)
+handleNoArguments(for)
+handleSend(, for)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], for, for)
+endReturnStatement(true, return, ;)
+beginForStatement(for)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleForInitializerExpressionStatement(1, false)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+handleExpressionStatement(;)
+handleForLoopParts(for, (, ;, 0)
+beginForStatementBody(+)
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endForStatementBody(})
+endForStatement(})
+endBlockFunctionBody(3, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(if)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(if)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'if'., null, {token: if}], if, if)
+handleInvalidMember(if)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(if)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+handleIdentifier(, expression)
+handleNoTypeArguments(if)
+handleNoArguments(if)
+handleSend(, if)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], if, if)
+endReturnStatement(true, return, ;)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedCondition(()
+beginThenStatement(+)
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endThenStatement(;)
+endIfStatement(if, null)
+endBlockFunctionBody(3, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(in)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(in)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'in'., null, {token: in}], in, in)
+handleInvalidMember(in)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(in)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+handleIdentifier(in, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(in, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(is)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(is)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'is'., null, {token: is}], is, is)
+handleInvalidMember(is)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(is)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+handleIdentifier(, expression)
+handleNoTypeArguments(is)
+handleNoArguments(is)
+handleSend(, is)
+beginIsOperatorType(is)
+handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {token: (}], (, ()
+handleIdentifier(, typeReference)
+handleNoTypeArguments(()
+handleType(, null)
+endIsOperatorType(is)
+handleIsOperator(is, null)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], (, ()
+endReturnStatement(true, return, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(3, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(new)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(new)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'new'., null, {token: new}], new, new)
+handleInvalidMember(new)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(new)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+beginNewExpression(new)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, constructorReference)
+beginConstructorReference()
+handleNoTypeArguments(()
+handleNoConstructorReferenceContinuationAfterTypeArguments(()
+endConstructorReference(, null, ()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+endNewExpression(new)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(null)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(null)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'null'., null, {token: null}], null, null)
+handleInvalidMember(null)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(null)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleLiteralNull(null)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend((, ))
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(rethrow)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(rethrow)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+handleInvalidMember(rethrow)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(rethrow)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+handleIdentifier(rethrow, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(rethrow, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(return)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(return)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'return'., null, {token: return}], return, return)
+handleInvalidMember(return)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {token: return}], return, return)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(super)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(super)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'super'., null, {token: super}], super, super)
+handleInvalidMember(super)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(super)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleSuperExpression(super, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(super, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(switch)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(switch)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'switch'., null, {token: switch}], switch, switch)
+handleInvalidMember(switch)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(switch)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+handleIdentifier(, expression)
+handleNoTypeArguments(switch)
+handleNoArguments(switch)
+handleSend(, switch)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], switch, switch)
+endReturnStatement(true, return, ;)
+beginSwitchStatement(switch)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedCondition(()
+handleRecoverableError(Message[ExpectedClassOrMixinBody, A switch statement must have a body, even if it is empty., Try adding an empty body., {string: switch statement}], ), ))
+beginSwitchBlock({)
+endSwitchBlock(0, {, })
+endSwitchStatement(switch, })
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(4, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(this)
+handleType(int, null)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
+handleIdentifier(this, fieldDeclaration)
+handleNoFieldInitializer(()
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], this, this)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleThisExpression(this, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(this, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(throw)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(throw)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'throw'., null, {token: throw}], throw, throw)
+handleInvalidMember(throw)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(throw)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleThrowExpression(throw, ;)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(true)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(true)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'true'., null, {token: true}], true, true)
+handleInvalidMember(true)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(true)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleLiteralBool(true)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend((, ))
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(try)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(try)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'try'., null, {token: try}], try, try)
+handleInvalidMember(try)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(try)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+handleIdentifier(, expression)
+handleNoTypeArguments(try)
+handleNoArguments(try)
+handleSend(, try)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], try, try)
+endReturnStatement(true, return, ;)
+beginTryStatement(try)
+handleRecoverableError(Message[ExpectedClassOrMixinBody, A try statement must have a body, even if it is empty., Try adding an empty body., {string: try statement}], try, try)
+beginBlock({, BlockKind(try statement))
+endBlock(0, {, }, BlockKind(try statement))
+handleRecoverableError(OnlyTry, try, try)
+endTryStatement(0, try, null)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(4, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(var)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(var)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(VarReturnType, var, var)
+beginMethod(null, null, null, null, null, ()
+handleNoType(var)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
+handleIdentifier(, expression)
+handleNoTypeArguments(var)
+handleNoArguments(var)
+handleSend(, var)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], var, var)
+endReturnStatement(true, return, ;)
+beginMetadataStar(var)
+endMetadataStar(0)
+handleNoType(var)
+beginVariablesDeclaration((, null, var)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, localVariableDeclaration)
+beginInitializedIdentifier()
+handleNoVariableInitializer(x)
+endInitializedIdentifier()
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+endVariablesDeclaration(1, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+handleExpressionStatement(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+handleExpressionStatement(;)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(6, {, })
+endClassMethod(null, var, (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(void)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(void)
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleVoidKeyword(void)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
+handleIdentifier(, expression)
+handleNoTypeArguments(void)
+handleNoArguments(void)
+handleSend(, void)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], void, void)
+endReturnStatement(true, return, ;)
+beginMetadataStar(void)
+endMetadataStar(0)
+handleVoidKeyword(void)
+beginVariablesDeclaration((, null, null)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, localVariableDeclaration)
+beginInitializedIdentifier()
+handleNoVariableInitializer(x)
+endInitializedIdentifier()
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+endVariablesDeclaration(1, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+handleExpressionStatement(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+handleExpressionStatement(;)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(6, {, })
+endClassMethod(null, void, (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(while)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(while)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'while'., null, {token: while}], while, while)
+handleInvalidMember(while)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(while)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+handleIdentifier(, expression)
+handleNoTypeArguments(while)
+handleNoArguments(while)
+handleSend(, while)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], while, while)
+endReturnStatement(true, return, ;)
+beginWhileStatement(while)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedCondition(()
+beginWhileStatementBody(+)
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endWhileStatementBody(})
+endWhileStatement(while, })
+endBlockFunctionBody(3, {, })
+endClassMethod(null, , (, null, })
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, fieldDeclaration)
+handleNoFieldInitializer(with)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(with)
+endMetadataStar(0)
+beginMember()
+handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'with'., null, {token: with}], with, with)
+handleInvalidMember(with)
+endMember()
+beginMetadataStar(()
+endMetadataStar(0)
+beginMember()
+beginMethod(null, null, null, null, null, ()
+handleNoType(with)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, methodDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.NonStaticMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+handleNoInitializers()
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+handleIdentifier(with, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(with, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endClassMethod(null, , (, null, })
+endMember()
+endClassOrMixinBody(DeclarationKind.Class, 94, {, })
+endClassDeclaration(class, })
+endTopLevelDeclaration()
+endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart.intertwined.expect
new file mode 100644
index 0000000..2b33d7b
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart.intertwined.expect
@@ -0,0 +1,6400 @@
+parseUnit(class)
+ skipErrorTokens(class)
+ listener: beginCompilationUnit(class)
+ syntheticPreviousToken(class)
+ parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+ parseMetadataStar()
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(, class, Instance of 'DirectiveContext')
+ parseClassDeclarationModifiers(, class)
+ parseClassOrNamedMixinApplication(null, class)
+ listener: beginClassOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(WrapperClass, classOrMixinDeclaration)
+ listener: handleNoTypeVariables({)
+ listener: beginClassDeclaration(class, null, WrapperClass)
+ parseClass(WrapperClass, class, class, WrapperClass)
+ parseClassHeaderOpt(WrapperClass, class, class)
+ parseClassExtendsOpt(WrapperClass)
+ listener: handleNoType(WrapperClass)
+ listener: handleClassExtends(null)
+ parseWithClauseOpt(WrapperClass)
+ listener: handleClassNoWithClause()
+ parseClassOrMixinImplementsOpt(WrapperClass)
+ listener: handleClassOrMixinImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(WrapperClass, DeclarationKind.Class, WrapperClass)
+ listener: beginClassOrMixinBody(DeclarationKind.Class, {)
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl({, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar({)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields({, null, null, null, null, null, {, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType({)
+ ensureIdentifier({, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(assert)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, assert)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(assert)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'assert'., null, {token: assert}], assert, assert)
+ listener: handleInvalidMember(assert)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(assert, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(assert)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(assert, assert, null, null, null, null, null, assert, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(assert, null, null, null, null, null, assert, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(assert)
+ ensureIdentifier(assert, methodDeclaration)
+ insertSyntheticIdentifier(assert, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseAssert(return, Assert.Expression)
+ listener: beginAssert(assert, Assert.Expression)
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ reportRecoverableError(assert, AssertAsExpression)
+ listener: handleRecoverableError(AssertAsExpression, assert, assert)
+ listener: endAssert(assert, Assert.Expression, (, null, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(break)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, break)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(break)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'break'., null, {token: break}], break, break)
+ listener: handleInvalidMember(break)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(break, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(break)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(break, break, null, null, null, null, null, break, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(break, null, null, null, null, null, break, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(break)
+ ensureIdentifier(break, methodDeclaration)
+ insertSyntheticIdentifier(break, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(break)
+ parseArgumentsOpt()
+ listener: handleNoArguments(break)
+ listener: handleSend(, break)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], break, break)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, break)
+ parseStatement(;)
+ parseStatementX(;)
+ parseBreakStatement(;)
+ isBreakAllowed()
+ reportRecoverableError(break, BreakOutsideOfLoop)
+ listener: handleRecoverableError(BreakOutsideOfLoop, break, break)
+ ensureSemicolon(break)
+ reportRecoverableError(break, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], break, break)
+ rewriter()
+ listener: handleBreakStatement(false, break, ;)
+ notEofOrValue(}, ()
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(;)
+ parseParenthesizedExpression(;)
+ parseExpressionInParenthesis(;)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(case)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, case)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(case)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'case'., null, {token: case}], case, case)
+ listener: handleInvalidMember(case)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(case, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(case)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(case, case, null, null, null, null, null, case, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(case, null, null, null, null, null, case, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(case)
+ ensureIdentifier(case, methodDeclaration)
+ insertSyntheticIdentifier(case, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+ listener: handleIdentifier(case, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(case)
+ parseArguments(case)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(case, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(catch)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, catch)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(catch)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'catch'., null, {token: catch}], catch, catch)
+ listener: handleInvalidMember(catch)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(catch, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(catch)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(catch, catch, null, null, null, null, null, catch, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(catch, null, null, null, null, null, catch, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(catch)
+ ensureIdentifier(catch, methodDeclaration)
+ insertSyntheticIdentifier(catch, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+ listener: handleIdentifier(catch, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(catch)
+ parseArguments(catch)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(catch, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(class)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, class)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportAndSkipClassInClass(class)
+ reportRecoverableError(class, ClassInClass)
+ listener: handleRecoverableError(ClassInClass, class, class)
+ listener: handleInvalidMember(class)
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(class, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(class)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(class, class, null, null, null, null, null, class, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(class, null, null, null, null, null, class, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(class)
+ ensureIdentifier(class, methodDeclaration)
+ insertSyntheticIdentifier(class, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'class'., null, {token: class}], class, class)
+ listener: handleIdentifier(class, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(class)
+ parseArguments(class)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(class, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(const)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, const)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(const, ;, null, null, null, null, const, const, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(;, null, null, null, null, const, const, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, const, null, ()
+ listener: handleNoType(const)
+ ensureIdentifier(const, methodDeclaration)
+ insertSyntheticIdentifier(const, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseConstExpression(return)
+ listener: beginConstExpression(const)
+ parseConstructorReference(const, null)
+ ensureIdentifier(const, constructorReference)
+ insertSyntheticIdentifier(const, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, constructorReference)
+ listener: beginConstructorReference()
+ parseQualifiedRestOpt(, constructorReferenceContinuation)
+ listener: handleNoTypeArguments(()
+ listener: handleNoConstructorReferenceContinuationAfterTypeArguments(()
+ listener: endConstructorReference(, null, ()
+ parseConstructorInvocationArguments()
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: endConstExpression(const)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ reportRecoverableError(const, ConstMethod)
+ listener: handleRecoverableError(ConstMethod, const, const)
+ listener: endClassMethod(null, const, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(continue)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, continue)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(continue)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'continue'., null, {token: continue}], continue, continue)
+ listener: handleInvalidMember(continue)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(continue, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(continue)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(continue, continue, null, null, null, null, null, continue, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(continue, null, null, null, null, null, continue, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(continue)
+ ensureIdentifier(continue, methodDeclaration)
+ insertSyntheticIdentifier(continue, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(continue)
+ parseArgumentsOpt()
+ listener: handleNoArguments(continue)
+ listener: handleSend(, continue)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], continue, continue)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, continue)
+ parseStatement(;)
+ parseStatementX(;)
+ parseContinueStatement(;)
+ isContinueAllowed()
+ reportRecoverableError(continue, ContinueOutsideOfLoop)
+ listener: handleRecoverableError(ContinueOutsideOfLoop, continue, continue)
+ ensureSemicolon(continue)
+ reportRecoverableError(continue, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], continue, continue)
+ rewriter()
+ listener: handleContinueStatement(false, continue, ;)
+ notEofOrValue(}, ()
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(;)
+ parseParenthesizedExpression(;)
+ parseExpressionInParenthesis(;)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(default)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, default)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(default)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'default'., null, {token: default}], default, default)
+ listener: handleInvalidMember(default)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(default, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(default)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(default, default, null, null, null, null, null, default, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(default, null, null, null, null, null, default, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(default)
+ ensureIdentifier(default, methodDeclaration)
+ insertSyntheticIdentifier(default, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+ listener: handleIdentifier(default, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(default)
+ parseArguments(default)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(default, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(do)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, do)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(do)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'do'., null, {token: do}], do, do)
+ listener: handleInvalidMember(do)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(do, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(do)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(do, do, null, null, null, null, null, do, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(do, null, null, null, null, null, do, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(do)
+ ensureIdentifier(do, methodDeclaration)
+ insertSyntheticIdentifier(do, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(do)
+ parseArgumentsOpt()
+ listener: handleNoArguments(do)
+ listener: handleSend(, do)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], do, do)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, do)
+ parseStatement(;)
+ parseStatementX(;)
+ parseDoWhileStatement(;)
+ listener: beginDoWhileStatement(do)
+ listener: beginDoWhileStatementBody(()
+ parseStatement(do)
+ parseStatementX(do)
+ parseExpressionStatementOrDeclaration(do, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(do, do, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(do)
+ parseExpression(do)
+ parsePrecedenceExpression(do, 1, true)
+ parseUnaryExpression(do, true)
+ parsePrimary(do, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(do)
+ parseParenthesizedExpression(do)
+ parseExpressionInParenthesis(do)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ listener: endDoWhileStatementBody(;)
+ reportRecoverableError(}, Message[ExpectedButGot, Expected 'while' before this., null, {string: while}])
+ listener: handleRecoverableError(Message[ExpectedButGot, Expected 'while' before this., null, {string: while}], }, })
+ rewriter()
+ ensureParenthesizedCondition(while)
+ reportRecoverableError(}, Message[ExpectedToken, Expected to find '('., null, {string: (}])
+ listener: handleRecoverableError(Message[ExpectedToken, Expected to find '('., null, {string: (}], }, })
+ rewriter()
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., null, {token: }}], }, })
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureCloseParen(, ()
+ listener: handleParenthesizedCondition(()
+ ensureSemicolon())
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], }, })
+ rewriter()
+ listener: endDoWhileStatement(do, while, ;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(else)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, else)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(else)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'else'., null, {token: else}], else, else)
+ listener: handleInvalidMember(else)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(else, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(else)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(else, else, null, null, null, null, null, else, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(else, null, null, null, null, null, else, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(else)
+ ensureIdentifier(else, methodDeclaration)
+ insertSyntheticIdentifier(else, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(else)
+ parseArgumentsOpt()
+ listener: handleNoArguments(else)
+ listener: handleSend(, else)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, else)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(else)
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ inPlainSync()
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(else)
+ parseArgumentsOpt()
+ listener: handleNoArguments(else)
+ listener: handleSend(, else)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
+ rewriter()
+ listener: handleExpressionStatement(;)
+ reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], else, else)
+ notEofOrValue(}, ()
+ parseStatement(else)
+ parseStatementX(else)
+ parseExpressionStatementOrDeclaration(else, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(else, else, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(else)
+ parseExpression(else)
+ parsePrecedenceExpression(else, 1, true)
+ parseUnaryExpression(else, true)
+ parsePrimary(else, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(else)
+ parseParenthesizedExpression(else)
+ parseExpressionInParenthesis(else)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(enum)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, enum)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportAndSkipEnumInClass(enum)
+ reportRecoverableError(enum, EnumInClass)
+ listener: handleRecoverableError(EnumInClass, enum, enum)
+ listener: handleInvalidMember(enum)
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(enum, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(enum)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(enum, enum, null, null, null, null, null, enum, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(enum, null, null, null, null, null, enum, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(enum)
+ ensureIdentifier(enum, methodDeclaration)
+ insertSyntheticIdentifier(enum, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'enum'., null, {token: enum}], enum, enum)
+ listener: handleIdentifier(enum, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(enum)
+ parseArguments(enum)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(enum, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(extends)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, extends)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(extends)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'extends'., null, {token: extends}], extends, extends)
+ listener: handleInvalidMember(extends)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(extends, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(extends)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(extends, extends, null, null, null, null, null, extends, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(extends, null, null, null, null, null, extends, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(extends)
+ ensureIdentifier(extends, methodDeclaration)
+ insertSyntheticIdentifier(extends, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+ listener: handleIdentifier(extends, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(extends)
+ parseArguments(extends)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(extends, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(false)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, false)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(false)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'false'., null, {token: false}], false, false)
+ listener: handleInvalidMember(false)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(false, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(false)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(false, false, null, null, null, null, null, false, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(false, null, null, null, null, null, false, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(false)
+ ensureIdentifier(false, methodDeclaration)
+ insertSyntheticIdentifier(false, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralBool(return)
+ listener: handleLiteralBool(false)
+ parseArgumentOrIndexStar(false, Instance of 'NoTypeParamOrArg', false)
+ listener: handleNoTypeArguments(()
+ parseArguments(false)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend((, ))
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(final)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, final)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(final, ;, null, null, null, null, final, final, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(;, null, null, null, null, final, final, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'final' here., Try removing 'final'., {token: final}], final, final)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(final)
+ ensureIdentifier(final, methodDeclaration)
+ insertSyntheticIdentifier(final, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(final)
+ parseArgumentsOpt()
+ listener: handleNoArguments(final)
+ listener: handleSend(, final)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], final, final)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, final)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(final, ;, null, final, null, false)
+ looksLikeLocalFunction(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: handleNoType(final)
+ listener: beginVariablesDeclaration((, null, final)
+ parseVariablesDeclarationRest(final, true)
+ parseOptionallyInitializedIdentifier(final)
+ ensureIdentifier(final, localVariableDeclaration)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, localVariableDeclaration)
+ listener: beginInitializedIdentifier()
+ parseVariableInitializerOpt()
+ listener: handleNoVariableInitializer(x)
+ listener: endInitializedIdentifier()
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+ rewriter()
+ listener: endVariablesDeclaration(1, ;)
+ notEofOrValue(}, x)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(x)
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSendOrFunctionLiteral(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureSemicolon(1)
+ reportRecoverableError(1, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+ rewriter()
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, ))
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction())
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+ rewriter()
+ listener: handleExpressionStatement(;)
+ reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+ notEofOrValue(}, +)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(6, {, })
+ listener: endClassMethod(null, final, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(finally)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, finally)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(finally)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'finally'., null, {token: finally}], finally, finally)
+ listener: handleInvalidMember(finally)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(finally, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(finally)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(finally, finally, null, null, null, null, null, finally, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(finally, null, null, null, null, null, finally, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(finally)
+ ensureIdentifier(finally, methodDeclaration)
+ insertSyntheticIdentifier(finally, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+ listener: handleIdentifier(finally, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(finally)
+ parseArguments(finally)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(finally, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(for)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, for)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(for)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'for'., null, {token: for}], for, for)
+ listener: handleInvalidMember(for)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(for, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(for)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(for, for, null, null, null, null, null, for, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(for, null, null, null, null, null, for, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(for)
+ ensureIdentifier(for, methodDeclaration)
+ insertSyntheticIdentifier(for, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(for)
+ parseArgumentsOpt()
+ listener: handleNoArguments(for)
+ listener: handleSend(, for)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], for, for)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, for)
+ parseStatement(;)
+ parseStatementX(;)
+ parseForStatement(;, null)
+ listener: beginForStatement(for)
+ parseForLoopPartsStart(null, for)
+ parseExpressionStatementOrDeclaration((, true)
+ parseExpressionStatementOrDeclarationAfterModifiers((, (, null, null, null, true)
+ parseForLoopPartsMid((, null, for)
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: handleForInitializerExpressionStatement(1, false)
+ parseForRest(null, 1, for)
+ parseForLoopPartsRest(1, for, null)
+ ensureSemicolon(1)
+ reportRecoverableError(1, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+ rewriter()
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+ rewriter()
+ listener: handleExpressionStatement(;)
+ listener: handleForLoopParts(for, (, ;, 0)
+ listener: beginForStatementBody(+)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ listener: endForStatementBody(})
+ listener: endForStatement(})
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(if)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, if)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(if)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'if'., null, {token: if}], if, if)
+ listener: handleInvalidMember(if)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(if, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(if)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(if, if, null, null, null, null, null, if, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(if, null, null, null, null, null, if, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(if)
+ ensureIdentifier(if, methodDeclaration)
+ insertSyntheticIdentifier(if, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(if)
+ parseArgumentsOpt()
+ listener: handleNoArguments(if)
+ listener: handleSend(, if)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], if, if)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, if)
+ parseStatement(;)
+ parseStatementX(;)
+ parseIfStatement(;)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(+)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(in)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, in)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(in)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'in'., null, {token: in}], in, in)
+ listener: handleInvalidMember(in)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(in, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(in)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(in, in, null, null, null, null, null, in, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(in, null, null, null, null, null, in, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(in)
+ ensureIdentifier(in, methodDeclaration)
+ insertSyntheticIdentifier(in, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+ listener: handleIdentifier(in, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(in)
+ parseArguments(in)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(in, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(is)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, is)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(is)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'is'., null, {token: is}], is, is)
+ listener: handleInvalidMember(is)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(is, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(is)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(is, is, null, null, null, null, null, is, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(is, null, null, null, null, null, is, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(is)
+ ensureIdentifier(is, methodDeclaration)
+ insertSyntheticIdentifier(is, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(is)
+ parseArgumentsOpt()
+ listener: handleNoArguments(is)
+ listener: handleSend(, is)
+ parseIsOperatorRest()
+ listener: beginIsOperatorType(is)
+ computeTypeAfterIsOrAs(is)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, typeReference)
+ listener: handleNoTypeArguments(()
+ listener: handleType(, null)
+ listener: endIsOperatorType(is)
+ listener: handleIsOperator(is, null)
+ skipChainedAsIsOperators()
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], (, ()
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, ()
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(;)
+ parseParenthesizedExpression(;)
+ parseExpressionInParenthesis(;)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(new)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, new)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(new)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'new'., null, {token: new}], new, new)
+ listener: handleInvalidMember(new)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(new, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(new)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(new, new, null, null, null, null, null, new, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(new, null, null, null, null, null, new, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(new)
+ ensureIdentifier(new, methodDeclaration)
+ insertSyntheticIdentifier(new, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseNewExpression(return)
+ listener: beginNewExpression(new)
+ parseConstructorReference(new, null)
+ ensureIdentifier(new, constructorReference)
+ insertSyntheticIdentifier(new, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, constructorReference)
+ listener: beginConstructorReference()
+ parseQualifiedRestOpt(, constructorReferenceContinuation)
+ listener: handleNoTypeArguments(()
+ listener: handleNoConstructorReferenceContinuationAfterTypeArguments(()
+ listener: endConstructorReference(, null, ()
+ parseConstructorInvocationArguments()
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: endNewExpression(new)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(null)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, null)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(null)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'null'., null, {token: null}], null, null)
+ listener: handleInvalidMember(null)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(null, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(null)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(null, null, null, null, null, null, null, null, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(null, null, null, null, null, null, null, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(null)
+ ensureIdentifier(null, methodDeclaration)
+ insertSyntheticIdentifier(null, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralNull(return)
+ listener: handleLiteralNull(null)
+ parseArgumentOrIndexStar(null, Instance of 'NoTypeParamOrArg', false)
+ listener: handleNoTypeArguments(()
+ parseArguments(null)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend((, ))
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(rethrow)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, rethrow)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(rethrow)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+ listener: handleInvalidMember(rethrow)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(rethrow, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(rethrow)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(rethrow, rethrow, null, null, null, null, null, rethrow, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(rethrow, null, null, null, null, null, rethrow, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(rethrow)
+ ensureIdentifier(rethrow, methodDeclaration)
+ insertSyntheticIdentifier(rethrow, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+ listener: handleIdentifier(rethrow, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(rethrow)
+ parseArguments(rethrow)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(rethrow, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(return)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, return)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(return)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'return'., null, {token: return}], return, return)
+ listener: handleInvalidMember(return)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(return, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(return)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(return, return, null, null, null, null, null, return, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(return, null, null, null, null, null, return, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(return)
+ ensureIdentifier(return, methodDeclaration)
+ insertSyntheticIdentifier(return, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {token: return}], return, return)
+ parsePrimary(return, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(return)
+ parseParenthesizedExpression(return)
+ parseExpressionInParenthesis(return)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(super)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, super)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(super)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'super'., null, {token: super}], super, super)
+ listener: handleInvalidMember(super)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(super, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(super)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(super, super, null, null, null, null, null, super, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(super, null, null, null, null, null, super, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(super)
+ ensureIdentifier(super, methodDeclaration)
+ insertSyntheticIdentifier(super, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseSuperExpression(return, expression)
+ listener: handleSuperExpression(super, expression)
+ listener: handleNoTypeArguments(()
+ parseArguments(super)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(super, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(switch)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, switch)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(switch)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'switch'., null, {token: switch}], switch, switch)
+ listener: handleInvalidMember(switch)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(switch, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(switch)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(switch, switch, null, null, null, null, null, switch, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(switch, null, null, null, null, null, switch, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(switch)
+ ensureIdentifier(switch, methodDeclaration)
+ insertSyntheticIdentifier(switch, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(switch)
+ parseArgumentsOpt()
+ listener: handleNoArguments(switch)
+ listener: handleSend(, switch)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], switch, switch)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, switch)
+ parseStatement(;)
+ parseStatementX(;)
+ parseSwitchStatement(;)
+ listener: beginSwitchStatement(switch)
+ ensureParenthesizedCondition(switch)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedCondition(()
+ parseSwitchBlock())
+ ensureBlock(), null, switch statement)
+ reportRecoverableError(), Message[ExpectedClassOrMixinBody, A switch statement must have a body, even if it is empty., Try adding an empty body., {string: switch statement}])
+ listener: handleRecoverableError(Message[ExpectedClassOrMixinBody, A switch statement must have a body, even if it is empty., Try adding an empty body., {string: switch statement}], ), ))
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: beginSwitchBlock({)
+ notEofOrValue(}, })
+ listener: endSwitchBlock(0, {, })
+ listener: endSwitchStatement(switch, })
+ notEofOrValue(}, +)
+ parseStatement(})
+ parseStatementX(})
+ parseExpressionStatementOrDeclaration(}, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(}, }, null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement(})
+ parseExpression(})
+ parsePrecedenceExpression(}, 1, true)
+ parseUnaryExpression(}, true)
+ rewriteAndRecover(}, UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(}, expression)
+ parseSendOrFunctionLiteral(}, expression)
+ parseSend(}, expression)
+ ensureIdentifier(}, expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(int, }, null, null, null, null, null, }, Instance of 'SimpleType', null, DeclarationKind.Class, WrapperClass)
+ parseFields(}, null, null, null, null, null, }, Instance of 'SimpleType', this, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(this)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
+ listener: handleIdentifier(this, fieldDeclaration)
+ parseFieldInitializerOpt(this, this, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(()
+ ensureSemicolon(this)
+ reportRecoverableError(this, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], this, this)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(;, null, null, null, null, null, ;, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(;)
+ ensureIdentifier(;, methodDeclaration)
+ insertSyntheticIdentifier(;, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseThisExpression(return, expression)
+ listener: handleThisExpression(this, expression)
+ listener: handleNoTypeArguments(()
+ parseArguments(this)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(this, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(throw)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, throw)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(throw)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'throw'., null, {token: throw}], throw, throw)
+ listener: handleInvalidMember(throw)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(throw, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(throw)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(throw, throw, null, null, null, null, null, throw, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(throw, null, null, null, null, null, throw, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(throw)
+ ensureIdentifier(throw, methodDeclaration)
+ insertSyntheticIdentifier(throw, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parseThrowExpression(return, true)
+ parseExpression(throw)
+ parsePrecedenceExpression(throw, 1, true)
+ parseUnaryExpression(throw, true)
+ parsePrimary(throw, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(throw)
+ parseParenthesizedExpression(throw)
+ parseExpressionInParenthesis(throw)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ listener: handleThrowExpression(throw, ;)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(true)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, true)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(true)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'true'., null, {token: true}], true, true)
+ listener: handleInvalidMember(true)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(true, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(true)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(true, true, null, null, null, null, null, true, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(true, null, null, null, null, null, true, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(true)
+ ensureIdentifier(true, methodDeclaration)
+ insertSyntheticIdentifier(true, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralBool(return)
+ listener: handleLiteralBool(true)
+ parseArgumentOrIndexStar(true, Instance of 'NoTypeParamOrArg', false)
+ listener: handleNoTypeArguments(()
+ parseArguments(true)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend((, ))
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(try)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, try)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(try)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'try'., null, {token: try}], try, try)
+ listener: handleInvalidMember(try)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(try, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(try)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(try, try, null, null, null, null, null, try, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(try, null, null, null, null, null, try, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(try)
+ ensureIdentifier(try, methodDeclaration)
+ insertSyntheticIdentifier(try, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(try)
+ parseArgumentsOpt()
+ listener: handleNoArguments(try)
+ listener: handleSend(, try)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], try, try)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, try)
+ parseStatement(;)
+ parseStatementX(;)
+ parseTryStatement(;)
+ listener: beginTryStatement(try)
+ parseBlock(try, BlockKind(try statement))
+ ensureBlock(try, null, try statement)
+ reportRecoverableError(try, Message[ExpectedClassOrMixinBody, A try statement must have a body, even if it is empty., Try adding an empty body., {string: try statement}])
+ listener: handleRecoverableError(Message[ExpectedClassOrMixinBody, A try statement must have a body, even if it is empty., Try adding an empty body., {string: try statement}], try, try)
+ insertBlock(try)
+ rewriter()
+ rewriter()
+ listener: beginBlock({, BlockKind(try statement))
+ notEofOrValue(}, })
+ listener: endBlock(0, {, }, BlockKind(try statement))
+ reportRecoverableError(try, OnlyTry)
+ listener: handleRecoverableError(OnlyTry, try, try)
+ listener: endTryStatement(0, try, null)
+ notEofOrValue(}, ()
+ parseStatement(})
+ parseStatementX(})
+ parseExpressionStatementOrDeclaration(}, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(}, }, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(})
+ parseExpression(})
+ parsePrecedenceExpression(}, 1, true)
+ parseUnaryExpression(}, true)
+ parsePrimary(}, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(})
+ parseParenthesizedExpression(})
+ parseExpressionInParenthesis(})
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(var)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, var)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(var, ;, null, null, null, null, var, var, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(;, null, null, null, null, var, var, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(var, VarReturnType)
+ listener: handleRecoverableError(VarReturnType, var, var)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(var)
+ ensureIdentifier(var, methodDeclaration)
+ insertSyntheticIdentifier(var, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(var)
+ parseArgumentsOpt()
+ listener: handleNoArguments(var)
+ listener: handleSend(, var)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], var, var)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, var)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(var, ;, null, var, null, false)
+ looksLikeLocalFunction(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: handleNoType(var)
+ listener: beginVariablesDeclaration((, null, var)
+ parseVariablesDeclarationRest(var, true)
+ parseOptionallyInitializedIdentifier(var)
+ ensureIdentifier(var, localVariableDeclaration)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, localVariableDeclaration)
+ listener: beginInitializedIdentifier()
+ parseVariableInitializerOpt()
+ listener: handleNoVariableInitializer(x)
+ listener: endInitializedIdentifier()
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+ rewriter()
+ listener: endVariablesDeclaration(1, ;)
+ notEofOrValue(}, x)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(x)
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSendOrFunctionLiteral(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureSemicolon(1)
+ reportRecoverableError(1, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+ rewriter()
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, ))
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction())
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+ rewriter()
+ listener: handleExpressionStatement(;)
+ reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+ notEofOrValue(}, +)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(6, {, })
+ listener: endClassMethod(null, var, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(void)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, void)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(void)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(void, ;, null, null, null, null, null, ;, Instance of 'VoidType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(;, null, null, null, null, null, ;, Instance of 'VoidType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleVoidKeyword(void)
+ ensureIdentifier(void, methodDeclaration)
+ insertSyntheticIdentifier(void, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseSendOrFunctionLiteral(return, expression)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(void)
+ parseArgumentsOpt()
+ listener: handleNoArguments(void)
+ listener: handleSend(, void)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], void, void)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, void)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(()
+ listener: beginMetadataStar(void)
+ listener: endMetadataStar(0)
+ listener: handleVoidKeyword(void)
+ listener: beginVariablesDeclaration((, null, null)
+ parseVariablesDeclarationRest(void, true)
+ parseOptionallyInitializedIdentifier(void)
+ ensureIdentifier(void, localVariableDeclaration)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, localVariableDeclaration)
+ listener: beginInitializedIdentifier()
+ parseVariableInitializerOpt()
+ listener: handleNoVariableInitializer(x)
+ listener: endInitializedIdentifier()
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+ rewriter()
+ listener: endVariablesDeclaration(1, ;)
+ notEofOrValue(}, x)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(x)
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSendOrFunctionLiteral(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureSemicolon(1)
+ reportRecoverableError(1, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+ rewriter()
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, ))
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction())
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+ rewriter()
+ listener: handleExpressionStatement(;)
+ reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+ notEofOrValue(}, +)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(6, {, })
+ listener: endClassMethod(null, void, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(while)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, while)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(while)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'while'., null, {token: while}], while, while)
+ listener: handleInvalidMember(while)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(while, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(while)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(while, while, null, null, null, null, null, while, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(while, null, null, null, null, null, while, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(while)
+ ensureIdentifier(while, methodDeclaration)
+ insertSyntheticIdentifier(while, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(while)
+ parseArgumentsOpt()
+ listener: handleNoArguments(while)
+ listener: handleSend(, while)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], while, while)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, while)
+ parseStatement(;)
+ parseStatementX(;)
+ parseWhileStatement(;)
+ listener: beginWhileStatement(while)
+ ensureParenthesizedCondition(while)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginWhileStatementBody(+)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ listener: endWhileStatementBody(})
+ listener: endWhileStatement(while, })
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.Class, WrapperClass)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, fieldDeclaration)
+ listener: handleIdentifier(int, fieldDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.Class, WrapperClass)
+ listener: handleNoFieldInitializer(with)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, with)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(with)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'with'., null, {token: with}], with, with)
+ listener: handleInvalidMember(with)
+ listener: endMember()
+ notEofOrValue(}, ()
+ parseClassOrMixinOrExtensionMemberImpl(with, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(with)
+ listener: beginMetadataStar(()
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ recoverFromInvalidMember(with, with, null, null, null, null, null, with, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+ parseMethod(with, null, null, null, null, null, with, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, ()
+ listener: handleNoType(with)
+ ensureIdentifier(with, methodDeclaration)
+ insertSyntheticIdentifier(with, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, methodDeclaration)
+ parseQualifiedRestOpt(, methodDeclarationContinuation)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+ listener: handleIdentifier(with, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(with)
+ parseArguments(with)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(with, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, , (, null, })
+ listener: endMember()
+ notEofOrValue(}, })
+ listener: endClassOrMixinBody(DeclarationKind.Class, 94, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration()
+ reportAllErrorTokens(class)
+ listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart.parser.expect
new file mode 100644
index 0000000..2d842d0
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart.parser.expect
@@ -0,0 +1,335 @@
+NOTICE: Stream was rewritten by parser!
+
+class WrapperClass {
+int ;assert(int x) {
+if (x == 0) return 42;
+return assert(x-1) + 1;
+}
+
+int ;break(int x) {
+if (x == 0) return 42;
+return ;break;(x-1) + 1;
+}
+
+int ;case(int x) {
+if (x == 0) return 42;
+return case(x-1) + 1;
+}
+
+int ;catch(int x) {
+if (x == 0) return 42;
+return catch(x-1) + 1;
+}
+
+int ;class(int x) {
+if (x == 0) return 42;
+return class(x-1) + 1;
+}
+
+int ;const(int x) {
+if (x == 0) return 42;
+return const(x-1) + 1;
+}
+
+int ;continue(int x) {
+if (x == 0) return 42;
+return ;continue;(x-1) + 1;
+}
+
+int ;default(int x) {
+if (x == 0) return 42;
+return default(x-1) + 1;
+}
+
+int ;do(int x) {
+if (x == 0) return 42;
+return ;do(x-1) + 1;
+while();}
+
+int ;else(int x) {
+if (x == 0) return 42;
+return ;;else(x-1) + 1;
+}
+
+int ;enum(int x) {
+if (x == 0) return 42;
+return enum(x-1) + 1;
+}
+
+int ;extends(int x) {
+if (x == 0) return 42;
+return extends(x-1) + 1;
+}
+
+int ;false(int x) {
+if (x == 0) return 42;
+return false(x-1) + 1;
+}
+
+int ;final(int x) {
+if (x == 0) return 42;
+return ;final(;x-1;;) + 1;
+}
+
+int ;finally(int x) {
+if (x == 0) return 42;
+return finally(x-1) + 1;
+}
+
+int ;for(int x) {
+if (x == 0) return 42;
+return ;for(x-1;;) + 1;
+}
+
+int ;if(int x) {
+if (x == 0) return 42;
+return ;if(x-1) + 1;
+}
+
+int ;in(int x) {
+if (x == 0) return 42;
+return in(x-1) + 1;
+}
+
+int ;is(int x) {
+if (x == 0) return 42;
+return is;(x-1) + 1;
+}
+
+int ;new(int x) {
+if (x == 0) return 42;
+return new(x-1) + 1;
+}
+
+int ;null(int x) {
+if (x == 0) return 42;
+return null(x-1) + 1;
+}
+
+int ;rethrow(int x) {
+if (x == 0) return 42;
+return rethrow(x-1) + 1;
+}
+
+int ;return(int x) {
+if (x == 0) return 42;
+return return(x-1) + 1;
+}
+
+int ;super(int x) {
+if (x == 0) return 42;
+return super(x-1) + 1;
+}
+
+int ;switch(int x) {
+if (x == 0) return 42;
+return ;switch(x-1) {}+ 1;
+}
+
+int this;(int x) {
+if (x == 0) return 42;
+return this(x-1) + 1;
+}
+
+int ;throw(int x) {
+if (x == 0) return 42;
+return throw(x-1) + 1;
+}
+
+int ;true(int x) {
+if (x == 0) return 42;
+return true(x-1) + 1;
+}
+
+int ;try(int x) {
+if (x == 0) return 42;
+return ;try{}(x-1) + 1;
+}
+
+int ;var(int x) {
+if (x == 0) return 42;
+return ;var(;x-1;;) + 1;
+}
+
+int ;void(int x) {
+if (x == 0) return 42;
+return ;void(;x-1;;) + 1;
+}
+
+int ;while(int x) {
+if (x == 0) return 42;
+return ;while(x-1) + 1;
+}
+
+int ;with(int x) {
+if (x == 0) return 42;
+return with(x-1) + 1;
+}
+}
+
+class[KeywordToken] WrapperClass[StringToken] {[BeginToken]
+int[StringToken] ;[SyntheticToken]assert[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] assert[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]break[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]break[KeywordToken];[SyntheticToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]case[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] case[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]catch[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] catch[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]class[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] class[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]const[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] const[KeywordToken][SyntheticStringToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]continue[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]continue[KeywordToken];[SyntheticToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]default[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] default[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]do[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]do[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+while[SyntheticKeywordToken]([SyntheticBeginToken][SyntheticStringToken])[SyntheticToken];[SyntheticToken]}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]else[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken]else[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]enum[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] enum[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]extends[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] extends[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]false[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] false[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]final[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]final[KeywordToken]([BeginToken][SyntheticStringToken];[SyntheticToken]x[StringToken]-[SimpleToken]1[StringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]finally[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] finally[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]for[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]for[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]if[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]if[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]in[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] in[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]is[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken]is[KeywordToken][SyntheticStringToken];[SyntheticToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]new[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] new[KeywordToken][SyntheticStringToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]null[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] null[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]rethrow[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] rethrow[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]return[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] return[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]super[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] super[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]switch[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]switch[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] {[SyntheticBeginToken]}[SyntheticToken][SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] this[KeywordToken];[SyntheticToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] this[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]throw[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] throw[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]true[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] true[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]try[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]try[KeywordToken]{[SyntheticBeginToken]}[SyntheticToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]var[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]var[KeywordToken]([BeginToken][SyntheticStringToken];[SyntheticToken]x[StringToken]-[SimpleToken]1[StringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]void[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]void[KeywordToken]([BeginToken][SyntheticStringToken];[SyntheticToken]x[StringToken]-[SimpleToken]1[StringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]while[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]while[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]with[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] with[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+}[SimpleToken][SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart.scanner.expect
new file mode 100644
index 0000000..3401113
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_class_methods.dart.scanner.expect
@@ -0,0 +1,333 @@
+class WrapperClass {
+int assert(int x) {
+if (x == 0) return 42;
+return assert(x-1) + 1;
+}
+
+int break(int x) {
+if (x == 0) return 42;
+return break(x-1) + 1;
+}
+
+int case(int x) {
+if (x == 0) return 42;
+return case(x-1) + 1;
+}
+
+int catch(int x) {
+if (x == 0) return 42;
+return catch(x-1) + 1;
+}
+
+int class(int x) {
+if (x == 0) return 42;
+return class(x-1) + 1;
+}
+
+int const(int x) {
+if (x == 0) return 42;
+return const(x-1) + 1;
+}
+
+int continue(int x) {
+if (x == 0) return 42;
+return continue(x-1) + 1;
+}
+
+int default(int x) {
+if (x == 0) return 42;
+return default(x-1) + 1;
+}
+
+int do(int x) {
+if (x == 0) return 42;
+return do(x-1) + 1;
+}
+
+int else(int x) {
+if (x == 0) return 42;
+return else(x-1) + 1;
+}
+
+int enum(int x) {
+if (x == 0) return 42;
+return enum(x-1) + 1;
+}
+
+int extends(int x) {
+if (x == 0) return 42;
+return extends(x-1) + 1;
+}
+
+int false(int x) {
+if (x == 0) return 42;
+return false(x-1) + 1;
+}
+
+int final(int x) {
+if (x == 0) return 42;
+return final(x-1) + 1;
+}
+
+int finally(int x) {
+if (x == 0) return 42;
+return finally(x-1) + 1;
+}
+
+int for(int x) {
+if (x == 0) return 42;
+return for(x-1) + 1;
+}
+
+int if(int x) {
+if (x == 0) return 42;
+return if(x-1) + 1;
+}
+
+int in(int x) {
+if (x == 0) return 42;
+return in(x-1) + 1;
+}
+
+int is(int x) {
+if (x == 0) return 42;
+return is(x-1) + 1;
+}
+
+int new(int x) {
+if (x == 0) return 42;
+return new(x-1) + 1;
+}
+
+int null(int x) {
+if (x == 0) return 42;
+return null(x-1) + 1;
+}
+
+int rethrow(int x) {
+if (x == 0) return 42;
+return rethrow(x-1) + 1;
+}
+
+int return(int x) {
+if (x == 0) return 42;
+return return(x-1) + 1;
+}
+
+int super(int x) {
+if (x == 0) return 42;
+return super(x-1) + 1;
+}
+
+int switch(int x) {
+if (x == 0) return 42;
+return switch(x-1) + 1;
+}
+
+int this(int x) {
+if (x == 0) return 42;
+return this(x-1) + 1;
+}
+
+int throw(int x) {
+if (x == 0) return 42;
+return throw(x-1) + 1;
+}
+
+int true(int x) {
+if (x == 0) return 42;
+return true(x-1) + 1;
+}
+
+int try(int x) {
+if (x == 0) return 42;
+return try(x-1) + 1;
+}
+
+int var(int x) {
+if (x == 0) return 42;
+return var(x-1) + 1;
+}
+
+int void(int x) {
+if (x == 0) return 42;
+return void(x-1) + 1;
+}
+
+int while(int x) {
+if (x == 0) return 42;
+return while(x-1) + 1;
+}
+
+int with(int x) {
+if (x == 0) return 42;
+return with(x-1) + 1;
+}
+}
+
+class[KeywordToken] WrapperClass[StringToken] {[BeginToken]
+int[StringToken] assert[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] assert[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] break[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] break[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] case[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] case[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] catch[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] catch[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] class[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] class[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] const[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] const[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] continue[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] continue[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] default[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] default[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] do[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] do[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] else[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] else[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] enum[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] enum[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] extends[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] extends[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] false[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] false[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] final[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] final[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] finally[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] finally[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] for[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] for[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] if[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] if[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] in[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] in[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] is[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] is[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] new[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] new[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] null[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] null[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] rethrow[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] rethrow[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] return[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] return[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] super[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] super[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] switch[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] switch[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] this[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] this[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] throw[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] throw[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] true[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] true[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] try[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] try[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] var[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] var[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] void[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] void[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] while[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] while[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] with[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] with[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+}[SimpleToken][SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart
new file mode 100644
index 0000000..30bed69
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart
@@ -0,0 +1,164 @@
+int assert(int x) {
+ if (x == 0) return 42;
+ return assert(x-1) + 1;
+}
+
+int break(int x) {
+ if (x == 0) return 42;
+ return break(x-1) + 1;
+}
+
+int case(int x) {
+ if (x == 0) return 42;
+ return case(x-1) + 1;
+}
+
+int catch(int x) {
+ if (x == 0) return 42;
+ return catch(x-1) + 1;
+}
+
+int class(int x) {
+ if (x == 0) return 42;
+ return class(x-1) + 1;
+}
+
+int const(int x) {
+ if (x == 0) return 42;
+ return const(x-1) + 1;
+}
+
+int continue(int x) {
+ if (x == 0) return 42;
+ return continue(x-1) + 1;
+}
+
+int default(int x) {
+ if (x == 0) return 42;
+ return default(x-1) + 1;
+}
+
+int do(int x) {
+ if (x == 0) return 42;
+ return do(x-1) + 1;
+}
+
+int else(int x) {
+ if (x == 0) return 42;
+ return else(x-1) + 1;
+}
+
+int enum(int x) {
+ if (x == 0) return 42;
+ return enum(x-1) + 1;
+}
+
+int extends(int x) {
+ if (x == 0) return 42;
+ return extends(x-1) + 1;
+}
+
+int false(int x) {
+ if (x == 0) return 42;
+ return false(x-1) + 1;
+}
+
+int final(int x) {
+ if (x == 0) return 42;
+ return final(x-1) + 1;
+}
+
+int finally(int x) {
+ if (x == 0) return 42;
+ return finally(x-1) + 1;
+}
+
+int for(int x) {
+ if (x == 0) return 42;
+ return for(x-1) + 1;
+}
+
+int if(int x) {
+ if (x == 0) return 42;
+ return if(x-1) + 1;
+}
+
+int in(int x) {
+ if (x == 0) return 42;
+ return in(x-1) + 1;
+}
+
+int is(int x) {
+ if (x == 0) return 42;
+ return is(x-1) + 1;
+}
+
+int new(int x) {
+ if (x == 0) return 42;
+ return new(x-1) + 1;
+}
+
+int null(int x) {
+ if (x == 0) return 42;
+ return null(x-1) + 1;
+}
+
+int rethrow(int x) {
+ if (x == 0) return 42;
+ return rethrow(x-1) + 1;
+}
+
+int return(int x) {
+ if (x == 0) return 42;
+ return return(x-1) + 1;
+}
+
+int super(int x) {
+ if (x == 0) return 42;
+ return super(x-1) + 1;
+}
+
+int switch(int x) {
+ if (x == 0) return 42;
+ return switch(x-1) + 1;
+}
+
+int this(int x) {
+ if (x == 0) return 42;
+ return this(x-1) + 1;
+}
+
+int throw(int x) {
+ if (x == 0) return 42;
+ return throw(x-1) + 1;
+}
+
+int true(int x) {
+ if (x == 0) return 42;
+ return true(x-1) + 1;
+}
+
+int try(int x) {
+ if (x == 0) return 42;
+ return try(x-1) + 1;
+}
+
+int var(int x) {
+ if (x == 0) return 42;
+ return var(x-1) + 1;
+}
+
+int void(int x) {
+ if (x == 0) return 42;
+ return void(x-1) + 1;
+}
+
+int while(int x) {
+ if (x == 0) return 42;
+ return while(x-1) + 1;
+}
+
+int with(int x) {
+ if (x == 0) return 42;
+ return with(x-1) + 1;
+}
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart.expect
new file mode 100644
index 0000000..ca1fdb1
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart.expect
@@ -0,0 +1,3177 @@
+Problems reported:
+
+parser/error_recovery/reserved_words_top_level_fields:1:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int assert(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:1:1: Expected ';' after this.
+int assert(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:1:5: Expected an identifier, but got 'assert'.
+int assert(int x) {
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:3:10: `assert` can't be used as an expression.
+ return assert(x-1) + 1;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:6:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int break(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:6:1: Expected ';' after this.
+int break(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:6:5: Expected an identifier, but got 'break'.
+int break(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:8:10: Expected an identifier, but got 'break'.
+ return break(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:8:10: Expected ';' after this.
+ return break(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:8:10: A break statement can't be used outside of a loop or switch statement.
+ return break(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:8:10: Expected ';' after this.
+ return break(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:11:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int case(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:11:1: Expected ';' after this.
+int case(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:11:5: Expected an identifier, but got 'case'.
+int case(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:13:10: Expected an identifier, but got 'case'.
+ return case(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:16:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int catch(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:16:1: Expected ';' after this.
+int catch(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:16:5: Expected an identifier, but got 'catch'.
+int catch(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:18:10: Expected an identifier, but got 'catch'.
+ return catch(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:21:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int class(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:21:1: Expected ';' after this.
+int class(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:21:10: Expected an identifier, but got '('.
+int class(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:21:11: A class declaration must have a body, even if it is empty.
+int class(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:21:15: Expected ';' after this.
+int class(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:21:16: Expected a declaration, but got ')'.
+int class(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:21:18: Expected a declaration, but got '{'.
+int class(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:26:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int const(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:26:1: Expected ';' after this.
+int const(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:26:10: Expected an identifier, but got '('.
+int const(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:26:5: Can't have modifier 'const' here.
+int const(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:28:15: Expected an identifier, but got '('.
+ return const(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:31:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int continue(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:31:1: Expected ';' after this.
+int continue(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:31:5: Expected an identifier, but got 'continue'.
+int continue(int x) {
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:33:10: Expected an identifier, but got 'continue'.
+ return continue(x-1) + 1;
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:33:10: Expected ';' after this.
+ return continue(x-1) + 1;
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:33:10: A continue statement can't be used outside of a loop or switch statement.
+ return continue(x-1) + 1;
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:33:10: Expected ';' after this.
+ return continue(x-1) + 1;
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:36:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int default(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:36:1: Expected ';' after this.
+int default(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:36:5: Expected an identifier, but got 'default'.
+int default(int x) {
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:38:10: Expected an identifier, but got 'default'.
+ return default(x-1) + 1;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:41:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int do(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:41:1: Expected ';' after this.
+int do(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:41:5: Expected an identifier, but got 'do'.
+int do(int x) {
+ ^^
+
+parser/error_recovery/reserved_words_top_level_fields:43:10: Expected an identifier, but got 'do'.
+ return do(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_top_level_fields:43:10: Expected ';' after this.
+ return do(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_top_level_fields:44:1: Expected 'while' before this.
+}
+^
+
+parser/error_recovery/reserved_words_top_level_fields:44:1: Expected to find '('.
+}
+^
+
+parser/error_recovery/reserved_words_top_level_fields:44:1: Expected an identifier, but got '}'.
+}
+^
+
+parser/error_recovery/reserved_words_top_level_fields:44:1: Expected ';' after this.
+}
+^
+
+parser/error_recovery/reserved_words_top_level_fields:46:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int else(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:46:1: Expected ';' after this.
+int else(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:46:5: Expected an identifier, but got 'else'.
+int else(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:48:10: Expected an identifier, but got 'else'.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:48:10: Expected ';' after this.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:48:10: Expected an identifier, but got 'else'.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:48:10: Expected ';' after this.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:48:10: Unexpected token ';'.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:51:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int enum(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:51:1: Expected ';' after this.
+int enum(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:51:9: Expected an identifier, but got '('.
+int enum(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:51:10: Expected a enum body, but got 'int'.
+int enum(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:51:14: Expected ';' after this.
+int enum(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:51:15: Expected a declaration, but got ')'.
+int enum(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:51:17: Expected a declaration, but got '{'.
+int enum(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:56:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int extends(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:56:1: Expected ';' after this.
+int extends(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:56:5: Expected an identifier, but got 'extends'.
+int extends(int x) {
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:58:10: Expected an identifier, but got 'extends'.
+ return extends(x-1) + 1;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:61:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int false(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:61:1: Expected ';' after this.
+int false(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:61:5: Expected an identifier, but got 'false'.
+int false(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:66:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int final(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:66:1: Expected ';' after this.
+int final(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:66:10: Expected an identifier, but got '('.
+int final(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:66:5: Can't have modifier 'final' here.
+int final(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:68:10: Expected an identifier, but got 'final'.
+ return final(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:68:10: Expected ';' after this.
+ return final(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:68:15: Expected an identifier, but got '('.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:68:16: Expected ';' after this.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:68:18: Expected ';' after this.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:68:19: Expected an identifier, but got ')'.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:68:19: Expected ';' after this.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:68:19: Unexpected token ';'.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:68:21: '+' is not a prefix operator.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:71:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int finally(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:71:1: Expected ';' after this.
+int finally(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:71:5: Expected an identifier, but got 'finally'.
+int finally(int x) {
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:73:10: Expected an identifier, but got 'finally'.
+ return finally(x-1) + 1;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:76:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int for(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:76:1: Expected ';' after this.
+int for(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:76:5: Expected an identifier, but got 'for'.
+int for(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:78:10: Expected an identifier, but got 'for'.
+ return for(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:78:10: Expected ';' after this.
+ return for(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:78:16: Expected ';' after this.
+ return for(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:78:17: Expected an identifier, but got ')'.
+ return for(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:78:17: Expected ';' after this.
+ return for(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:78:19: '+' is not a prefix operator.
+ return for(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:81:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int if(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:81:1: Expected ';' after this.
+int if(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:81:5: Expected an identifier, but got 'if'.
+int if(int x) {
+ ^^
+
+parser/error_recovery/reserved_words_top_level_fields:83:10: Expected an identifier, but got 'if'.
+ return if(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_top_level_fields:83:10: Expected ';' after this.
+ return if(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_top_level_fields:83:18: '+' is not a prefix operator.
+ return if(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:86:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int in(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:86:1: Expected ';' after this.
+int in(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:86:5: Expected an identifier, but got 'in'.
+int in(int x) {
+ ^^
+
+parser/error_recovery/reserved_words_top_level_fields:88:10: Expected an identifier, but got 'in'.
+ return in(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_top_level_fields:91:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int is(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:91:1: Expected ';' after this.
+int is(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:91:5: Expected an identifier, but got 'is'.
+int is(int x) {
+ ^^
+
+parser/error_recovery/reserved_words_top_level_fields:93:10: Expected an identifier, but got 'is'.
+ return is(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_top_level_fields:93:12: Expected a type, but got '('.
+ return is(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:93:12: Expected ';' after this.
+ return is(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:96:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int new(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:96:1: Expected ';' after this.
+int new(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:96:5: Expected an identifier, but got 'new'.
+int new(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:98:13: Expected an identifier, but got '('.
+ return new(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:101:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int null(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:101:1: Expected ';' after this.
+int null(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:101:5: Expected an identifier, but got 'null'.
+int null(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:106:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int rethrow(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:106:1: Expected ';' after this.
+int rethrow(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:106:5: Expected an identifier, but got 'rethrow'.
+int rethrow(int x) {
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:108:10: Expected an identifier, but got 'rethrow'.
+ return rethrow(x-1) + 1;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:111:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int return(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:111:1: Expected ';' after this.
+int return(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:111:5: Expected an identifier, but got 'return'.
+int return(int x) {
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:113:10: Unexpected token 'return'.
+ return return(x-1) + 1;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:116:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int super(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:116:1: Expected ';' after this.
+int super(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:116:5: Expected an identifier, but got 'super'.
+int super(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:121:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int switch(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:121:1: Expected ';' after this.
+int switch(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:121:5: Expected an identifier, but got 'switch'.
+int switch(int x) {
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:123:10: Expected an identifier, but got 'switch'.
+ return switch(x-1) + 1;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:123:10: Expected ';' after this.
+ return switch(x-1) + 1;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:123:20: A switch statement must have a body, even if it is empty.
+ return switch(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:123:22: '+' is not a prefix operator.
+ return switch(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:126:5: Expected an identifier, but got 'this'.
+int this(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:131:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int throw(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:131:1: Expected ';' after this.
+int throw(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:131:5: Expected an identifier, but got 'throw'.
+int throw(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:136:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int true(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:136:1: Expected ';' after this.
+int true(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:136:5: Expected an identifier, but got 'true'.
+int true(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:141:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int try(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:141:1: Expected ';' after this.
+int try(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:141:5: Expected an identifier, but got 'try'.
+int try(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:143:10: Expected an identifier, but got 'try'.
+ return try(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:143:10: Expected ';' after this.
+ return try(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:143:10: A try statement must have a body, even if it is empty.
+ return try(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:143:10: A try block must be followed by an 'on', 'catch', or 'finally' clause.
+ return try(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:146:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int var(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:146:1: Expected ';' after this.
+int var(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:146:8: Expected an identifier, but got '('.
+int var(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:146:5: The return type can't be 'var'.
+int var(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:148:10: Expected an identifier, but got 'var'.
+ return var(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:148:10: Expected ';' after this.
+ return var(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_fields:148:13: Expected an identifier, but got '('.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:148:14: Expected ';' after this.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:148:16: Expected ';' after this.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:148:17: Expected an identifier, but got ')'.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:148:17: Expected ';' after this.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:148:17: Unexpected token ';'.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:148:19: '+' is not a prefix operator.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:151:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int void(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:151:1: Expected ';' after this.
+int void(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:151:9: Expected an identifier, but got '('.
+int void(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:153:10: Expected an identifier, but got 'void'.
+ return void(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:153:10: Expected ';' after this.
+ return void(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:153:14: Expected an identifier, but got '('.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:153:15: Expected ';' after this.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:153:17: Expected ';' after this.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:153:18: Expected an identifier, but got ')'.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:153:18: Expected ';' after this.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:153:18: Unexpected token ';'.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:153:20: '+' is not a prefix operator.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:156:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int while(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:156:1: Expected ';' after this.
+int while(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:156:5: Expected an identifier, but got 'while'.
+int while(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:158:10: Expected an identifier, but got 'while'.
+ return while(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:158:10: Expected ';' after this.
+ return while(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:158:21: '+' is not a prefix operator.
+ return while(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_fields:161:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int with(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:161:1: Expected ';' after this.
+int with(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_fields:161:5: Expected an identifier, but got 'with'.
+int with(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_fields:163:10: Expected an identifier, but got 'with'.
+ return with(x-1) + 1;
+ ^^^^
+
+beginCompilationUnit(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType()
+ handleIdentifier(int, topLevelVariableDeclaration)
+ handleNoFieldInitializer(assert)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(assert)
+beginMetadataStar(assert)
+endMetadataStar(0)
+beginTopLevelMember(assert)
+ beginTopLevelMethod(;, null)
+ handleNoType(;)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'assert'., null, {token: assert}], assert, assert)
+ handleIdentifier(assert, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ beginAssert(assert, Assert.Expression)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ handleRecoverableError(AssertAsExpression, assert, assert)
+ endAssert(assert, Assert.Expression, (, null, +)
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(assert, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType(})
+ handleIdentifier(int, topLevelVariableDeclaration)
+ handleNoFieldInitializer(break)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(break)
+beginMetadataStar(break)
+endMetadataStar(0)
+beginTopLevelMember(break)
+beginTopLevelMethod(;, null)
+ handleNoType(;)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+ handleIdentifier(break, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+ handleIdentifier(, expression)
+ handleNoTypeArguments(break)
+ handleNoArguments(break)
+ handleSend(, break)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], break, break)
+ endReturnStatement(true, return, ;)
+ handleRecoverableError(BreakOutsideOfLoop, break, break)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], break, break)
+ handleBreakStatement(false, break, ;)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ handleParenthesizedExpression(()
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ handleExpressionStatement(;)
+ endBlockFunctionBody(4, {, })
+endTopLevelMethod(break, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(case)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(case)
+beginMetadataStar(case)
+endMetadataStar(0)
+beginTopLevelMember(case)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+handleIdentifier(case, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+ handleIdentifier(case, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(case, +)
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(case, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(catch)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(catch)
+beginMetadataStar(catch)
+endMetadataStar(0)
+beginTopLevelMember(catch)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+handleIdentifier(catch, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+ handleIdentifier(catch, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(catch, +)
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(catch, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(class)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(class)
+beginMetadataStar(class)
+endMetadataStar(0)
+beginClassOrNamedMixinApplicationPrelude(class)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, classOrMixinDeclaration)
+handleNoTypeVariables(int)
+beginClassDeclaration(class, null, )
+handleNoType()
+handleClassExtends(null)
+handleClassNoWithClause()
+handleClassOrMixinImplements(null, 0)
+handleClassHeader(class, class, null)
+handleNoType()
+handleClassExtends(null)
+handleClassNoWithClause()
+handleClassOrMixinImplements(null, 0)
+handleRecoverClassHeader()
+handleRecoverableError(Message[ExpectedClassOrMixinBody, A class declaration must have a body, even if it is empty., Try adding an empty body., {string: class declaration}], int, int)
+beginClassOrMixinBody(DeclarationKind.Class, {)
+endClassOrMixinBody(DeclarationKind.Class, 0, {, })
+endClassDeclaration(class, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, topLevelVariableDeclaration)
+handleNoFieldInitializer())
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration())
+beginMetadataStar())
+endMetadataStar(0)
+beginTopLevelMember())
+handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ')'., null, {token: )}], ), ))
+handleInvalidTopLevelDeclaration())
+endTopLevelDeclaration({)
+beginMetadataStar({)
+endMetadataStar(0)
+beginTopLevelMember({)
+handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {token: {}], {, {)
+beginBlock({, BlockKind(invalid))
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleIdentifier(class, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(class, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlock(2, {, }, BlockKind(invalid))
+handleInvalidTopLevelBlock({)
+handleInvalidTopLevelDeclaration(})
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(const)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(const)
+beginMetadataStar(const)
+endMetadataStar(0)
+beginTopLevelMember(const)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'const' here., Try removing 'const'., {token: const}], const, const)
+beginTopLevelMethod(;, null)
+handleNoType(const)
+handleIdentifier(, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+beginConstExpression(const)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, constructorReference)
+beginConstructorReference()
+handleNoTypeArguments(()
+handleNoConstructorReferenceContinuationAfterTypeArguments(()
+endConstructorReference(, null, ()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+endConstExpression(const)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(const, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(continue)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(continue)
+beginMetadataStar(continue)
+endMetadataStar(0)
+beginTopLevelMember(continue)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+handleIdentifier(continue, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+handleIdentifier(, expression)
+handleNoTypeArguments(continue)
+handleNoArguments(continue)
+handleSend(, continue)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], continue, continue)
+endReturnStatement(true, return, ;)
+handleRecoverableError(ContinueOutsideOfLoop, continue, continue)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], continue, continue)
+handleContinueStatement(false, continue, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(4, {, })
+endTopLevelMethod(continue, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(default)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(default)
+beginMetadataStar(default)
+endMetadataStar(0)
+beginTopLevelMember(default)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+handleIdentifier(default, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+handleIdentifier(default, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(default, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(default, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(do)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(do)
+beginMetadataStar(do)
+endMetadataStar(0)
+beginTopLevelMember(do)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+handleIdentifier(do, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+handleIdentifier(, expression)
+handleNoTypeArguments(do)
+handleNoArguments(do)
+handleSend(, do)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], do, do)
+endReturnStatement(true, return, ;)
+beginDoWhileStatement(do)
+beginDoWhileStatementBody(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endDoWhileStatementBody(;)
+handleRecoverableError(Message[ExpectedButGot, Expected 'while' before this., null, {string: while}], }, })
+handleRecoverableError(Message[ExpectedToken, Expected to find '('., null, {string: (}], }, })
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., null, {token: }}], }, })
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleParenthesizedCondition(()
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], }, })
+endDoWhileStatement(do, while, ;)
+endBlockFunctionBody(3, {, })
+endTopLevelMethod(do, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(else)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(else)
+beginMetadataStar(else)
+endMetadataStar(0)
+beginTopLevelMember(else)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+handleIdentifier(else, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+handleIdentifier(, expression)
+handleNoTypeArguments(else)
+handleNoArguments(else)
+handleSend(, else)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
+endReturnStatement(true, return, ;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+handleIdentifier(, expression)
+handleNoTypeArguments(else)
+handleNoArguments(else)
+handleSend(, else)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
+handleExpressionStatement(;)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], else, else)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(4, {, })
+endTopLevelMethod(else, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(enum)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(enum)
+beginMetadataStar(enum)
+endMetadataStar(0)
+beginEnum(enum)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, enumDeclaration)
+handleRecoverableError(Message[ExpectedEnumBody, Expected a enum body, but got 'int'., An enum definition must have a body with at least one constant name., {token: int}], int, int)
+endEnum(enum, {, 0)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, topLevelVariableDeclaration)
+handleNoFieldInitializer())
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration())
+beginMetadataStar())
+endMetadataStar(0)
+beginTopLevelMember())
+handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ')'., null, {token: )}], ), ))
+handleInvalidTopLevelDeclaration())
+endTopLevelDeclaration({)
+beginMetadataStar({)
+endMetadataStar(0)
+beginTopLevelMember({)
+handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {token: {}], {, {)
+beginBlock({, BlockKind(invalid))
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleIdentifier(enum, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(enum, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlock(2, {, }, BlockKind(invalid))
+handleInvalidTopLevelBlock({)
+handleInvalidTopLevelDeclaration(})
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(extends)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(extends)
+beginMetadataStar(extends)
+endMetadataStar(0)
+beginTopLevelMember(extends)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+handleIdentifier(extends, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+handleIdentifier(extends, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(extends, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(extends, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(false)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(false)
+beginMetadataStar(false)
+endMetadataStar(0)
+beginTopLevelMember(false)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'false'., null, {token: false}], false, false)
+handleIdentifier(false, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleLiteralBool(false)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend((, ))
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(false, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(final)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(final)
+beginMetadataStar(final)
+endMetadataStar(0)
+beginTopLevelMember(final)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'final' here., Try removing 'final'., {token: final}], final, final)
+beginTopLevelMethod(;, null)
+handleNoType(final)
+handleIdentifier(, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
+handleIdentifier(, expression)
+handleNoTypeArguments(final)
+handleNoArguments(final)
+handleSend(, final)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], final, final)
+endReturnStatement(true, return, ;)
+beginMetadataStar(final)
+endMetadataStar(0)
+handleNoType(final)
+beginVariablesDeclaration((, null, final)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, localVariableDeclaration)
+beginInitializedIdentifier()
+handleNoVariableInitializer(x)
+endInitializedIdentifier()
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+endVariablesDeclaration(1, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+handleExpressionStatement(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+handleExpressionStatement(;)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(6, {, })
+endTopLevelMethod(final, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(finally)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(finally)
+beginMetadataStar(finally)
+endMetadataStar(0)
+beginTopLevelMember(finally)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+handleIdentifier(finally, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+handleIdentifier(finally, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(finally, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(finally, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(for)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(for)
+beginMetadataStar(for)
+endMetadataStar(0)
+beginTopLevelMember(for)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+handleIdentifier(for, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+handleIdentifier(, expression)
+handleNoTypeArguments(for)
+handleNoArguments(for)
+handleSend(, for)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], for, for)
+endReturnStatement(true, return, ;)
+beginForStatement(for)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleForInitializerExpressionStatement(1, false)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+handleExpressionStatement(;)
+handleForLoopParts(for, (, ;, 0)
+beginForStatementBody(+)
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endForStatementBody(})
+endForStatement(})
+endBlockFunctionBody(3, {, })
+endTopLevelMethod(for, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(if)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(if)
+beginMetadataStar(if)
+endMetadataStar(0)
+beginTopLevelMember(if)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+handleIdentifier(if, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+handleIdentifier(, expression)
+handleNoTypeArguments(if)
+handleNoArguments(if)
+handleSend(, if)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], if, if)
+endReturnStatement(true, return, ;)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedCondition(()
+beginThenStatement(+)
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endThenStatement(;)
+endIfStatement(if, null)
+endBlockFunctionBody(3, {, })
+endTopLevelMethod(if, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(in)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(in)
+beginMetadataStar(in)
+endMetadataStar(0)
+beginTopLevelMember(in)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+handleIdentifier(in, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+handleIdentifier(in, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(in, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(in, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(is)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(is)
+beginMetadataStar(is)
+endMetadataStar(0)
+beginTopLevelMember(is)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+handleIdentifier(is, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+handleIdentifier(, expression)
+handleNoTypeArguments(is)
+handleNoArguments(is)
+handleSend(, is)
+beginIsOperatorType(is)
+handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {token: (}], (, ()
+handleIdentifier(, typeReference)
+handleNoTypeArguments(()
+handleType(, null)
+endIsOperatorType(is)
+handleIsOperator(is, null)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], (, ()
+endReturnStatement(true, return, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(3, {, })
+endTopLevelMethod(is, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(new)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(new)
+beginMetadataStar(new)
+endMetadataStar(0)
+beginTopLevelMember(new)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'new'., null, {token: new}], new, new)
+handleIdentifier(new, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+beginNewExpression(new)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, constructorReference)
+beginConstructorReference()
+handleNoTypeArguments(()
+handleNoConstructorReferenceContinuationAfterTypeArguments(()
+endConstructorReference(, null, ()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+endNewExpression(new)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(new, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(null)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(null)
+beginMetadataStar(null)
+endMetadataStar(0)
+beginTopLevelMember(null)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'null'., null, {token: null}], null, null)
+handleIdentifier(null, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleLiteralNull(null)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend((, ))
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(null, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(rethrow)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(rethrow)
+beginMetadataStar(rethrow)
+endMetadataStar(0)
+beginTopLevelMember(rethrow)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+handleIdentifier(rethrow, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+handleIdentifier(rethrow, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(rethrow, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(rethrow, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(return)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(return)
+beginMetadataStar(return)
+endMetadataStar(0)
+beginTopLevelMember(return)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'return'., null, {token: return}], return, return)
+handleIdentifier(return, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {token: return}], return, return)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(return, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(super)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(super)
+beginMetadataStar(super)
+endMetadataStar(0)
+beginTopLevelMember(super)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'super'., null, {token: super}], super, super)
+handleIdentifier(super, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleSuperExpression(super, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(super, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(super, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(switch)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(switch)
+beginMetadataStar(switch)
+endMetadataStar(0)
+beginTopLevelMember(switch)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+handleIdentifier(switch, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+handleIdentifier(, expression)
+handleNoTypeArguments(switch)
+handleNoArguments(switch)
+handleSend(, switch)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], switch, switch)
+endReturnStatement(true, return, ;)
+beginSwitchStatement(switch)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedCondition(()
+handleRecoverableError(Message[ExpectedClassOrMixinBody, A switch statement must have a body, even if it is empty., Try adding an empty body., {string: switch statement}], ), ))
+beginSwitchBlock({)
+endSwitchBlock(0, {, })
+endSwitchStatement(switch, })
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(4, {, })
+endTopLevelMethod(switch, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+beginTopLevelMethod(}, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(this)
+handleType(int, null)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
+handleIdentifier(this, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleThisExpression(this, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(this, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(int, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(throw)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(throw)
+beginMetadataStar(throw)
+endMetadataStar(0)
+beginTopLevelMember(throw)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
+handleIdentifier(throw, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleThrowExpression(throw, ;)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(throw, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(true)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(true)
+beginMetadataStar(true)
+endMetadataStar(0)
+beginTopLevelMember(true)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
+handleIdentifier(true, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleLiteralBool(true)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend((, ))
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(true, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(try)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(try)
+beginMetadataStar(try)
+endMetadataStar(0)
+beginTopLevelMember(try)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+handleIdentifier(try, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+handleIdentifier(, expression)
+handleNoTypeArguments(try)
+handleNoArguments(try)
+handleSend(, try)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], try, try)
+endReturnStatement(true, return, ;)
+beginTryStatement(try)
+handleRecoverableError(Message[ExpectedClassOrMixinBody, A try statement must have a body, even if it is empty., Try adding an empty body., {string: try statement}], try, try)
+beginBlock({, BlockKind(try statement))
+endBlock(0, {, }, BlockKind(try statement))
+handleRecoverableError(OnlyTry, try, try)
+endTryStatement(0, try, null)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(4, {, })
+endTopLevelMethod(try, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(var)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(var)
+beginMetadataStar(var)
+endMetadataStar(0)
+beginTopLevelMember(var)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleRecoverableError(VarReturnType, var, var)
+beginTopLevelMethod(;, null)
+handleNoType(var)
+handleIdentifier(, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
+handleIdentifier(, expression)
+handleNoTypeArguments(var)
+handleNoArguments(var)
+handleSend(, var)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], var, var)
+endReturnStatement(true, return, ;)
+beginMetadataStar(var)
+endMetadataStar(0)
+handleNoType(var)
+beginVariablesDeclaration((, null, var)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, localVariableDeclaration)
+beginInitializedIdentifier()
+handleNoVariableInitializer(x)
+endInitializedIdentifier()
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+endVariablesDeclaration(1, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+handleExpressionStatement(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+handleExpressionStatement(;)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(6, {, })
+endTopLevelMethod(var, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(void)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(void)
+beginMetadataStar(void)
+endMetadataStar(0)
+beginTopLevelMember(void)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+beginTopLevelMethod(;, null)
+handleVoidKeyword(void)
+handleIdentifier(, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
+handleIdentifier(, expression)
+handleNoTypeArguments(void)
+handleNoArguments(void)
+handleSend(, void)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], void, void)
+endReturnStatement(true, return, ;)
+beginMetadataStar(void)
+endMetadataStar(0)
+handleVoidKeyword(void)
+beginVariablesDeclaration((, null, null)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, localVariableDeclaration)
+beginInitializedIdentifier()
+handleNoVariableInitializer(x)
+endInitializedIdentifier()
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+endVariablesDeclaration(1, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+handleExpressionStatement(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+handleExpressionStatement(;)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(6, {, })
+endTopLevelMethod(void, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(while)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(while)
+beginMetadataStar(while)
+endMetadataStar(0)
+beginTopLevelMember(while)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+handleIdentifier(while, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+handleIdentifier(, expression)
+handleNoTypeArguments(while)
+handleNoArguments(while)
+handleSend(, while)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], while, while)
+endReturnStatement(true, return, ;)
+beginWhileStatement(while)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedCondition(()
+beginWhileStatementBody(+)
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endWhileStatementBody(})
+endWhileStatement(while, })
+endBlockFunctionBody(3, {, })
+endTopLevelMethod(while, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(with)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(with)
+beginMetadataStar(with)
+endMetadataStar(0)
+beginTopLevelMember(with)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+handleIdentifier(with, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+handleIdentifier(with, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(with, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(with, null, })
+endTopLevelDeclaration()
+endCompilationUnit(71, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart.intertwined.expect
new file mode 100644
index 0000000..90e26b1
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart.intertwined.expect
@@ -0,0 +1,5902 @@
+parseUnit(int)
+ skipErrorTokens(int)
+ listener: beginCompilationUnit(int)
+ syntheticPreviousToken(int)
+ parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+ parseMetadataStar()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl()
+ listener: beginTopLevelMember(int)
+ parseFields(, null, null, null, null, null, , Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType()
+ ensureIdentifier(, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(assert)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(assert)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(assert)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(assert)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, assert)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'assert'., null, {token: assert}], assert, assert)
+ listener: handleIdentifier(assert, topLevelFunctionDeclaration)
+ parseMethodTypeVar(assert)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(assert, assert, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(assert, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseAssert(return, Assert.Expression)
+ listener: beginAssert(assert, Assert.Expression)
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ reportRecoverableError(assert, AssertAsExpression)
+ listener: handleRecoverableError(AssertAsExpression, assert, assert)
+ listener: endAssert(assert, Assert.Expression, (, null, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(assert, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(break)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(break)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(break)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(break)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, break)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+ listener: handleIdentifier(break, topLevelFunctionDeclaration)
+ parseMethodTypeVar(break)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(break, break, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(break, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(break)
+ parseArgumentsOpt()
+ listener: handleNoArguments(break)
+ listener: handleSend(, break)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], break, break)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, break)
+ parseStatement(;)
+ parseStatementX(;)
+ parseBreakStatement(;)
+ isBreakAllowed()
+ reportRecoverableError(break, BreakOutsideOfLoop)
+ listener: handleRecoverableError(BreakOutsideOfLoop, break, break)
+ ensureSemicolon(break)
+ reportRecoverableError(break, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], break, break)
+ rewriter()
+ listener: handleBreakStatement(false, break, ;)
+ notEofOrValue(}, ()
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(;)
+ parseParenthesizedExpression(;)
+ parseExpressionInParenthesis(;)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endTopLevelMethod(break, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(case)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(case)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(case)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(case)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, case)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+ listener: handleIdentifier(case, topLevelFunctionDeclaration)
+ parseMethodTypeVar(case)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(case, case, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(case, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+ listener: handleIdentifier(case, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(case)
+ parseArguments(case)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(case, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(case, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(catch)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(catch)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(catch)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(catch)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, catch)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+ listener: handleIdentifier(catch, topLevelFunctionDeclaration)
+ parseMethodTypeVar(catch)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(catch, catch, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(catch, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+ listener: handleIdentifier(catch, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(catch)
+ parseArguments(catch)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(catch, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(catch, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(class)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(class)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(;, class, Instance of 'DirectiveContext')
+ parseClassDeclarationModifiers(;, class)
+ parseClassOrNamedMixinApplication(null, class)
+ listener: beginClassOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(int)
+ listener: beginClassDeclaration(class, null, )
+ parseClass(, class, class, )
+ parseClassHeaderOpt(, class, class)
+ parseClassExtendsOpt()
+ listener: handleNoType()
+ listener: handleClassExtends(null)
+ parseWithClauseOpt()
+ listener: handleClassNoWithClause()
+ parseClassOrMixinImplementsOpt()
+ listener: handleClassOrMixinImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassHeaderRecovery(, class, class)
+ parseClassHeaderOpt(, class, class)
+ parseClassExtendsOpt()
+ parseWithClauseOpt()
+ parseClassOrMixinImplementsOpt()
+ skipUnexpectedTokenOpt(, [extends, with, implements, {])
+ parseClassExtendsOpt()
+ listener: handleNoType()
+ listener: handleClassExtends(null)
+ parseWithClauseOpt()
+ listener: handleClassNoWithClause()
+ parseClassOrMixinImplementsOpt()
+ listener: handleClassOrMixinImplements(null, 0)
+ listener: handleRecoverClassHeader()
+ ensureBlock(, null, class declaration)
+ reportRecoverableError(, Message[ExpectedClassOrMixinBody, A class declaration must have a body, even if it is empty., Try adding an empty body., {string: class declaration}])
+ listener: handleRecoverableError(Message[ExpectedClassOrMixinBody, A class declaration must have a body, even if it is empty., Try adding an empty body., {string: class declaration}], int, int)
+ insertBlock()
+ rewriter()
+ rewriter()
+ parseClassOrMixinOrExtensionBody(, DeclarationKind.Class, )
+ listener: beginClassOrMixinBody(DeclarationKind.Class, {)
+ notEofOrValue(}, })
+ listener: endClassOrMixinBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'SimpleType', x, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(x, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(x, x, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer())
+ ensureSemicolon(x)
+ reportRecoverableError(x, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration())
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar())
+ listener: endMetadataStar(0)
+ listener: beginTopLevelMember())
+ parseInvalidTopLevelDeclaration(;)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ')'., null, {token: )}], ), ))
+ listener: handleInvalidTopLevelDeclaration())
+ listener: endTopLevelDeclaration({)
+ parseTopLevelDeclarationImpl(), Instance of 'DirectiveContext')
+ parseMetadataStar())
+ listener: beginMetadataStar({)
+ listener: endMetadataStar(0)
+ listener: beginTopLevelMember({)
+ parseInvalidTopLevelDeclaration())
+ reportRecoverableErrorWithToken({, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {token: {}], {, {)
+ parseInvalidBlock())
+ parseBlock(), BlockKind(invalid))
+ ensureBlock(), null, null)
+ listener: beginBlock({, BlockKind(invalid))
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
+ listener: handleIdentifier(class, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(class)
+ parseArguments(class)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(class, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlock(2, {, }, BlockKind(invalid))
+ listener: handleInvalidTopLevelBlock({)
+ listener: handleInvalidTopLevelDeclaration(})
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(const)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(const)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(const)
+ insertSyntheticIdentifier(const, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'const' here., Try removing 'const'., {token: const}], const, const)
+ parseTopLevelMethod(;, null, const, Instance of 'NoType', null, )
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(const)
+ ensureIdentifier(const, topLevelFunctionDeclaration)
+ listener: handleIdentifier(, topLevelFunctionDeclaration)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, , false, MemberKind.TopLevelMethod)
+ parseFormalParameters(, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseConstExpression(return)
+ listener: beginConstExpression(const)
+ parseConstructorReference(const, null)
+ ensureIdentifier(const, constructorReference)
+ insertSyntheticIdentifier(const, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, constructorReference)
+ listener: beginConstructorReference()
+ parseQualifiedRestOpt(, constructorReferenceContinuation)
+ listener: handleNoTypeArguments(()
+ listener: handleNoConstructorReferenceContinuationAfterTypeArguments(()
+ listener: endConstructorReference(, null, ()
+ parseConstructorInvocationArguments()
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: endConstExpression(const)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(const, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(continue)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(continue)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(continue)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(continue)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, continue)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+ listener: handleIdentifier(continue, topLevelFunctionDeclaration)
+ parseMethodTypeVar(continue)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(continue, continue, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(continue, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(continue)
+ parseArgumentsOpt()
+ listener: handleNoArguments(continue)
+ listener: handleSend(, continue)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], continue, continue)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, continue)
+ parseStatement(;)
+ parseStatementX(;)
+ parseContinueStatement(;)
+ isContinueAllowed()
+ reportRecoverableError(continue, ContinueOutsideOfLoop)
+ listener: handleRecoverableError(ContinueOutsideOfLoop, continue, continue)
+ ensureSemicolon(continue)
+ reportRecoverableError(continue, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], continue, continue)
+ rewriter()
+ listener: handleContinueStatement(false, continue, ;)
+ notEofOrValue(}, ()
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(;)
+ parseParenthesizedExpression(;)
+ parseExpressionInParenthesis(;)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endTopLevelMethod(continue, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(default)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(default)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(default)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(default)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, default)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+ listener: handleIdentifier(default, topLevelFunctionDeclaration)
+ parseMethodTypeVar(default)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(default, default, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(default, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+ listener: handleIdentifier(default, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(default)
+ parseArguments(default)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(default, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(default, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(do)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(do)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(do)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(do)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, do)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+ listener: handleIdentifier(do, topLevelFunctionDeclaration)
+ parseMethodTypeVar(do)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(do, do, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(do, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(do)
+ parseArgumentsOpt()
+ listener: handleNoArguments(do)
+ listener: handleSend(, do)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], do, do)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, do)
+ parseStatement(;)
+ parseStatementX(;)
+ parseDoWhileStatement(;)
+ listener: beginDoWhileStatement(do)
+ listener: beginDoWhileStatementBody(()
+ parseStatement(do)
+ parseStatementX(do)
+ parseExpressionStatementOrDeclaration(do, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(do, do, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(do)
+ parseExpression(do)
+ parsePrecedenceExpression(do, 1, true)
+ parseUnaryExpression(do, true)
+ parsePrimary(do, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(do)
+ parseParenthesizedExpression(do)
+ parseExpressionInParenthesis(do)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ listener: endDoWhileStatementBody(;)
+ reportRecoverableError(}, Message[ExpectedButGot, Expected 'while' before this., null, {string: while}])
+ listener: handleRecoverableError(Message[ExpectedButGot, Expected 'while' before this., null, {string: while}], }, })
+ rewriter()
+ ensureParenthesizedCondition(while)
+ reportRecoverableError(}, Message[ExpectedToken, Expected to find '('., null, {string: (}])
+ listener: handleRecoverableError(Message[ExpectedToken, Expected to find '('., null, {string: (}], }, })
+ rewriter()
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., null, {token: }}], }, })
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureCloseParen(, ()
+ listener: handleParenthesizedCondition(()
+ ensureSemicolon())
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], }, })
+ rewriter()
+ listener: endDoWhileStatement(do, while, ;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endTopLevelMethod(do, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(else)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(else)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(else)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(else)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, else)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+ listener: handleIdentifier(else, topLevelFunctionDeclaration)
+ parseMethodTypeVar(else)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(else, else, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(else, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(else)
+ parseArgumentsOpt()
+ listener: handleNoArguments(else)
+ listener: handleSend(, else)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, else)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(else)
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ inPlainSync()
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(else)
+ parseArgumentsOpt()
+ listener: handleNoArguments(else)
+ listener: handleSend(, else)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
+ rewriter()
+ listener: handleExpressionStatement(;)
+ reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], else, else)
+ notEofOrValue(}, ()
+ parseStatement(else)
+ parseStatementX(else)
+ parseExpressionStatementOrDeclaration(else, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(else, else, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(else)
+ parseExpression(else)
+ parsePrecedenceExpression(else, 1, true)
+ parseUnaryExpression(else, true)
+ parsePrimary(else, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(else)
+ parseParenthesizedExpression(else)
+ parseExpressionInParenthesis(else)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endTopLevelMethod(else, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(enum)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(enum)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(;, enum, Instance of 'DirectiveContext')
+ parseTopLevelKeywordModifiers(;, enum)
+ parseEnum(enum)
+ listener: beginEnum(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, enumDeclaration)
+ ensureBlock(, Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(int, Message[ExpectedEnumBody, Expected a enum body, but got 'int'., An enum definition must have a body with at least one constant name., {token: int}])
+ listener: handleRecoverableError(Message[ExpectedEnumBody, Expected a enum body, but got 'int'., An enum definition must have a body with at least one constant name., {token: int}], int, int)
+ insertBlock()
+ rewriter()
+ rewriter()
+ listener: endEnum(enum, {, 0)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'SimpleType', x, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(x, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(x, x, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer())
+ ensureSemicolon(x)
+ reportRecoverableError(x, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration())
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar())
+ listener: endMetadataStar(0)
+ listener: beginTopLevelMember())
+ parseInvalidTopLevelDeclaration(;)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ')'., null, {token: )}], ), ))
+ listener: handleInvalidTopLevelDeclaration())
+ listener: endTopLevelDeclaration({)
+ parseTopLevelDeclarationImpl(), Instance of 'DirectiveContext')
+ parseMetadataStar())
+ listener: beginMetadataStar({)
+ listener: endMetadataStar(0)
+ listener: beginTopLevelMember({)
+ parseInvalidTopLevelDeclaration())
+ reportRecoverableErrorWithToken({, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {token: {}], {, {)
+ parseInvalidBlock())
+ parseBlock(), BlockKind(invalid))
+ ensureBlock(), null, null)
+ listener: beginBlock({, BlockKind(invalid))
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
+ listener: handleIdentifier(enum, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(enum)
+ parseArguments(enum)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(enum, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlock(2, {, }, BlockKind(invalid))
+ listener: handleInvalidTopLevelBlock({)
+ listener: handleInvalidTopLevelDeclaration(})
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(extends)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(extends)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(extends)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(extends)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, extends)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+ listener: handleIdentifier(extends, topLevelFunctionDeclaration)
+ parseMethodTypeVar(extends)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(extends, extends, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(extends, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+ listener: handleIdentifier(extends, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(extends)
+ parseArguments(extends)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(extends, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(extends, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(false)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(false)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(false)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(false)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, false)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'false'., null, {token: false}], false, false)
+ listener: handleIdentifier(false, topLevelFunctionDeclaration)
+ parseMethodTypeVar(false)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(false, false, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(false, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralBool(return)
+ listener: handleLiteralBool(false)
+ parseArgumentOrIndexStar(false, Instance of 'NoTypeParamOrArg', false)
+ listener: handleNoTypeArguments(()
+ parseArguments(false)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend((, ))
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(false, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(final)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(final)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(final)
+ insertSyntheticIdentifier(final, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'final' here., Try removing 'final'., {token: final}], final, final)
+ parseTopLevelMethod(;, null, final, Instance of 'NoType', null, )
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(final)
+ ensureIdentifier(final, topLevelFunctionDeclaration)
+ listener: handleIdentifier(, topLevelFunctionDeclaration)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, , false, MemberKind.TopLevelMethod)
+ parseFormalParameters(, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(final)
+ parseArgumentsOpt()
+ listener: handleNoArguments(final)
+ listener: handleSend(, final)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], final, final)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, final)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(final, ;, null, final, null, false)
+ looksLikeLocalFunction(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: handleNoType(final)
+ listener: beginVariablesDeclaration((, null, final)
+ parseVariablesDeclarationRest(final, true)
+ parseOptionallyInitializedIdentifier(final)
+ ensureIdentifier(final, localVariableDeclaration)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, localVariableDeclaration)
+ listener: beginInitializedIdentifier()
+ parseVariableInitializerOpt()
+ listener: handleNoVariableInitializer(x)
+ listener: endInitializedIdentifier()
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+ rewriter()
+ listener: endVariablesDeclaration(1, ;)
+ notEofOrValue(}, x)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(x)
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSendOrFunctionLiteral(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureSemicolon(1)
+ reportRecoverableError(1, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+ rewriter()
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, ))
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction())
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+ rewriter()
+ listener: handleExpressionStatement(;)
+ reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+ notEofOrValue(}, +)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(6, {, })
+ listener: endTopLevelMethod(final, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(finally)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(finally)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(finally)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(finally)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, finally)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+ listener: handleIdentifier(finally, topLevelFunctionDeclaration)
+ parseMethodTypeVar(finally)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(finally, finally, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(finally, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+ listener: handleIdentifier(finally, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(finally)
+ parseArguments(finally)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(finally, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(finally, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(for)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(for)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(for)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(for)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, for)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+ listener: handleIdentifier(for, topLevelFunctionDeclaration)
+ parseMethodTypeVar(for)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(for, for, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(for, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(for)
+ parseArgumentsOpt()
+ listener: handleNoArguments(for)
+ listener: handleSend(, for)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], for, for)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, for)
+ parseStatement(;)
+ parseStatementX(;)
+ parseForStatement(;, null)
+ listener: beginForStatement(for)
+ parseForLoopPartsStart(null, for)
+ parseExpressionStatementOrDeclaration((, true)
+ parseExpressionStatementOrDeclarationAfterModifiers((, (, null, null, null, true)
+ parseForLoopPartsMid((, null, for)
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: handleForInitializerExpressionStatement(1, false)
+ parseForRest(null, 1, for)
+ parseForLoopPartsRest(1, for, null)
+ ensureSemicolon(1)
+ reportRecoverableError(1, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+ rewriter()
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+ rewriter()
+ listener: handleExpressionStatement(;)
+ listener: handleForLoopParts(for, (, ;, 0)
+ listener: beginForStatementBody(+)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ listener: endForStatementBody(})
+ listener: endForStatement(})
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endTopLevelMethod(for, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(if)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(if)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(if)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(if)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, if)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+ listener: handleIdentifier(if, topLevelFunctionDeclaration)
+ parseMethodTypeVar(if)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(if, if, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(if, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(if)
+ parseArgumentsOpt()
+ listener: handleNoArguments(if)
+ listener: handleSend(, if)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], if, if)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, if)
+ parseStatement(;)
+ parseStatementX(;)
+ parseIfStatement(;)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(+)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endTopLevelMethod(if, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(in)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(in)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(in)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(in)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, in)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+ listener: handleIdentifier(in, topLevelFunctionDeclaration)
+ parseMethodTypeVar(in)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(in, in, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(in, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+ listener: handleIdentifier(in, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(in)
+ parseArguments(in)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(in, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(in, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(is)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(is)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(is)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(is)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, is)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+ listener: handleIdentifier(is, topLevelFunctionDeclaration)
+ parseMethodTypeVar(is)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(is, is, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(is, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(is)
+ parseArgumentsOpt()
+ listener: handleNoArguments(is)
+ listener: handleSend(, is)
+ parseIsOperatorRest()
+ listener: beginIsOperatorType(is)
+ computeTypeAfterIsOrAs(is)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, typeReference)
+ listener: handleNoTypeArguments(()
+ listener: handleType(, null)
+ listener: endIsOperatorType(is)
+ listener: handleIsOperator(is, null)
+ skipChainedAsIsOperators()
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], (, ()
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, ()
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(;)
+ parseParenthesizedExpression(;)
+ parseExpressionInParenthesis(;)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endTopLevelMethod(is, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(new)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(new)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(new)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(new)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, new)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'new'., null, {token: new}], new, new)
+ listener: handleIdentifier(new, topLevelFunctionDeclaration)
+ parseMethodTypeVar(new)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(new, new, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(new, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseNewExpression(return)
+ listener: beginNewExpression(new)
+ parseConstructorReference(new, null)
+ ensureIdentifier(new, constructorReference)
+ insertSyntheticIdentifier(new, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, constructorReference)
+ listener: beginConstructorReference()
+ parseQualifiedRestOpt(, constructorReferenceContinuation)
+ listener: handleNoTypeArguments(()
+ listener: handleNoConstructorReferenceContinuationAfterTypeArguments(()
+ listener: endConstructorReference(, null, ()
+ parseConstructorInvocationArguments()
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: endNewExpression(new)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(new, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(null)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(null)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(null)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(null)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, null)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'null'., null, {token: null}], null, null)
+ listener: handleIdentifier(null, topLevelFunctionDeclaration)
+ parseMethodTypeVar(null)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(null, null, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(null, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralNull(return)
+ listener: handleLiteralNull(null)
+ parseArgumentOrIndexStar(null, Instance of 'NoTypeParamOrArg', false)
+ listener: handleNoTypeArguments(()
+ parseArguments(null)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend((, ))
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(null, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(rethrow)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(rethrow)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(rethrow)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(rethrow)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, rethrow)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+ listener: handleIdentifier(rethrow, topLevelFunctionDeclaration)
+ parseMethodTypeVar(rethrow)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(rethrow, rethrow, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(rethrow, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+ listener: handleIdentifier(rethrow, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(rethrow)
+ parseArguments(rethrow)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(rethrow, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(rethrow, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(return)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(return)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(return)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(return)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, return)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'return'., null, {token: return}], return, return)
+ listener: handleIdentifier(return, topLevelFunctionDeclaration)
+ parseMethodTypeVar(return)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(return, return, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(return, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {token: return}], return, return)
+ parsePrimary(return, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(return)
+ parseParenthesizedExpression(return)
+ parseExpressionInParenthesis(return)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(return, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(super)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(super)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(super)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(super)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, super)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'super'., null, {token: super}], super, super)
+ listener: handleIdentifier(super, topLevelFunctionDeclaration)
+ parseMethodTypeVar(super)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(super, super, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(super, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseSuperExpression(return, expression)
+ listener: handleSuperExpression(super, expression)
+ listener: handleNoTypeArguments(()
+ parseArguments(super)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(super, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(super, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(switch)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(switch)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(switch)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(switch)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, switch)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+ listener: handleIdentifier(switch, topLevelFunctionDeclaration)
+ parseMethodTypeVar(switch)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(switch, switch, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(switch, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(switch)
+ parseArgumentsOpt()
+ listener: handleNoArguments(switch)
+ listener: handleSend(, switch)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], switch, switch)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, switch)
+ parseStatement(;)
+ parseStatementX(;)
+ parseSwitchStatement(;)
+ listener: beginSwitchStatement(switch)
+ ensureParenthesizedCondition(switch)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedCondition(()
+ parseSwitchBlock())
+ ensureBlock(), null, switch statement)
+ reportRecoverableError(), Message[ExpectedClassOrMixinBody, A switch statement must have a body, even if it is empty., Try adding an empty body., {string: switch statement}])
+ listener: handleRecoverableError(Message[ExpectedClassOrMixinBody, A switch statement must have a body, even if it is empty., Try adding an empty body., {string: switch statement}], ), ))
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: beginSwitchBlock({)
+ notEofOrValue(}, })
+ listener: endSwitchBlock(0, {, })
+ listener: endSwitchStatement(switch, })
+ notEofOrValue(}, +)
+ parseStatement(})
+ parseStatementX(})
+ parseExpressionStatementOrDeclaration(}, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(}, }, null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement(})
+ parseExpression(})
+ parsePrecedenceExpression(}, 1, true)
+ parseUnaryExpression(}, true)
+ rewriteAndRecover(}, UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(}, expression)
+ parseSendOrFunctionLiteral(}, expression)
+ parseSend(}, expression)
+ ensureIdentifier(}, expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endTopLevelMethod(switch, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, this)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(this)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
+ listener: handleIdentifier(this, topLevelFunctionDeclaration)
+ parseMethodTypeVar(this)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(this, this, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(this, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseThisExpression(return, expression)
+ listener: handleThisExpression(this, expression)
+ listener: handleNoTypeArguments(()
+ parseArguments(this)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(this, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(throw)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(throw)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(throw)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(throw)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, throw)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
+ listener: handleIdentifier(throw, topLevelFunctionDeclaration)
+ parseMethodTypeVar(throw)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(throw, throw, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(throw, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parseThrowExpression(return, true)
+ parseExpression(throw)
+ parsePrecedenceExpression(throw, 1, true)
+ parseUnaryExpression(throw, true)
+ parsePrimary(throw, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(throw)
+ parseParenthesizedExpression(throw)
+ parseExpressionInParenthesis(throw)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ listener: handleThrowExpression(throw, ;)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(throw, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(true)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(true)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(true)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(true)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, true)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
+ listener: handleIdentifier(true, topLevelFunctionDeclaration)
+ parseMethodTypeVar(true)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(true, true, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(true, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralBool(return)
+ listener: handleLiteralBool(true)
+ parseArgumentOrIndexStar(true, Instance of 'NoTypeParamOrArg', false)
+ listener: handleNoTypeArguments(()
+ parseArguments(true)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend((, ))
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(true, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(try)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(try)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(try)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(try)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, try)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+ listener: handleIdentifier(try, topLevelFunctionDeclaration)
+ parseMethodTypeVar(try)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(try, try, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(try, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(try)
+ parseArgumentsOpt()
+ listener: handleNoArguments(try)
+ listener: handleSend(, try)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], try, try)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, try)
+ parseStatement(;)
+ parseStatementX(;)
+ parseTryStatement(;)
+ listener: beginTryStatement(try)
+ parseBlock(try, BlockKind(try statement))
+ ensureBlock(try, null, try statement)
+ reportRecoverableError(try, Message[ExpectedClassOrMixinBody, A try statement must have a body, even if it is empty., Try adding an empty body., {string: try statement}])
+ listener: handleRecoverableError(Message[ExpectedClassOrMixinBody, A try statement must have a body, even if it is empty., Try adding an empty body., {string: try statement}], try, try)
+ insertBlock(try)
+ rewriter()
+ rewriter()
+ listener: beginBlock({, BlockKind(try statement))
+ notEofOrValue(}, })
+ listener: endBlock(0, {, }, BlockKind(try statement))
+ reportRecoverableError(try, OnlyTry)
+ listener: handleRecoverableError(OnlyTry, try, try)
+ listener: endTryStatement(0, try, null)
+ notEofOrValue(}, ()
+ parseStatement(})
+ parseStatementX(})
+ parseExpressionStatementOrDeclaration(}, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(}, }, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(})
+ parseExpression(})
+ parsePrecedenceExpression(}, 1, true)
+ parseUnaryExpression(}, true)
+ parsePrimary(}, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(})
+ parseParenthesizedExpression(})
+ parseExpressionInParenthesis(})
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endTopLevelMethod(try, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(var)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(var)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(var)
+ insertSyntheticIdentifier(var, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ reportRecoverableError(var, VarReturnType)
+ listener: handleRecoverableError(VarReturnType, var, var)
+ parseTopLevelMethod(;, null, var, Instance of 'NoType', null, )
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(var)
+ ensureIdentifier(var, topLevelFunctionDeclaration)
+ listener: handleIdentifier(, topLevelFunctionDeclaration)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, , false, MemberKind.TopLevelMethod)
+ parseFormalParameters(, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(var)
+ parseArgumentsOpt()
+ listener: handleNoArguments(var)
+ listener: handleSend(, var)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], var, var)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, var)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(var, ;, null, var, null, false)
+ looksLikeLocalFunction(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: handleNoType(var)
+ listener: beginVariablesDeclaration((, null, var)
+ parseVariablesDeclarationRest(var, true)
+ parseOptionallyInitializedIdentifier(var)
+ ensureIdentifier(var, localVariableDeclaration)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, localVariableDeclaration)
+ listener: beginInitializedIdentifier()
+ parseVariableInitializerOpt()
+ listener: handleNoVariableInitializer(x)
+ listener: endInitializedIdentifier()
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+ rewriter()
+ listener: endVariablesDeclaration(1, ;)
+ notEofOrValue(}, x)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(x)
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSendOrFunctionLiteral(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureSemicolon(1)
+ reportRecoverableError(1, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+ rewriter()
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, ))
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction())
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+ rewriter()
+ listener: handleExpressionStatement(;)
+ reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+ notEofOrValue(}, +)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(6, {, })
+ listener: endTopLevelMethod(var, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(void)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(void)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(void)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(void)
+ insertSyntheticIdentifier(void, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ parseTopLevelMethod(;, null, ;, Instance of 'VoidType', null, )
+ listener: beginTopLevelMethod(;, null)
+ listener: handleVoidKeyword(void)
+ ensureIdentifier(void, topLevelFunctionDeclaration)
+ listener: handleIdentifier(, topLevelFunctionDeclaration)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, , false, MemberKind.TopLevelMethod)
+ parseFormalParameters(, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseSendOrFunctionLiteral(return, expression)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(void)
+ parseArgumentsOpt()
+ listener: handleNoArguments(void)
+ listener: handleSend(, void)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], void, void)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, void)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(()
+ listener: beginMetadataStar(void)
+ listener: endMetadataStar(0)
+ listener: handleVoidKeyword(void)
+ listener: beginVariablesDeclaration((, null, null)
+ parseVariablesDeclarationRest(void, true)
+ parseOptionallyInitializedIdentifier(void)
+ ensureIdentifier(void, localVariableDeclaration)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, localVariableDeclaration)
+ listener: beginInitializedIdentifier()
+ parseVariableInitializerOpt()
+ listener: handleNoVariableInitializer(x)
+ listener: endInitializedIdentifier()
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+ rewriter()
+ listener: endVariablesDeclaration(1, ;)
+ notEofOrValue(}, x)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(x)
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSendOrFunctionLiteral(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureSemicolon(1)
+ reportRecoverableError(1, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+ rewriter()
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, ))
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction())
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+ rewriter()
+ listener: handleExpressionStatement(;)
+ reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+ notEofOrValue(}, +)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(6, {, })
+ listener: endTopLevelMethod(void, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(while)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(while)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(while)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(while)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, while)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+ listener: handleIdentifier(while, topLevelFunctionDeclaration)
+ parseMethodTypeVar(while)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(while, while, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(while, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(while)
+ parseArgumentsOpt()
+ listener: handleNoArguments(while)
+ listener: handleSend(, while)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], while, while)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, while)
+ parseStatement(;)
+ parseStatementX(;)
+ parseWhileStatement(;)
+ listener: beginWhileStatement(while)
+ ensureParenthesizedCondition(while)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginWhileStatementBody(+)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ listener: endWhileStatementBody(})
+ listener: endWhileStatement(while, })
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endTopLevelMethod(while, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(with)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(with)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(with)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(with)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, with)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+ listener: handleIdentifier(with, topLevelFunctionDeclaration)
+ parseMethodTypeVar(with)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(with, with, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(with, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+ listener: handleIdentifier(with, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(with)
+ parseArguments(with)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(with, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(with, null, })
+ listener: endTopLevelDeclaration()
+ reportAllErrorTokens(int)
+ listener: endCompilationUnit(71, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart.parser.expect
new file mode 100644
index 0000000..1dc529d
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart.parser.expect
@@ -0,0 +1,333 @@
+NOTICE: Stream was rewritten by parser!
+
+int ;assert(int x) {
+if (x == 0) return 42;
+return assert(x-1) + 1;
+}
+
+int ;break(int x) {
+if (x == 0) return 42;
+return ;break;(x-1) + 1;
+}
+
+int ;case(int x) {
+if (x == 0) return 42;
+return case(x-1) + 1;
+}
+
+int ;catch(int x) {
+if (x == 0) return 42;
+return catch(x-1) + 1;
+}
+
+int ;class({}int x;) {
+if (x == 0) return 42;
+return class(x-1) + 1;
+}
+
+int ;const(int x) {
+if (x == 0) return 42;
+return const(x-1) + 1;
+}
+
+int ;continue(int x) {
+if (x == 0) return 42;
+return ;continue;(x-1) + 1;
+}
+
+int ;default(int x) {
+if (x == 0) return 42;
+return default(x-1) + 1;
+}
+
+int ;do(int x) {
+if (x == 0) return 42;
+return ;do(x-1) + 1;
+while();}
+
+int ;else(int x) {
+if (x == 0) return 42;
+return ;;else(x-1) + 1;
+}
+
+int ;enum({}int x;) {
+if (x == 0) return 42;
+return enum(x-1) + 1;
+}
+
+int ;extends(int x) {
+if (x == 0) return 42;
+return extends(x-1) + 1;
+}
+
+int ;false(int x) {
+if (x == 0) return 42;
+return false(x-1) + 1;
+}
+
+int ;final(int x) {
+if (x == 0) return 42;
+return ;final(;x-1;;) + 1;
+}
+
+int ;finally(int x) {
+if (x == 0) return 42;
+return finally(x-1) + 1;
+}
+
+int ;for(int x) {
+if (x == 0) return 42;
+return ;for(x-1;;) + 1;
+}
+
+int ;if(int x) {
+if (x == 0) return 42;
+return ;if(x-1) + 1;
+}
+
+int ;in(int x) {
+if (x == 0) return 42;
+return in(x-1) + 1;
+}
+
+int ;is(int x) {
+if (x == 0) return 42;
+return is;(x-1) + 1;
+}
+
+int ;new(int x) {
+if (x == 0) return 42;
+return new(x-1) + 1;
+}
+
+int ;null(int x) {
+if (x == 0) return 42;
+return null(x-1) + 1;
+}
+
+int ;rethrow(int x) {
+if (x == 0) return 42;
+return rethrow(x-1) + 1;
+}
+
+int ;return(int x) {
+if (x == 0) return 42;
+return return(x-1) + 1;
+}
+
+int ;super(int x) {
+if (x == 0) return 42;
+return super(x-1) + 1;
+}
+
+int ;switch(int x) {
+if (x == 0) return 42;
+return ;switch(x-1) {}+ 1;
+}
+
+int this(int x) {
+if (x == 0) return 42;
+return this(x-1) + 1;
+}
+
+int ;throw(int x) {
+if (x == 0) return 42;
+return throw(x-1) + 1;
+}
+
+int ;true(int x) {
+if (x == 0) return 42;
+return true(x-1) + 1;
+}
+
+int ;try(int x) {
+if (x == 0) return 42;
+return ;try{}(x-1) + 1;
+}
+
+int ;var(int x) {
+if (x == 0) return 42;
+return ;var(;x-1;;) + 1;
+}
+
+int ;void(int x) {
+if (x == 0) return 42;
+return ;void(;x-1;;) + 1;
+}
+
+int ;while(int x) {
+if (x == 0) return 42;
+return ;while(x-1) + 1;
+}
+
+int ;with(int x) {
+if (x == 0) return 42;
+return with(x-1) + 1;
+}
+
+
+int[StringToken] ;[SyntheticToken]assert[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] assert[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]break[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]break[KeywordToken];[SyntheticToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]case[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] case[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]catch[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] catch[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]class[KeywordToken]([BeginToken][SyntheticStringToken]{[SyntheticBeginToken]}[SyntheticToken]int[StringToken] x[StringToken];[SyntheticToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] class[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]const[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] const[KeywordToken][SyntheticStringToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]continue[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]continue[KeywordToken];[SyntheticToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]default[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] default[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]do[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]do[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+while[SyntheticKeywordToken]([SyntheticBeginToken][SyntheticStringToken])[SyntheticToken];[SyntheticToken]}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]else[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken]else[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]enum[KeywordToken]([BeginToken][SyntheticStringToken]{[SyntheticBeginToken]}[SyntheticToken]int[StringToken] x[StringToken];[SyntheticToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] enum[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]extends[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] extends[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]false[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] false[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]final[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]final[KeywordToken]([BeginToken][SyntheticStringToken];[SyntheticToken]x[StringToken]-[SimpleToken]1[StringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]finally[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] finally[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]for[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]for[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]if[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]if[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]in[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] in[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]is[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken]is[KeywordToken][SyntheticStringToken];[SyntheticToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]new[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] new[KeywordToken][SyntheticStringToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]null[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] null[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]rethrow[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] rethrow[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]return[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] return[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]super[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] super[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]switch[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]switch[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] {[SyntheticBeginToken]}[SyntheticToken][SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] this[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] this[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]throw[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] throw[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]true[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] true[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]try[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]try[KeywordToken]{[SyntheticBeginToken]}[SyntheticToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]var[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]var[KeywordToken]([BeginToken][SyntheticStringToken];[SyntheticToken]x[StringToken]-[SimpleToken]1[StringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]void[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]void[KeywordToken]([BeginToken][SyntheticStringToken];[SyntheticToken]x[StringToken]-[SimpleToken]1[StringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]while[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]while[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]with[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] with[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart.scanner.expect
new file mode 100644
index 0000000..896ca86
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_fields.dart.scanner.expect
@@ -0,0 +1,331 @@
+int assert(int x) {
+if (x == 0) return 42;
+return assert(x-1) + 1;
+}
+
+int break(int x) {
+if (x == 0) return 42;
+return break(x-1) + 1;
+}
+
+int case(int x) {
+if (x == 0) return 42;
+return case(x-1) + 1;
+}
+
+int catch(int x) {
+if (x == 0) return 42;
+return catch(x-1) + 1;
+}
+
+int class(int x) {
+if (x == 0) return 42;
+return class(x-1) + 1;
+}
+
+int const(int x) {
+if (x == 0) return 42;
+return const(x-1) + 1;
+}
+
+int continue(int x) {
+if (x == 0) return 42;
+return continue(x-1) + 1;
+}
+
+int default(int x) {
+if (x == 0) return 42;
+return default(x-1) + 1;
+}
+
+int do(int x) {
+if (x == 0) return 42;
+return do(x-1) + 1;
+}
+
+int else(int x) {
+if (x == 0) return 42;
+return else(x-1) + 1;
+}
+
+int enum(int x) {
+if (x == 0) return 42;
+return enum(x-1) + 1;
+}
+
+int extends(int x) {
+if (x == 0) return 42;
+return extends(x-1) + 1;
+}
+
+int false(int x) {
+if (x == 0) return 42;
+return false(x-1) + 1;
+}
+
+int final(int x) {
+if (x == 0) return 42;
+return final(x-1) + 1;
+}
+
+int finally(int x) {
+if (x == 0) return 42;
+return finally(x-1) + 1;
+}
+
+int for(int x) {
+if (x == 0) return 42;
+return for(x-1) + 1;
+}
+
+int if(int x) {
+if (x == 0) return 42;
+return if(x-1) + 1;
+}
+
+int in(int x) {
+if (x == 0) return 42;
+return in(x-1) + 1;
+}
+
+int is(int x) {
+if (x == 0) return 42;
+return is(x-1) + 1;
+}
+
+int new(int x) {
+if (x == 0) return 42;
+return new(x-1) + 1;
+}
+
+int null(int x) {
+if (x == 0) return 42;
+return null(x-1) + 1;
+}
+
+int rethrow(int x) {
+if (x == 0) return 42;
+return rethrow(x-1) + 1;
+}
+
+int return(int x) {
+if (x == 0) return 42;
+return return(x-1) + 1;
+}
+
+int super(int x) {
+if (x == 0) return 42;
+return super(x-1) + 1;
+}
+
+int switch(int x) {
+if (x == 0) return 42;
+return switch(x-1) + 1;
+}
+
+int this(int x) {
+if (x == 0) return 42;
+return this(x-1) + 1;
+}
+
+int throw(int x) {
+if (x == 0) return 42;
+return throw(x-1) + 1;
+}
+
+int true(int x) {
+if (x == 0) return 42;
+return true(x-1) + 1;
+}
+
+int try(int x) {
+if (x == 0) return 42;
+return try(x-1) + 1;
+}
+
+int var(int x) {
+if (x == 0) return 42;
+return var(x-1) + 1;
+}
+
+int void(int x) {
+if (x == 0) return 42;
+return void(x-1) + 1;
+}
+
+int while(int x) {
+if (x == 0) return 42;
+return while(x-1) + 1;
+}
+
+int with(int x) {
+if (x == 0) return 42;
+return with(x-1) + 1;
+}
+
+
+int[StringToken] assert[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] assert[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] break[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] break[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] case[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] case[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] catch[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] catch[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] class[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] class[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] const[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] const[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] continue[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] continue[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] default[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] default[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] do[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] do[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] else[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] else[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] enum[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] enum[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] extends[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] extends[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] false[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] false[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] final[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] final[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] finally[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] finally[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] for[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] for[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] if[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] if[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] in[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] in[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] is[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] is[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] new[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] new[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] null[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] null[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] rethrow[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] rethrow[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] return[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] return[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] super[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] super[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] switch[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] switch[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] this[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] this[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] throw[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] throw[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] true[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] true[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] try[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] try[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] var[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] var[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] void[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] void[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] while[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] while[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] with[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] with[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart
new file mode 100644
index 0000000..30bed69
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart
@@ -0,0 +1,164 @@
+int assert(int x) {
+ if (x == 0) return 42;
+ return assert(x-1) + 1;
+}
+
+int break(int x) {
+ if (x == 0) return 42;
+ return break(x-1) + 1;
+}
+
+int case(int x) {
+ if (x == 0) return 42;
+ return case(x-1) + 1;
+}
+
+int catch(int x) {
+ if (x == 0) return 42;
+ return catch(x-1) + 1;
+}
+
+int class(int x) {
+ if (x == 0) return 42;
+ return class(x-1) + 1;
+}
+
+int const(int x) {
+ if (x == 0) return 42;
+ return const(x-1) + 1;
+}
+
+int continue(int x) {
+ if (x == 0) return 42;
+ return continue(x-1) + 1;
+}
+
+int default(int x) {
+ if (x == 0) return 42;
+ return default(x-1) + 1;
+}
+
+int do(int x) {
+ if (x == 0) return 42;
+ return do(x-1) + 1;
+}
+
+int else(int x) {
+ if (x == 0) return 42;
+ return else(x-1) + 1;
+}
+
+int enum(int x) {
+ if (x == 0) return 42;
+ return enum(x-1) + 1;
+}
+
+int extends(int x) {
+ if (x == 0) return 42;
+ return extends(x-1) + 1;
+}
+
+int false(int x) {
+ if (x == 0) return 42;
+ return false(x-1) + 1;
+}
+
+int final(int x) {
+ if (x == 0) return 42;
+ return final(x-1) + 1;
+}
+
+int finally(int x) {
+ if (x == 0) return 42;
+ return finally(x-1) + 1;
+}
+
+int for(int x) {
+ if (x == 0) return 42;
+ return for(x-1) + 1;
+}
+
+int if(int x) {
+ if (x == 0) return 42;
+ return if(x-1) + 1;
+}
+
+int in(int x) {
+ if (x == 0) return 42;
+ return in(x-1) + 1;
+}
+
+int is(int x) {
+ if (x == 0) return 42;
+ return is(x-1) + 1;
+}
+
+int new(int x) {
+ if (x == 0) return 42;
+ return new(x-1) + 1;
+}
+
+int null(int x) {
+ if (x == 0) return 42;
+ return null(x-1) + 1;
+}
+
+int rethrow(int x) {
+ if (x == 0) return 42;
+ return rethrow(x-1) + 1;
+}
+
+int return(int x) {
+ if (x == 0) return 42;
+ return return(x-1) + 1;
+}
+
+int super(int x) {
+ if (x == 0) return 42;
+ return super(x-1) + 1;
+}
+
+int switch(int x) {
+ if (x == 0) return 42;
+ return switch(x-1) + 1;
+}
+
+int this(int x) {
+ if (x == 0) return 42;
+ return this(x-1) + 1;
+}
+
+int throw(int x) {
+ if (x == 0) return 42;
+ return throw(x-1) + 1;
+}
+
+int true(int x) {
+ if (x == 0) return 42;
+ return true(x-1) + 1;
+}
+
+int try(int x) {
+ if (x == 0) return 42;
+ return try(x-1) + 1;
+}
+
+int var(int x) {
+ if (x == 0) return 42;
+ return var(x-1) + 1;
+}
+
+int void(int x) {
+ if (x == 0) return 42;
+ return void(x-1) + 1;
+}
+
+int while(int x) {
+ if (x == 0) return 42;
+ return while(x-1) + 1;
+}
+
+int with(int x) {
+ if (x == 0) return 42;
+ return with(x-1) + 1;
+}
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart.expect
new file mode 100644
index 0000000..5d0f1b4
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart.expect
@@ -0,0 +1,3177 @@
+Problems reported:
+
+parser/error_recovery/reserved_words_top_level_methods:1:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int assert(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:1:1: Expected ';' after this.
+int assert(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:1:5: Expected an identifier, but got 'assert'.
+int assert(int x) {
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:3:10: `assert` can't be used as an expression.
+ return assert(x-1) + 1;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:6:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int break(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:6:1: Expected ';' after this.
+int break(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:6:5: Expected an identifier, but got 'break'.
+int break(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:8:10: Expected an identifier, but got 'break'.
+ return break(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:8:10: Expected ';' after this.
+ return break(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:8:10: A break statement can't be used outside of a loop or switch statement.
+ return break(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:8:10: Expected ';' after this.
+ return break(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:11:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int case(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:11:1: Expected ';' after this.
+int case(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:11:5: Expected an identifier, but got 'case'.
+int case(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:13:10: Expected an identifier, but got 'case'.
+ return case(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:16:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int catch(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:16:1: Expected ';' after this.
+int catch(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:16:5: Expected an identifier, but got 'catch'.
+int catch(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:18:10: Expected an identifier, but got 'catch'.
+ return catch(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:21:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int class(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:21:1: Expected ';' after this.
+int class(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:21:10: Expected an identifier, but got '('.
+int class(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:21:11: A class declaration must have a body, even if it is empty.
+int class(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:21:15: Expected ';' after this.
+int class(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:21:16: Expected a declaration, but got ')'.
+int class(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:21:18: Expected a declaration, but got '{'.
+int class(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:26:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int const(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:26:1: Expected ';' after this.
+int const(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:26:10: Expected an identifier, but got '('.
+int const(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:26:5: Can't have modifier 'const' here.
+int const(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:28:15: Expected an identifier, but got '('.
+ return const(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:31:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int continue(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:31:1: Expected ';' after this.
+int continue(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:31:5: Expected an identifier, but got 'continue'.
+int continue(int x) {
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:33:10: Expected an identifier, but got 'continue'.
+ return continue(x-1) + 1;
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:33:10: Expected ';' after this.
+ return continue(x-1) + 1;
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:33:10: A continue statement can't be used outside of a loop or switch statement.
+ return continue(x-1) + 1;
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:33:10: Expected ';' after this.
+ return continue(x-1) + 1;
+ ^^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:36:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int default(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:36:1: Expected ';' after this.
+int default(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:36:5: Expected an identifier, but got 'default'.
+int default(int x) {
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:38:10: Expected an identifier, but got 'default'.
+ return default(x-1) + 1;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:41:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int do(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:41:1: Expected ';' after this.
+int do(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:41:5: Expected an identifier, but got 'do'.
+int do(int x) {
+ ^^
+
+parser/error_recovery/reserved_words_top_level_methods:43:10: Expected an identifier, but got 'do'.
+ return do(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_top_level_methods:43:10: Expected ';' after this.
+ return do(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_top_level_methods:44:1: Expected 'while' before this.
+}
+^
+
+parser/error_recovery/reserved_words_top_level_methods:44:1: Expected to find '('.
+}
+^
+
+parser/error_recovery/reserved_words_top_level_methods:44:1: Expected an identifier, but got '}'.
+}
+^
+
+parser/error_recovery/reserved_words_top_level_methods:44:1: Expected ';' after this.
+}
+^
+
+parser/error_recovery/reserved_words_top_level_methods:46:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int else(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:46:1: Expected ';' after this.
+int else(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:46:5: Expected an identifier, but got 'else'.
+int else(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:48:10: Expected an identifier, but got 'else'.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:48:10: Expected ';' after this.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:48:10: Expected an identifier, but got 'else'.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:48:10: Expected ';' after this.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:48:10: Unexpected token ';'.
+ return else(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:51:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int enum(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:51:1: Expected ';' after this.
+int enum(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:51:9: Expected an identifier, but got '('.
+int enum(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:51:10: Expected a enum body, but got 'int'.
+int enum(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:51:14: Expected ';' after this.
+int enum(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:51:15: Expected a declaration, but got ')'.
+int enum(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:51:17: Expected a declaration, but got '{'.
+int enum(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:56:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int extends(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:56:1: Expected ';' after this.
+int extends(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:56:5: Expected an identifier, but got 'extends'.
+int extends(int x) {
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:58:10: Expected an identifier, but got 'extends'.
+ return extends(x-1) + 1;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:61:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int false(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:61:1: Expected ';' after this.
+int false(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:61:5: Expected an identifier, but got 'false'.
+int false(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:66:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int final(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:66:1: Expected ';' after this.
+int final(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:66:10: Expected an identifier, but got '('.
+int final(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:66:5: Can't have modifier 'final' here.
+int final(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:68:10: Expected an identifier, but got 'final'.
+ return final(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:68:10: Expected ';' after this.
+ return final(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:68:15: Expected an identifier, but got '('.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:68:16: Expected ';' after this.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:68:18: Expected ';' after this.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:68:19: Expected an identifier, but got ')'.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:68:19: Expected ';' after this.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:68:19: Unexpected token ';'.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:68:21: '+' is not a prefix operator.
+ return final(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:71:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int finally(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:71:1: Expected ';' after this.
+int finally(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:71:5: Expected an identifier, but got 'finally'.
+int finally(int x) {
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:73:10: Expected an identifier, but got 'finally'.
+ return finally(x-1) + 1;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:76:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int for(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:76:1: Expected ';' after this.
+int for(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:76:5: Expected an identifier, but got 'for'.
+int for(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:78:10: Expected an identifier, but got 'for'.
+ return for(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:78:10: Expected ';' after this.
+ return for(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:78:16: Expected ';' after this.
+ return for(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:78:17: Expected an identifier, but got ')'.
+ return for(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:78:17: Expected ';' after this.
+ return for(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:78:19: '+' is not a prefix operator.
+ return for(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:81:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int if(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:81:1: Expected ';' after this.
+int if(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:81:5: Expected an identifier, but got 'if'.
+int if(int x) {
+ ^^
+
+parser/error_recovery/reserved_words_top_level_methods:83:10: Expected an identifier, but got 'if'.
+ return if(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_top_level_methods:83:10: Expected ';' after this.
+ return if(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_top_level_methods:83:18: '+' is not a prefix operator.
+ return if(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:86:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int in(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:86:1: Expected ';' after this.
+int in(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:86:5: Expected an identifier, but got 'in'.
+int in(int x) {
+ ^^
+
+parser/error_recovery/reserved_words_top_level_methods:88:10: Expected an identifier, but got 'in'.
+ return in(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_top_level_methods:91:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int is(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:91:1: Expected ';' after this.
+int is(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:91:5: Expected an identifier, but got 'is'.
+int is(int x) {
+ ^^
+
+parser/error_recovery/reserved_words_top_level_methods:93:10: Expected an identifier, but got 'is'.
+ return is(x-1) + 1;
+ ^^
+
+parser/error_recovery/reserved_words_top_level_methods:93:12: Expected a type, but got '('.
+ return is(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:93:12: Expected ';' after this.
+ return is(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:96:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int new(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:96:1: Expected ';' after this.
+int new(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:96:5: Expected an identifier, but got 'new'.
+int new(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:98:13: Expected an identifier, but got '('.
+ return new(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:101:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int null(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:101:1: Expected ';' after this.
+int null(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:101:5: Expected an identifier, but got 'null'.
+int null(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:106:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int rethrow(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:106:1: Expected ';' after this.
+int rethrow(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:106:5: Expected an identifier, but got 'rethrow'.
+int rethrow(int x) {
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:108:10: Expected an identifier, but got 'rethrow'.
+ return rethrow(x-1) + 1;
+ ^^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:111:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int return(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:111:1: Expected ';' after this.
+int return(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:111:5: Expected an identifier, but got 'return'.
+int return(int x) {
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:113:10: Unexpected token 'return'.
+ return return(x-1) + 1;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:116:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int super(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:116:1: Expected ';' after this.
+int super(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:116:5: Expected an identifier, but got 'super'.
+int super(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:121:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int switch(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:121:1: Expected ';' after this.
+int switch(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:121:5: Expected an identifier, but got 'switch'.
+int switch(int x) {
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:123:10: Expected an identifier, but got 'switch'.
+ return switch(x-1) + 1;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:123:10: Expected ';' after this.
+ return switch(x-1) + 1;
+ ^^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:123:20: A switch statement must have a body, even if it is empty.
+ return switch(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:123:22: '+' is not a prefix operator.
+ return switch(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:126:5: Expected an identifier, but got 'this'.
+int this(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:131:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int throw(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:131:1: Expected ';' after this.
+int throw(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:131:5: Expected an identifier, but got 'throw'.
+int throw(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:136:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int true(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:136:1: Expected ';' after this.
+int true(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:136:5: Expected an identifier, but got 'true'.
+int true(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:141:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int try(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:141:1: Expected ';' after this.
+int try(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:141:5: Expected an identifier, but got 'try'.
+int try(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:143:10: Expected an identifier, but got 'try'.
+ return try(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:143:10: Expected ';' after this.
+ return try(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:143:10: A try statement must have a body, even if it is empty.
+ return try(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:143:10: A try block must be followed by an 'on', 'catch', or 'finally' clause.
+ return try(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:146:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int var(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:146:1: Expected ';' after this.
+int var(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:146:8: Expected an identifier, but got '('.
+int var(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:146:5: The return type can't be 'var'.
+int var(int x) {
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:148:10: Expected an identifier, but got 'var'.
+ return var(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:148:10: Expected ';' after this.
+ return var(x-1) + 1;
+ ^^^
+
+parser/error_recovery/reserved_words_top_level_methods:148:13: Expected an identifier, but got '('.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:148:14: Expected ';' after this.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:148:16: Expected ';' after this.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:148:17: Expected an identifier, but got ')'.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:148:17: Expected ';' after this.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:148:17: Unexpected token ';'.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:148:19: '+' is not a prefix operator.
+ return var(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:151:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int void(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:151:1: Expected ';' after this.
+int void(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:151:9: Expected an identifier, but got '('.
+int void(int x) {
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:153:10: Expected an identifier, but got 'void'.
+ return void(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:153:10: Expected ';' after this.
+ return void(x-1) + 1;
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:153:14: Expected an identifier, but got '('.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:153:15: Expected ';' after this.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:153:17: Expected ';' after this.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:153:18: Expected an identifier, but got ')'.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:153:18: Expected ';' after this.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:153:18: Unexpected token ';'.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:153:20: '+' is not a prefix operator.
+ return void(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:156:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int while(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:156:1: Expected ';' after this.
+int while(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:156:5: Expected an identifier, but got 'while'.
+int while(int x) {
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:158:10: Expected an identifier, but got 'while'.
+ return while(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:158:10: Expected ';' after this.
+ return while(x-1) + 1;
+ ^^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:158:21: '+' is not a prefix operator.
+ return while(x-1) + 1;
+ ^
+
+parser/error_recovery/reserved_words_top_level_methods:161:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+int with(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:161:1: Expected ';' after this.
+int with(int x) {
+^^^
+
+parser/error_recovery/reserved_words_top_level_methods:161:5: Expected an identifier, but got 'with'.
+int with(int x) {
+ ^^^^
+
+parser/error_recovery/reserved_words_top_level_methods:163:10: Expected an identifier, but got 'with'.
+ return with(x-1) + 1;
+ ^^^^
+
+beginCompilationUnit(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType()
+ handleIdentifier(int, topLevelVariableDeclaration)
+ handleNoFieldInitializer(assert)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(assert)
+beginMetadataStar(assert)
+endMetadataStar(0)
+beginTopLevelMember(assert)
+ beginTopLevelMethod(;, null)
+ handleNoType(;)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'assert'., null, {token: assert}], assert, assert)
+ handleIdentifier(assert, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ beginAssert(assert, Assert.Expression)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ handleRecoverableError(AssertAsExpression, assert, assert)
+ endAssert(assert, Assert.Expression, (, null, +)
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(assert, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+ handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ handleNoType(})
+ handleIdentifier(int, topLevelVariableDeclaration)
+ handleNoFieldInitializer(break)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(break)
+beginMetadataStar(break)
+endMetadataStar(0)
+beginTopLevelMember(break)
+beginTopLevelMethod(;, null)
+ handleNoType(;)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+ handleIdentifier(break, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+ handleIdentifier(, expression)
+ handleNoTypeArguments(break)
+ handleNoArguments(break)
+ handleSend(, break)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], break, break)
+ endReturnStatement(true, return, ;)
+ handleRecoverableError(BreakOutsideOfLoop, break, break)
+ handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], break, break)
+ handleBreakStatement(false, break, ;)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ handleParenthesizedExpression(()
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ handleExpressionStatement(;)
+ endBlockFunctionBody(4, {, })
+endTopLevelMethod(break, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(case)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(case)
+beginMetadataStar(case)
+endMetadataStar(0)
+beginTopLevelMember(case)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+handleIdentifier(case, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+ handleIdentifier(case, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(case, +)
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+ endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(case, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(catch)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(catch)
+beginMetadataStar(catch)
+endMetadataStar(0)
+beginTopLevelMember(catch)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+handleIdentifier(catch, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+ handleIdentifier(catch, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(catch, +)
+ beginBinaryExpression(+)
+ handleLiteralInt(1)
+ endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(catch, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(class)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(class)
+beginMetadataStar(class)
+endMetadataStar(0)
+beginClassOrNamedMixinApplicationPrelude(class)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, classOrMixinDeclaration)
+handleNoTypeVariables(int)
+beginClassDeclaration(class, null, )
+handleNoType()
+handleClassExtends(null)
+handleClassNoWithClause()
+handleClassOrMixinImplements(null, 0)
+handleClassHeader(class, class, null)
+handleNoType()
+handleClassExtends(null)
+handleClassNoWithClause()
+handleClassOrMixinImplements(null, 0)
+handleRecoverClassHeader()
+handleRecoverableError(Message[ExpectedClassOrMixinBody, A class declaration must have a body, even if it is empty., Try adding an empty body., {string: class declaration}], int, int)
+beginClassOrMixinBody(DeclarationKind.Class, {)
+endClassOrMixinBody(DeclarationKind.Class, 0, {, })
+endClassDeclaration(class, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, topLevelVariableDeclaration)
+handleNoFieldInitializer())
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration())
+beginMetadataStar())
+endMetadataStar(0)
+beginTopLevelMember())
+handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ')'., null, {token: )}], ), ))
+handleInvalidTopLevelDeclaration())
+endTopLevelDeclaration({)
+beginMetadataStar({)
+endMetadataStar(0)
+beginTopLevelMember({)
+handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {token: {}], {, {)
+beginBlock({, BlockKind(invalid))
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleIdentifier(class, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(class, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlock(2, {, }, BlockKind(invalid))
+handleInvalidTopLevelBlock({)
+handleInvalidTopLevelDeclaration(})
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(const)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(const)
+beginMetadataStar(const)
+endMetadataStar(0)
+beginTopLevelMember(const)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'const' here., Try removing 'const'., {token: const}], const, const)
+beginTopLevelMethod(;, null)
+handleNoType(const)
+handleIdentifier(, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+beginConstExpression(const)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, constructorReference)
+beginConstructorReference()
+handleNoTypeArguments(()
+handleNoConstructorReferenceContinuationAfterTypeArguments(()
+endConstructorReference(, null, ()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+endConstExpression(const)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(const, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(continue)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(continue)
+beginMetadataStar(continue)
+endMetadataStar(0)
+beginTopLevelMember(continue)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+handleIdentifier(continue, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+handleIdentifier(, expression)
+handleNoTypeArguments(continue)
+handleNoArguments(continue)
+handleSend(, continue)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], continue, continue)
+endReturnStatement(true, return, ;)
+handleRecoverableError(ContinueOutsideOfLoop, continue, continue)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], continue, continue)
+handleContinueStatement(false, continue, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(4, {, })
+endTopLevelMethod(continue, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(default)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(default)
+beginMetadataStar(default)
+endMetadataStar(0)
+beginTopLevelMember(default)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+handleIdentifier(default, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+handleIdentifier(default, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(default, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(default, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(do)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(do)
+beginMetadataStar(do)
+endMetadataStar(0)
+beginTopLevelMember(do)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+handleIdentifier(do, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+handleIdentifier(, expression)
+handleNoTypeArguments(do)
+handleNoArguments(do)
+handleSend(, do)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], do, do)
+endReturnStatement(true, return, ;)
+beginDoWhileStatement(do)
+beginDoWhileStatementBody(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endDoWhileStatementBody(;)
+handleRecoverableError(Message[ExpectedButGot, Expected 'while' before this., null, {string: while}], }, })
+handleRecoverableError(Message[ExpectedToken, Expected to find '('., null, {string: (}], }, })
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., null, {token: }}], }, })
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleParenthesizedCondition(()
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], }, })
+endDoWhileStatement(do, while, ;)
+endBlockFunctionBody(3, {, })
+endTopLevelMethod(do, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(else)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(else)
+beginMetadataStar(else)
+endMetadataStar(0)
+beginTopLevelMember(else)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+handleIdentifier(else, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+handleIdentifier(, expression)
+handleNoTypeArguments(else)
+handleNoArguments(else)
+handleSend(, else)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
+endReturnStatement(true, return, ;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+handleIdentifier(, expression)
+handleNoTypeArguments(else)
+handleNoArguments(else)
+handleSend(, else)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
+handleExpressionStatement(;)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], else, else)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(4, {, })
+endTopLevelMethod(else, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(enum)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(enum)
+beginMetadataStar(enum)
+endMetadataStar(0)
+beginEnum(enum)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, enumDeclaration)
+handleRecoverableError(Message[ExpectedEnumBody, Expected a enum body, but got 'int'., An enum definition must have a body with at least one constant name., {token: int}], int, int)
+endEnum(enum, {, 0)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, topLevelVariableDeclaration)
+handleNoFieldInitializer())
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration())
+beginMetadataStar())
+endMetadataStar(0)
+beginTopLevelMember())
+handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ')'., null, {token: )}], ), ))
+handleInvalidTopLevelDeclaration())
+endTopLevelDeclaration({)
+beginMetadataStar({)
+endMetadataStar(0)
+beginTopLevelMember({)
+handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {token: {}], {, {)
+beginBlock({, BlockKind(invalid))
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleIdentifier(enum, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(enum, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlock(2, {, }, BlockKind(invalid))
+handleInvalidTopLevelBlock({)
+handleInvalidTopLevelDeclaration(})
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(extends)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(extends)
+beginMetadataStar(extends)
+endMetadataStar(0)
+beginTopLevelMember(extends)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+handleIdentifier(extends, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+handleIdentifier(extends, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(extends, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(extends, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(false)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(false)
+beginMetadataStar(false)
+endMetadataStar(0)
+beginTopLevelMember(false)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'false'., null, {token: false}], false, false)
+handleIdentifier(false, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleLiteralBool(false)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend((, ))
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(false, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(final)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(final)
+beginMetadataStar(final)
+endMetadataStar(0)
+beginTopLevelMember(final)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'final' here., Try removing 'final'., {token: final}], final, final)
+beginTopLevelMethod(;, null)
+handleNoType(final)
+handleIdentifier(, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
+handleIdentifier(, expression)
+handleNoTypeArguments(final)
+handleNoArguments(final)
+handleSend(, final)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], final, final)
+endReturnStatement(true, return, ;)
+beginMetadataStar(final)
+endMetadataStar(0)
+handleNoType(final)
+beginVariablesDeclaration((, null, final)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, localVariableDeclaration)
+beginInitializedIdentifier()
+handleNoVariableInitializer(x)
+endInitializedIdentifier()
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+endVariablesDeclaration(1, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+handleExpressionStatement(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+handleExpressionStatement(;)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(6, {, })
+endTopLevelMethod(final, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(finally)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(finally)
+beginMetadataStar(finally)
+endMetadataStar(0)
+beginTopLevelMember(finally)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+handleIdentifier(finally, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+handleIdentifier(finally, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(finally, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(finally, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(for)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(for)
+beginMetadataStar(for)
+endMetadataStar(0)
+beginTopLevelMember(for)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+handleIdentifier(for, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+handleIdentifier(, expression)
+handleNoTypeArguments(for)
+handleNoArguments(for)
+handleSend(, for)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], for, for)
+endReturnStatement(true, return, ;)
+beginForStatement(for)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleForInitializerExpressionStatement(1, false)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+handleExpressionStatement(;)
+handleForLoopParts(for, (, ;, 0)
+beginForStatementBody(+)
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endForStatementBody(})
+endForStatement(})
+endBlockFunctionBody(3, {, })
+endTopLevelMethod(for, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(if)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(if)
+beginMetadataStar(if)
+endMetadataStar(0)
+beginTopLevelMember(if)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+handleIdentifier(if, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+handleIdentifier(, expression)
+handleNoTypeArguments(if)
+handleNoArguments(if)
+handleSend(, if)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], if, if)
+endReturnStatement(true, return, ;)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedCondition(()
+beginThenStatement(+)
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endThenStatement(;)
+endIfStatement(if, null)
+endBlockFunctionBody(3, {, })
+endTopLevelMethod(if, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(in)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(in)
+beginMetadataStar(in)
+endMetadataStar(0)
+beginTopLevelMember(in)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+handleIdentifier(in, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+handleIdentifier(in, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(in, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(in, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(is)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(is)
+beginMetadataStar(is)
+endMetadataStar(0)
+beginTopLevelMember(is)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+handleIdentifier(is, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+handleIdentifier(, expression)
+handleNoTypeArguments(is)
+handleNoArguments(is)
+handleSend(, is)
+beginIsOperatorType(is)
+handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {token: (}], (, ()
+handleIdentifier(, typeReference)
+handleNoTypeArguments(()
+handleType(, null)
+endIsOperatorType(is)
+handleIsOperator(is, null)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], (, ()
+endReturnStatement(true, return, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(3, {, })
+endTopLevelMethod(is, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(new)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(new)
+beginMetadataStar(new)
+endMetadataStar(0)
+beginTopLevelMember(new)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'new'., null, {token: new}], new, new)
+handleIdentifier(new, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+beginNewExpression(new)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, constructorReference)
+beginConstructorReference()
+handleNoTypeArguments(()
+handleNoConstructorReferenceContinuationAfterTypeArguments(()
+endConstructorReference(, null, ()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+endNewExpression(new)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(new, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(null)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(null)
+beginMetadataStar(null)
+endMetadataStar(0)
+beginTopLevelMember(null)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'null'., null, {token: null}], null, null)
+handleIdentifier(null, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleLiteralNull(null)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend((, ))
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(null, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(rethrow)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(rethrow)
+beginMetadataStar(rethrow)
+endMetadataStar(0)
+beginTopLevelMember(rethrow)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+handleIdentifier(rethrow, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+handleIdentifier(rethrow, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(rethrow, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(rethrow, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(return)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(return)
+beginMetadataStar(return)
+endMetadataStar(0)
+beginTopLevelMember(return)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'return'., null, {token: return}], return, return)
+handleIdentifier(return, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {token: return}], return, return)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(return, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(super)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(super)
+beginMetadataStar(super)
+endMetadataStar(0)
+beginTopLevelMember(super)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'super'., null, {token: super}], super, super)
+handleIdentifier(super, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleSuperExpression(super, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(super, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(super, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(switch)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(switch)
+beginMetadataStar(switch)
+endMetadataStar(0)
+beginTopLevelMember(switch)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+handleIdentifier(switch, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+handleIdentifier(, expression)
+handleNoTypeArguments(switch)
+handleNoArguments(switch)
+handleSend(, switch)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], switch, switch)
+endReturnStatement(true, return, ;)
+beginSwitchStatement(switch)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedCondition(()
+handleRecoverableError(Message[ExpectedClassOrMixinBody, A switch statement must have a body, even if it is empty., Try adding an empty body., {string: switch statement}], ), ))
+beginSwitchBlock({)
+endSwitchBlock(0, {, })
+endSwitchStatement(switch, })
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(4, {, })
+endTopLevelMethod(switch, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+beginTopLevelMethod(}, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(this)
+handleType(int, null)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
+handleIdentifier(this, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleThisExpression(this, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(this, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(int, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(throw)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(throw)
+beginMetadataStar(throw)
+endMetadataStar(0)
+beginTopLevelMember(throw)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
+handleIdentifier(throw, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleThrowExpression(throw, ;)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(throw, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(true)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(true)
+beginMetadataStar(true)
+endMetadataStar(0)
+beginTopLevelMember(true)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
+handleIdentifier(true, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleLiteralBool(true)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend((, ))
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(true, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(try)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(try)
+beginMetadataStar(try)
+endMetadataStar(0)
+beginTopLevelMember(try)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+handleIdentifier(try, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+handleIdentifier(, expression)
+handleNoTypeArguments(try)
+handleNoArguments(try)
+handleSend(, try)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], try, try)
+endReturnStatement(true, return, ;)
+beginTryStatement(try)
+handleRecoverableError(Message[ExpectedClassOrMixinBody, A try statement must have a body, even if it is empty., Try adding an empty body., {string: try statement}], try, try)
+beginBlock({, BlockKind(try statement))
+endBlock(0, {, }, BlockKind(try statement))
+handleRecoverableError(OnlyTry, try, try)
+endTryStatement(0, try, null)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedExpression(()
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(4, {, })
+endTopLevelMethod(try, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(var)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(var)
+beginMetadataStar(var)
+endMetadataStar(0)
+beginTopLevelMember(var)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleRecoverableError(VarReturnType, var, var)
+beginTopLevelMethod(;, null)
+handleNoType(var)
+handleIdentifier(, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
+handleIdentifier(, expression)
+handleNoTypeArguments(var)
+handleNoArguments(var)
+handleSend(, var)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], var, var)
+endReturnStatement(true, return, ;)
+beginMetadataStar(var)
+endMetadataStar(0)
+handleNoType(var)
+beginVariablesDeclaration((, null, var)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, localVariableDeclaration)
+beginInitializedIdentifier()
+handleNoVariableInitializer(x)
+endInitializedIdentifier()
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+endVariablesDeclaration(1, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+handleExpressionStatement(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+handleExpressionStatement(;)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(6, {, })
+endTopLevelMethod(var, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(void)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(void)
+beginMetadataStar(void)
+endMetadataStar(0)
+beginTopLevelMember(void)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+beginTopLevelMethod(;, null)
+handleVoidKeyword(void)
+handleIdentifier(, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
+handleIdentifier(, expression)
+handleNoTypeArguments(void)
+handleNoArguments(void)
+handleSend(, void)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], void, void)
+endReturnStatement(true, return, ;)
+beginMetadataStar(void)
+endMetadataStar(0)
+handleVoidKeyword(void)
+beginVariablesDeclaration((, null, null)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+handleIdentifier(, localVariableDeclaration)
+beginInitializedIdentifier()
+handleNoVariableInitializer(x)
+endInitializedIdentifier()
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+endVariablesDeclaration(1, ;)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+handleExpressionStatement(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+handleIdentifier(, expression)
+handleNoTypeArguments())
+handleNoArguments())
+handleSend(, ))
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+handleExpressionStatement(;)
+handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endBlockFunctionBody(6, {, })
+endTopLevelMethod(void, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(while)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(while)
+beginMetadataStar(while)
+endMetadataStar(0)
+beginTopLevelMember(while)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+handleIdentifier(while, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+handleIdentifier(, expression)
+handleNoTypeArguments(while)
+handleNoArguments(while)
+handleSend(, while)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], while, while)
+endReturnStatement(true, return, ;)
+beginWhileStatement(while)
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+handleParenthesizedCondition(()
+beginWhileStatementBody(+)
+handleRecoverableError(UnsupportedPrefixPlus, +, +)
+handleIdentifier(, expression)
+handleNoTypeArguments(+)
+handleNoArguments(+)
+handleSend(, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+handleExpressionStatement(;)
+endWhileStatementBody(})
+endWhileStatement(while, })
+endBlockFunctionBody(3, {, })
+endTopLevelMethod(while, null, })
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleRecoverableError(MissingConstFinalVarOrType, int, int)
+handleNoType(})
+handleIdentifier(int, topLevelVariableDeclaration)
+handleNoFieldInitializer(with)
+handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(with)
+beginMetadataStar(with)
+endMetadataStar(0)
+beginTopLevelMember(with)
+beginTopLevelMethod(;, null)
+handleNoType(;)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+handleIdentifier(with, topLevelFunctionDeclaration)
+handleNoTypeVariables(()
+beginFormalParameters((, MemberKind.TopLevelMethod)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(x)
+handleType(int, null)
+handleIdentifier(x, formalParameterDeclaration)
+handleFormalParameterWithoutValue())
+endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+handleAsyncModifier(null, null)
+beginBlockFunctionBody({)
+beginIfStatement(if)
+handleIdentifier(x, expression)
+handleNoTypeArguments(==)
+handleNoArguments(==)
+handleSend(x, ==)
+beginBinaryExpression(==)
+handleLiteralInt(0)
+endBinaryExpression(==)
+handleParenthesizedCondition(()
+beginThenStatement(return)
+beginReturnStatement(return)
+handleLiteralInt(42)
+endReturnStatement(true, return, ;)
+endThenStatement(;)
+endIfStatement(if, null)
+beginReturnStatement(return)
+handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+handleIdentifier(with, expression)
+handleNoTypeArguments(()
+beginArguments(()
+handleIdentifier(x, expression)
+handleNoTypeArguments(-)
+handleNoArguments(-)
+handleSend(x, -)
+beginBinaryExpression(-)
+handleLiteralInt(1)
+endBinaryExpression(-)
+endArguments(1, (, ))
+handleSend(with, +)
+beginBinaryExpression(+)
+handleLiteralInt(1)
+endBinaryExpression(+)
+endReturnStatement(true, return, ;)
+endBlockFunctionBody(2, {, })
+endTopLevelMethod(with, null, })
+endTopLevelDeclaration()
+endCompilationUnit(71, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart.intertwined.expect
new file mode 100644
index 0000000..90e26b1
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart.intertwined.expect
@@ -0,0 +1,5902 @@
+parseUnit(int)
+ skipErrorTokens(int)
+ listener: beginCompilationUnit(int)
+ syntheticPreviousToken(int)
+ parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+ parseMetadataStar()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl()
+ listener: beginTopLevelMember(int)
+ parseFields(, null, null, null, null, null, , Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType()
+ ensureIdentifier(, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(assert)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(assert)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(assert)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(assert)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, assert)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'assert'., null, {token: assert}], assert, assert)
+ listener: handleIdentifier(assert, topLevelFunctionDeclaration)
+ parseMethodTypeVar(assert)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(assert, assert, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(assert, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseAssert(return, Assert.Expression)
+ listener: beginAssert(assert, Assert.Expression)
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ reportRecoverableError(assert, AssertAsExpression)
+ listener: handleRecoverableError(AssertAsExpression, assert, assert)
+ listener: endAssert(assert, Assert.Expression, (, null, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(assert, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(break)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(break)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(break)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(break)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, break)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+ listener: handleIdentifier(break, topLevelFunctionDeclaration)
+ parseMethodTypeVar(break)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(break, break, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(break, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(break)
+ parseArgumentsOpt()
+ listener: handleNoArguments(break)
+ listener: handleSend(, break)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], break, break)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, break)
+ parseStatement(;)
+ parseStatementX(;)
+ parseBreakStatement(;)
+ isBreakAllowed()
+ reportRecoverableError(break, BreakOutsideOfLoop)
+ listener: handleRecoverableError(BreakOutsideOfLoop, break, break)
+ ensureSemicolon(break)
+ reportRecoverableError(break, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], break, break)
+ rewriter()
+ listener: handleBreakStatement(false, break, ;)
+ notEofOrValue(}, ()
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(;)
+ parseParenthesizedExpression(;)
+ parseExpressionInParenthesis(;)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endTopLevelMethod(break, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(case)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(case)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(case)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(case)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, case)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+ listener: handleIdentifier(case, topLevelFunctionDeclaration)
+ parseMethodTypeVar(case)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(case, case, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(case, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+ listener: handleIdentifier(case, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(case)
+ parseArguments(case)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(case, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(case, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(catch)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(catch)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(catch)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(catch)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, catch)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+ listener: handleIdentifier(catch, topLevelFunctionDeclaration)
+ parseMethodTypeVar(catch)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(catch, catch, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(catch, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+ listener: handleIdentifier(catch, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(catch)
+ parseArguments(catch)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(catch, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(catch, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(class)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(class)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(;, class, Instance of 'DirectiveContext')
+ parseClassDeclarationModifiers(;, class)
+ parseClassOrNamedMixinApplication(null, class)
+ listener: beginClassOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(int)
+ listener: beginClassDeclaration(class, null, )
+ parseClass(, class, class, )
+ parseClassHeaderOpt(, class, class)
+ parseClassExtendsOpt()
+ listener: handleNoType()
+ listener: handleClassExtends(null)
+ parseWithClauseOpt()
+ listener: handleClassNoWithClause()
+ parseClassOrMixinImplementsOpt()
+ listener: handleClassOrMixinImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassHeaderRecovery(, class, class)
+ parseClassHeaderOpt(, class, class)
+ parseClassExtendsOpt()
+ parseWithClauseOpt()
+ parseClassOrMixinImplementsOpt()
+ skipUnexpectedTokenOpt(, [extends, with, implements, {])
+ parseClassExtendsOpt()
+ listener: handleNoType()
+ listener: handleClassExtends(null)
+ parseWithClauseOpt()
+ listener: handleClassNoWithClause()
+ parseClassOrMixinImplementsOpt()
+ listener: handleClassOrMixinImplements(null, 0)
+ listener: handleRecoverClassHeader()
+ ensureBlock(, null, class declaration)
+ reportRecoverableError(, Message[ExpectedClassOrMixinBody, A class declaration must have a body, even if it is empty., Try adding an empty body., {string: class declaration}])
+ listener: handleRecoverableError(Message[ExpectedClassOrMixinBody, A class declaration must have a body, even if it is empty., Try adding an empty body., {string: class declaration}], int, int)
+ insertBlock()
+ rewriter()
+ rewriter()
+ parseClassOrMixinOrExtensionBody(, DeclarationKind.Class, )
+ listener: beginClassOrMixinBody(DeclarationKind.Class, {)
+ notEofOrValue(}, })
+ listener: endClassOrMixinBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'SimpleType', x, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(x, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(x, x, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer())
+ ensureSemicolon(x)
+ reportRecoverableError(x, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration())
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar())
+ listener: endMetadataStar(0)
+ listener: beginTopLevelMember())
+ parseInvalidTopLevelDeclaration(;)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ')'., null, {token: )}], ), ))
+ listener: handleInvalidTopLevelDeclaration())
+ listener: endTopLevelDeclaration({)
+ parseTopLevelDeclarationImpl(), Instance of 'DirectiveContext')
+ parseMetadataStar())
+ listener: beginMetadataStar({)
+ listener: endMetadataStar(0)
+ listener: beginTopLevelMember({)
+ parseInvalidTopLevelDeclaration())
+ reportRecoverableErrorWithToken({, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {token: {}], {, {)
+ parseInvalidBlock())
+ parseBlock(), BlockKind(invalid))
+ ensureBlock(), null, null)
+ listener: beginBlock({, BlockKind(invalid))
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
+ listener: handleIdentifier(class, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(class)
+ parseArguments(class)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(class, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlock(2, {, }, BlockKind(invalid))
+ listener: handleInvalidTopLevelBlock({)
+ listener: handleInvalidTopLevelDeclaration(})
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(const)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(const)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(const)
+ insertSyntheticIdentifier(const, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'const' here., Try removing 'const'., {token: const}], const, const)
+ parseTopLevelMethod(;, null, const, Instance of 'NoType', null, )
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(const)
+ ensureIdentifier(const, topLevelFunctionDeclaration)
+ listener: handleIdentifier(, topLevelFunctionDeclaration)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, , false, MemberKind.TopLevelMethod)
+ parseFormalParameters(, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseConstExpression(return)
+ listener: beginConstExpression(const)
+ parseConstructorReference(const, null)
+ ensureIdentifier(const, constructorReference)
+ insertSyntheticIdentifier(const, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, constructorReference)
+ listener: beginConstructorReference()
+ parseQualifiedRestOpt(, constructorReferenceContinuation)
+ listener: handleNoTypeArguments(()
+ listener: handleNoConstructorReferenceContinuationAfterTypeArguments(()
+ listener: endConstructorReference(, null, ()
+ parseConstructorInvocationArguments()
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: endConstExpression(const)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(const, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(continue)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(continue)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(continue)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(continue)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, continue)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+ listener: handleIdentifier(continue, topLevelFunctionDeclaration)
+ parseMethodTypeVar(continue)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(continue, continue, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(continue, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(continue)
+ parseArgumentsOpt()
+ listener: handleNoArguments(continue)
+ listener: handleSend(, continue)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], continue, continue)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, continue)
+ parseStatement(;)
+ parseStatementX(;)
+ parseContinueStatement(;)
+ isContinueAllowed()
+ reportRecoverableError(continue, ContinueOutsideOfLoop)
+ listener: handleRecoverableError(ContinueOutsideOfLoop, continue, continue)
+ ensureSemicolon(continue)
+ reportRecoverableError(continue, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], continue, continue)
+ rewriter()
+ listener: handleContinueStatement(false, continue, ;)
+ notEofOrValue(}, ()
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(;)
+ parseParenthesizedExpression(;)
+ parseExpressionInParenthesis(;)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endTopLevelMethod(continue, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(default)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(default)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(default)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(default)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, default)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+ listener: handleIdentifier(default, topLevelFunctionDeclaration)
+ parseMethodTypeVar(default)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(default, default, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(default, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+ listener: handleIdentifier(default, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(default)
+ parseArguments(default)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(default, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(default, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(do)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(do)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(do)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(do)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, do)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+ listener: handleIdentifier(do, topLevelFunctionDeclaration)
+ parseMethodTypeVar(do)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(do, do, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(do, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(do)
+ parseArgumentsOpt()
+ listener: handleNoArguments(do)
+ listener: handleSend(, do)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], do, do)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, do)
+ parseStatement(;)
+ parseStatementX(;)
+ parseDoWhileStatement(;)
+ listener: beginDoWhileStatement(do)
+ listener: beginDoWhileStatementBody(()
+ parseStatement(do)
+ parseStatementX(do)
+ parseExpressionStatementOrDeclaration(do, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(do, do, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(do)
+ parseExpression(do)
+ parsePrecedenceExpression(do, 1, true)
+ parseUnaryExpression(do, true)
+ parsePrimary(do, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(do)
+ parseParenthesizedExpression(do)
+ parseExpressionInParenthesis(do)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ listener: endDoWhileStatementBody(;)
+ reportRecoverableError(}, Message[ExpectedButGot, Expected 'while' before this., null, {string: while}])
+ listener: handleRecoverableError(Message[ExpectedButGot, Expected 'while' before this., null, {string: while}], }, })
+ rewriter()
+ ensureParenthesizedCondition(while)
+ reportRecoverableError(}, Message[ExpectedToken, Expected to find '('., null, {string: (}])
+ listener: handleRecoverableError(Message[ExpectedToken, Expected to find '('., null, {string: (}], }, })
+ rewriter()
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., null, {token: }}], }, })
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureCloseParen(, ()
+ listener: handleParenthesizedCondition(()
+ ensureSemicolon())
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], }, })
+ rewriter()
+ listener: endDoWhileStatement(do, while, ;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endTopLevelMethod(do, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(else)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(else)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(else)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(else)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, else)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+ listener: handleIdentifier(else, topLevelFunctionDeclaration)
+ parseMethodTypeVar(else)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(else, else, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(else, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(else)
+ parseArgumentsOpt()
+ listener: handleNoArguments(else)
+ listener: handleSend(, else)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, else)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(else)
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ inPlainSync()
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(else)
+ parseArgumentsOpt()
+ listener: handleNoArguments(else)
+ listener: handleSend(, else)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
+ rewriter()
+ listener: handleExpressionStatement(;)
+ reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], else, else)
+ notEofOrValue(}, ()
+ parseStatement(else)
+ parseStatementX(else)
+ parseExpressionStatementOrDeclaration(else, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(else, else, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(else)
+ parseExpression(else)
+ parsePrecedenceExpression(else, 1, true)
+ parseUnaryExpression(else, true)
+ parsePrimary(else, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(else)
+ parseParenthesizedExpression(else)
+ parseExpressionInParenthesis(else)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endTopLevelMethod(else, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(enum)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(enum)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(;, enum, Instance of 'DirectiveContext')
+ parseTopLevelKeywordModifiers(;, enum)
+ parseEnum(enum)
+ listener: beginEnum(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, enumDeclaration)
+ ensureBlock(, Instance of 'Template<(Token) => Message>', null)
+ reportRecoverableError(int, Message[ExpectedEnumBody, Expected a enum body, but got 'int'., An enum definition must have a body with at least one constant name., {token: int}])
+ listener: handleRecoverableError(Message[ExpectedEnumBody, Expected a enum body, but got 'int'., An enum definition must have a body with at least one constant name., {token: int}], int, int)
+ insertBlock()
+ rewriter()
+ rewriter()
+ listener: endEnum(enum, {, 0)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'SimpleType', x, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(x, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(x, x, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer())
+ ensureSemicolon(x)
+ reportRecoverableError(x, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration())
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar())
+ listener: endMetadataStar(0)
+ listener: beginTopLevelMember())
+ parseInvalidTopLevelDeclaration(;)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ')'., null, {token: )}], ), ))
+ listener: handleInvalidTopLevelDeclaration())
+ listener: endTopLevelDeclaration({)
+ parseTopLevelDeclarationImpl(), Instance of 'DirectiveContext')
+ parseMetadataStar())
+ listener: beginMetadataStar({)
+ listener: endMetadataStar(0)
+ listener: beginTopLevelMember({)
+ parseInvalidTopLevelDeclaration())
+ reportRecoverableErrorWithToken({, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {token: {}], {, {)
+ parseInvalidBlock())
+ parseBlock(), BlockKind(invalid))
+ ensureBlock(), null, null)
+ listener: beginBlock({, BlockKind(invalid))
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
+ listener: handleIdentifier(enum, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(enum)
+ parseArguments(enum)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(enum, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlock(2, {, }, BlockKind(invalid))
+ listener: handleInvalidTopLevelBlock({)
+ listener: handleInvalidTopLevelDeclaration(})
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(extends)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(extends)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(extends)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(extends)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, extends)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+ listener: handleIdentifier(extends, topLevelFunctionDeclaration)
+ parseMethodTypeVar(extends)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(extends, extends, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(extends, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+ listener: handleIdentifier(extends, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(extends)
+ parseArguments(extends)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(extends, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(extends, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(false)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(false)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(false)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(false)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, false)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'false'., null, {token: false}], false, false)
+ listener: handleIdentifier(false, topLevelFunctionDeclaration)
+ parseMethodTypeVar(false)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(false, false, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(false, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralBool(return)
+ listener: handleLiteralBool(false)
+ parseArgumentOrIndexStar(false, Instance of 'NoTypeParamOrArg', false)
+ listener: handleNoTypeArguments(()
+ parseArguments(false)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend((, ))
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(false, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(final)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(final)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(final)
+ insertSyntheticIdentifier(final, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'final' here., Try removing 'final'., {token: final}], final, final)
+ parseTopLevelMethod(;, null, final, Instance of 'NoType', null, )
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(final)
+ ensureIdentifier(final, topLevelFunctionDeclaration)
+ listener: handleIdentifier(, topLevelFunctionDeclaration)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, , false, MemberKind.TopLevelMethod)
+ parseFormalParameters(, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(final)
+ parseArgumentsOpt()
+ listener: handleNoArguments(final)
+ listener: handleSend(, final)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], final, final)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, final)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(final, ;, null, final, null, false)
+ looksLikeLocalFunction(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: handleNoType(final)
+ listener: beginVariablesDeclaration((, null, final)
+ parseVariablesDeclarationRest(final, true)
+ parseOptionallyInitializedIdentifier(final)
+ ensureIdentifier(final, localVariableDeclaration)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, localVariableDeclaration)
+ listener: beginInitializedIdentifier()
+ parseVariableInitializerOpt()
+ listener: handleNoVariableInitializer(x)
+ listener: endInitializedIdentifier()
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+ rewriter()
+ listener: endVariablesDeclaration(1, ;)
+ notEofOrValue(}, x)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(x)
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSendOrFunctionLiteral(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureSemicolon(1)
+ reportRecoverableError(1, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+ rewriter()
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, ))
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction())
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+ rewriter()
+ listener: handleExpressionStatement(;)
+ reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+ notEofOrValue(}, +)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(6, {, })
+ listener: endTopLevelMethod(final, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(finally)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(finally)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(finally)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(finally)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, finally)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+ listener: handleIdentifier(finally, topLevelFunctionDeclaration)
+ parseMethodTypeVar(finally)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(finally, finally, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(finally, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+ listener: handleIdentifier(finally, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(finally)
+ parseArguments(finally)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(finally, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(finally, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(for)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(for)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(for)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(for)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, for)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+ listener: handleIdentifier(for, topLevelFunctionDeclaration)
+ parseMethodTypeVar(for)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(for, for, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(for, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(for)
+ parseArgumentsOpt()
+ listener: handleNoArguments(for)
+ listener: handleSend(, for)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], for, for)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, for)
+ parseStatement(;)
+ parseStatementX(;)
+ parseForStatement(;, null)
+ listener: beginForStatement(for)
+ parseForLoopPartsStart(null, for)
+ parseExpressionStatementOrDeclaration((, true)
+ parseExpressionStatementOrDeclarationAfterModifiers((, (, null, null, null, true)
+ parseForLoopPartsMid((, null, for)
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: handleForInitializerExpressionStatement(1, false)
+ parseForRest(null, 1, for)
+ parseForLoopPartsRest(1, for, null)
+ ensureSemicolon(1)
+ reportRecoverableError(1, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+ rewriter()
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+ rewriter()
+ listener: handleExpressionStatement(;)
+ listener: handleForLoopParts(for, (, ;, 0)
+ listener: beginForStatementBody(+)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ listener: endForStatementBody(})
+ listener: endForStatement(})
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endTopLevelMethod(for, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(if)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(if)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(if)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(if)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, if)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+ listener: handleIdentifier(if, topLevelFunctionDeclaration)
+ parseMethodTypeVar(if)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(if, if, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(if, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(if)
+ parseArgumentsOpt()
+ listener: handleNoArguments(if)
+ listener: handleSend(, if)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], if, if)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, if)
+ parseStatement(;)
+ parseStatementX(;)
+ parseIfStatement(;)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(+)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endTopLevelMethod(if, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(in)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(in)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(in)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(in)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, in)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+ listener: handleIdentifier(in, topLevelFunctionDeclaration)
+ parseMethodTypeVar(in)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(in, in, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(in, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+ listener: handleIdentifier(in, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(in)
+ parseArguments(in)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(in, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(in, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(is)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(is)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(is)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(is)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, is)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+ listener: handleIdentifier(is, topLevelFunctionDeclaration)
+ parseMethodTypeVar(is)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(is, is, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(is, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(is)
+ parseArgumentsOpt()
+ listener: handleNoArguments(is)
+ listener: handleSend(, is)
+ parseIsOperatorRest()
+ listener: beginIsOperatorType(is)
+ computeTypeAfterIsOrAs(is)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, typeReference)
+ listener: handleNoTypeArguments(()
+ listener: handleType(, null)
+ listener: endIsOperatorType(is)
+ listener: handleIsOperator(is, null)
+ skipChainedAsIsOperators()
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], (, ()
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, ()
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(;)
+ parseParenthesizedExpression(;)
+ parseExpressionInParenthesis(;)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endTopLevelMethod(is, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(new)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(new)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(new)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(new)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, new)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'new'., null, {token: new}], new, new)
+ listener: handleIdentifier(new, topLevelFunctionDeclaration)
+ parseMethodTypeVar(new)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(new, new, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(new, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseNewExpression(return)
+ listener: beginNewExpression(new)
+ parseConstructorReference(new, null)
+ ensureIdentifier(new, constructorReference)
+ insertSyntheticIdentifier(new, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, constructorReference)
+ listener: beginConstructorReference()
+ parseQualifiedRestOpt(, constructorReferenceContinuation)
+ listener: handleNoTypeArguments(()
+ listener: handleNoConstructorReferenceContinuationAfterTypeArguments(()
+ listener: endConstructorReference(, null, ()
+ parseConstructorInvocationArguments()
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: endNewExpression(new)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(new, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(null)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(null)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(null)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(null)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, null)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'null'., null, {token: null}], null, null)
+ listener: handleIdentifier(null, topLevelFunctionDeclaration)
+ parseMethodTypeVar(null)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(null, null, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(null, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralNull(return)
+ listener: handleLiteralNull(null)
+ parseArgumentOrIndexStar(null, Instance of 'NoTypeParamOrArg', false)
+ listener: handleNoTypeArguments(()
+ parseArguments(null)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend((, ))
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(null, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(rethrow)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(rethrow)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(rethrow)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(rethrow)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, rethrow)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+ listener: handleIdentifier(rethrow, topLevelFunctionDeclaration)
+ parseMethodTypeVar(rethrow)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(rethrow, rethrow, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(rethrow, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+ listener: handleIdentifier(rethrow, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(rethrow)
+ parseArguments(rethrow)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(rethrow, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(rethrow, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(return)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(return)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(return)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(return)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, return)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'return'., null, {token: return}], return, return)
+ listener: handleIdentifier(return, topLevelFunctionDeclaration)
+ parseMethodTypeVar(return)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(return, return, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(return, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {token: return}], return, return)
+ parsePrimary(return, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(return)
+ parseParenthesizedExpression(return)
+ parseExpressionInParenthesis(return)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(return, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(super)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(super)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(super)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(super)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, super)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'super'., null, {token: super}], super, super)
+ listener: handleIdentifier(super, topLevelFunctionDeclaration)
+ parseMethodTypeVar(super)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(super, super, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(super, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseSuperExpression(return, expression)
+ listener: handleSuperExpression(super, expression)
+ listener: handleNoTypeArguments(()
+ parseArguments(super)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(super, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(super, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(switch)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(switch)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(switch)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(switch)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, switch)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+ listener: handleIdentifier(switch, topLevelFunctionDeclaration)
+ parseMethodTypeVar(switch)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(switch, switch, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(switch, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(switch)
+ parseArgumentsOpt()
+ listener: handleNoArguments(switch)
+ listener: handleSend(, switch)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], switch, switch)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, switch)
+ parseStatement(;)
+ parseStatementX(;)
+ parseSwitchStatement(;)
+ listener: beginSwitchStatement(switch)
+ ensureParenthesizedCondition(switch)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedCondition(()
+ parseSwitchBlock())
+ ensureBlock(), null, switch statement)
+ reportRecoverableError(), Message[ExpectedClassOrMixinBody, A switch statement must have a body, even if it is empty., Try adding an empty body., {string: switch statement}])
+ listener: handleRecoverableError(Message[ExpectedClassOrMixinBody, A switch statement must have a body, even if it is empty., Try adding an empty body., {string: switch statement}], ), ))
+ insertBlock())
+ rewriter()
+ rewriter()
+ listener: beginSwitchBlock({)
+ notEofOrValue(}, })
+ listener: endSwitchBlock(0, {, })
+ listener: endSwitchStatement(switch, })
+ notEofOrValue(}, +)
+ parseStatement(})
+ parseStatementX(})
+ parseExpressionStatementOrDeclaration(}, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(}, }, null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement(})
+ parseExpression(})
+ parsePrecedenceExpression(}, 1, true)
+ parseUnaryExpression(}, true)
+ rewriteAndRecover(}, UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(}, expression)
+ parseSendOrFunctionLiteral(}, expression)
+ parseSend(}, expression)
+ ensureIdentifier(}, expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endTopLevelMethod(switch, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, this)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(this)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
+ listener: handleIdentifier(this, topLevelFunctionDeclaration)
+ parseMethodTypeVar(this)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(this, this, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(this, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseThisExpression(return, expression)
+ listener: handleThisExpression(this, expression)
+ listener: handleNoTypeArguments(()
+ parseArguments(this)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(this, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(throw)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(throw)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(throw)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(throw)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, throw)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
+ listener: handleIdentifier(throw, topLevelFunctionDeclaration)
+ parseMethodTypeVar(throw)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(throw, throw, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(throw, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parseThrowExpression(return, true)
+ parseExpression(throw)
+ parsePrecedenceExpression(throw, 1, true)
+ parseUnaryExpression(throw, true)
+ parsePrimary(throw, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(throw)
+ parseParenthesizedExpression(throw)
+ parseExpressionInParenthesis(throw)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ listener: handleThrowExpression(throw, ;)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(throw, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(true)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(true)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(true)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(true)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, true)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
+ listener: handleIdentifier(true, topLevelFunctionDeclaration)
+ parseMethodTypeVar(true)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(true, true, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(true, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralBool(return)
+ listener: handleLiteralBool(true)
+ parseArgumentOrIndexStar(true, Instance of 'NoTypeParamOrArg', false)
+ listener: handleNoTypeArguments(()
+ parseArguments(true)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend((, ))
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(true, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(try)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(try)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(try)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(try)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, try)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+ listener: handleIdentifier(try, topLevelFunctionDeclaration)
+ parseMethodTypeVar(try)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(try, try, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(try, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(try)
+ parseArgumentsOpt()
+ listener: handleNoArguments(try)
+ listener: handleSend(, try)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], try, try)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, try)
+ parseStatement(;)
+ parseStatementX(;)
+ parseTryStatement(;)
+ listener: beginTryStatement(try)
+ parseBlock(try, BlockKind(try statement))
+ ensureBlock(try, null, try statement)
+ reportRecoverableError(try, Message[ExpectedClassOrMixinBody, A try statement must have a body, even if it is empty., Try adding an empty body., {string: try statement}])
+ listener: handleRecoverableError(Message[ExpectedClassOrMixinBody, A try statement must have a body, even if it is empty., Try adding an empty body., {string: try statement}], try, try)
+ insertBlock(try)
+ rewriter()
+ rewriter()
+ listener: beginBlock({, BlockKind(try statement))
+ notEofOrValue(}, })
+ listener: endBlock(0, {, }, BlockKind(try statement))
+ reportRecoverableError(try, OnlyTry)
+ listener: handleRecoverableError(OnlyTry, try, try)
+ listener: endTryStatement(0, try, null)
+ notEofOrValue(}, ()
+ parseStatement(})
+ parseStatementX(})
+ parseExpressionStatementOrDeclaration(}, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(}, }, null, null, null, false)
+ looksLikeLocalFunction(()
+ parseExpressionStatement(})
+ parseExpression(})
+ parsePrecedenceExpression(}, 1, true)
+ parseUnaryExpression(}, true)
+ parsePrimary(}, expression)
+ parseParenthesizedExpressionOrFunctionLiteral(})
+ parseParenthesizedExpression(})
+ parseExpressionInParenthesis(})
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedExpression(()
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(4, {, })
+ listener: endTopLevelMethod(try, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(var)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(var)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(var)
+ insertSyntheticIdentifier(var, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ reportRecoverableError(var, VarReturnType)
+ listener: handleRecoverableError(VarReturnType, var, var)
+ parseTopLevelMethod(;, null, var, Instance of 'NoType', null, )
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(var)
+ ensureIdentifier(var, topLevelFunctionDeclaration)
+ listener: handleIdentifier(, topLevelFunctionDeclaration)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, , false, MemberKind.TopLevelMethod)
+ parseFormalParameters(, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(var)
+ parseArgumentsOpt()
+ listener: handleNoArguments(var)
+ listener: handleSend(, var)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], var, var)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, var)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(var, ;, null, var, null, false)
+ looksLikeLocalFunction(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: handleNoType(var)
+ listener: beginVariablesDeclaration((, null, var)
+ parseVariablesDeclarationRest(var, true)
+ parseOptionallyInitializedIdentifier(var)
+ ensureIdentifier(var, localVariableDeclaration)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, localVariableDeclaration)
+ listener: beginInitializedIdentifier()
+ parseVariableInitializerOpt()
+ listener: handleNoVariableInitializer(x)
+ listener: endInitializedIdentifier()
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+ rewriter()
+ listener: endVariablesDeclaration(1, ;)
+ notEofOrValue(}, x)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(x)
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSendOrFunctionLiteral(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureSemicolon(1)
+ reportRecoverableError(1, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+ rewriter()
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, ))
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction())
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+ rewriter()
+ listener: handleExpressionStatement(;)
+ reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+ notEofOrValue(}, +)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(6, {, })
+ listener: endTopLevelMethod(var, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(void)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(void)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(void)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(void)
+ insertSyntheticIdentifier(void, methodDeclaration, message: null, messageOnToken: null)
+ reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ parseTopLevelMethod(;, null, ;, Instance of 'VoidType', null, )
+ listener: beginTopLevelMethod(;, null)
+ listener: handleVoidKeyword(void)
+ ensureIdentifier(void, topLevelFunctionDeclaration)
+ listener: handleIdentifier(, topLevelFunctionDeclaration)
+ parseMethodTypeVar()
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(, , false, MemberKind.TopLevelMethod)
+ parseFormalParameters(, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseSendOrFunctionLiteral(return, expression)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(void)
+ parseArgumentsOpt()
+ listener: handleNoArguments(void)
+ listener: handleSend(, void)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], void, void)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, void)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(()
+ listener: beginMetadataStar(void)
+ listener: endMetadataStar(0)
+ listener: handleVoidKeyword(void)
+ listener: beginVariablesDeclaration((, null, null)
+ parseVariablesDeclarationRest(void, true)
+ parseOptionallyInitializedIdentifier(void)
+ ensureIdentifier(void, localVariableDeclaration)
+ reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+ rewriter()
+ listener: handleIdentifier(, localVariableDeclaration)
+ listener: beginInitializedIdentifier()
+ parseVariableInitializerOpt()
+ listener: handleNoVariableInitializer(x)
+ listener: endInitializedIdentifier()
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+ rewriter()
+ listener: endVariablesDeclaration(1, ;)
+ notEofOrValue(}, x)
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction(x)
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSendOrFunctionLiteral(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureSemicolon(1)
+ reportRecoverableError(1, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+ rewriter()
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, ))
+ parseStatement(;)
+ parseStatementX(;)
+ parseExpressionStatementOrDeclaration(;, false)
+ parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
+ looksLikeLocalFunction())
+ parseExpressionStatement(;)
+ parseExpression(;)
+ parsePrecedenceExpression(;, 1, true)
+ parseUnaryExpression(;, true)
+ parsePrimary(;, expression)
+ parseSend(;, expression)
+ ensureIdentifier(;, expression)
+ reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments())
+ parseArgumentsOpt()
+ listener: handleNoArguments())
+ listener: handleSend(, ))
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+ rewriter()
+ listener: handleExpressionStatement(;)
+ reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
+ listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+ notEofOrValue(}, +)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(6, {, })
+ listener: endTopLevelMethod(void, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(while)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(while)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(while)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(while)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, while)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+ listener: handleIdentifier(while, topLevelFunctionDeclaration)
+ parseMethodTypeVar(while)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(while, while, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(while, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+ rewriter()
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(while)
+ parseArgumentsOpt()
+ listener: handleNoArguments(while)
+ listener: handleSend(, while)
+ ensureSemicolon()
+ reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], while, while)
+ rewriter()
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, while)
+ parseStatement(;)
+ parseStatementX(;)
+ parseWhileStatement(;)
+ listener: beginWhileStatement(while)
+ ensureParenthesizedCondition(while)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ ensureCloseParen(1, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginWhileStatementBody(+)
+ parseStatement())
+ parseStatementX())
+ parseExpressionStatementOrDeclaration(), false)
+ parseExpressionStatementOrDeclarationAfterModifiers(), ), null, null, null, false)
+ looksLikeLocalFunction(+)
+ parseExpressionStatement())
+ parseExpression())
+ parsePrecedenceExpression(), 1, true)
+ parseUnaryExpression(), true)
+ rewriteAndRecover(), UnsupportedPrefixPlus, )
+ reportRecoverableError(+, UnsupportedPrefixPlus)
+ listener: handleRecoverableError(UnsupportedPrefixPlus, +, +)
+ rewriter()
+ parsePrimary(), expression)
+ parseSendOrFunctionLiteral(), expression)
+ parseSend(), expression)
+ ensureIdentifier(), expression)
+ listener: handleIdentifier(, expression)
+ listener: handleNoTypeArguments(+)
+ parseArgumentsOpt()
+ listener: handleNoArguments(+)
+ listener: handleSend(, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: handleExpressionStatement(;)
+ listener: endWhileStatementBody(})
+ listener: endWhileStatement(while, })
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(3, {, })
+ listener: endTopLevelMethod(while, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseFields(}, null, null, null, null, null, }, Instance of 'NoType', int, DeclarationKind.TopLevel, null)
+ reportRecoverableError(int, MissingConstFinalVarOrType)
+ listener: handleRecoverableError(MissingConstFinalVarOrType, int, int)
+ listener: handleNoType(})
+ ensureIdentifier(}, topLevelVariableDeclaration)
+ listener: handleIdentifier(int, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(int, int, null, null, DeclarationKind.TopLevel, null)
+ listener: handleNoFieldInitializer(with)
+ ensureSemicolon(int)
+ reportRecoverableError(int, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+ listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], int, int)
+ rewriter()
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(with)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(with)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(with)
+ parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, with)
+ listener: beginTopLevelMethod(;, null)
+ listener: handleNoType(;)
+ ensureIdentifier(;, topLevelFunctionDeclaration)
+ reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+ listener: handleIdentifier(with, topLevelFunctionDeclaration)
+ parseMethodTypeVar(with)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(with, with, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(with, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+ listener: handleIdentifier(with, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(with)
+ parseArguments(with)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(with, +)
+ listener: beginBinaryExpression(+)
+ parsePrecedenceExpression(+, 14, true)
+ parseUnaryExpression(+, true)
+ parsePrimary(+, expression)
+ parseLiteralInt(+)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(+)
+ ensureSemicolon(1)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(with, null, })
+ listener: endTopLevelDeclaration()
+ reportAllErrorTokens(int)
+ listener: endCompilationUnit(71, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart.parser.expect
new file mode 100644
index 0000000..1dc529d
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart.parser.expect
@@ -0,0 +1,333 @@
+NOTICE: Stream was rewritten by parser!
+
+int ;assert(int x) {
+if (x == 0) return 42;
+return assert(x-1) + 1;
+}
+
+int ;break(int x) {
+if (x == 0) return 42;
+return ;break;(x-1) + 1;
+}
+
+int ;case(int x) {
+if (x == 0) return 42;
+return case(x-1) + 1;
+}
+
+int ;catch(int x) {
+if (x == 0) return 42;
+return catch(x-1) + 1;
+}
+
+int ;class({}int x;) {
+if (x == 0) return 42;
+return class(x-1) + 1;
+}
+
+int ;const(int x) {
+if (x == 0) return 42;
+return const(x-1) + 1;
+}
+
+int ;continue(int x) {
+if (x == 0) return 42;
+return ;continue;(x-1) + 1;
+}
+
+int ;default(int x) {
+if (x == 0) return 42;
+return default(x-1) + 1;
+}
+
+int ;do(int x) {
+if (x == 0) return 42;
+return ;do(x-1) + 1;
+while();}
+
+int ;else(int x) {
+if (x == 0) return 42;
+return ;;else(x-1) + 1;
+}
+
+int ;enum({}int x;) {
+if (x == 0) return 42;
+return enum(x-1) + 1;
+}
+
+int ;extends(int x) {
+if (x == 0) return 42;
+return extends(x-1) + 1;
+}
+
+int ;false(int x) {
+if (x == 0) return 42;
+return false(x-1) + 1;
+}
+
+int ;final(int x) {
+if (x == 0) return 42;
+return ;final(;x-1;;) + 1;
+}
+
+int ;finally(int x) {
+if (x == 0) return 42;
+return finally(x-1) + 1;
+}
+
+int ;for(int x) {
+if (x == 0) return 42;
+return ;for(x-1;;) + 1;
+}
+
+int ;if(int x) {
+if (x == 0) return 42;
+return ;if(x-1) + 1;
+}
+
+int ;in(int x) {
+if (x == 0) return 42;
+return in(x-1) + 1;
+}
+
+int ;is(int x) {
+if (x == 0) return 42;
+return is;(x-1) + 1;
+}
+
+int ;new(int x) {
+if (x == 0) return 42;
+return new(x-1) + 1;
+}
+
+int ;null(int x) {
+if (x == 0) return 42;
+return null(x-1) + 1;
+}
+
+int ;rethrow(int x) {
+if (x == 0) return 42;
+return rethrow(x-1) + 1;
+}
+
+int ;return(int x) {
+if (x == 0) return 42;
+return return(x-1) + 1;
+}
+
+int ;super(int x) {
+if (x == 0) return 42;
+return super(x-1) + 1;
+}
+
+int ;switch(int x) {
+if (x == 0) return 42;
+return ;switch(x-1) {}+ 1;
+}
+
+int this(int x) {
+if (x == 0) return 42;
+return this(x-1) + 1;
+}
+
+int ;throw(int x) {
+if (x == 0) return 42;
+return throw(x-1) + 1;
+}
+
+int ;true(int x) {
+if (x == 0) return 42;
+return true(x-1) + 1;
+}
+
+int ;try(int x) {
+if (x == 0) return 42;
+return ;try{}(x-1) + 1;
+}
+
+int ;var(int x) {
+if (x == 0) return 42;
+return ;var(;x-1;;) + 1;
+}
+
+int ;void(int x) {
+if (x == 0) return 42;
+return ;void(;x-1;;) + 1;
+}
+
+int ;while(int x) {
+if (x == 0) return 42;
+return ;while(x-1) + 1;
+}
+
+int ;with(int x) {
+if (x == 0) return 42;
+return with(x-1) + 1;
+}
+
+
+int[StringToken] ;[SyntheticToken]assert[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] assert[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]break[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]break[KeywordToken];[SyntheticToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]case[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] case[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]catch[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] catch[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]class[KeywordToken]([BeginToken][SyntheticStringToken]{[SyntheticBeginToken]}[SyntheticToken]int[StringToken] x[StringToken];[SyntheticToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] class[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]const[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] const[KeywordToken][SyntheticStringToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]continue[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]continue[KeywordToken];[SyntheticToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]default[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] default[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]do[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]do[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+while[SyntheticKeywordToken]([SyntheticBeginToken][SyntheticStringToken])[SyntheticToken];[SyntheticToken]}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]else[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken]else[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]enum[KeywordToken]([BeginToken][SyntheticStringToken]{[SyntheticBeginToken]}[SyntheticToken]int[StringToken] x[StringToken];[SyntheticToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] enum[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]extends[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] extends[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]false[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] false[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]final[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]final[KeywordToken]([BeginToken][SyntheticStringToken];[SyntheticToken]x[StringToken]-[SimpleToken]1[StringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]finally[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] finally[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]for[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]for[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]if[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]if[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]in[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] in[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]is[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken]is[KeywordToken][SyntheticStringToken];[SyntheticToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]new[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] new[KeywordToken][SyntheticStringToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]null[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] null[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]rethrow[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] rethrow[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]return[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] return[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]super[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] super[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]switch[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]switch[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] {[SyntheticBeginToken]}[SyntheticToken][SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] this[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] this[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]throw[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] throw[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]true[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] true[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]try[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]try[KeywordToken]{[SyntheticBeginToken]}[SyntheticToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]var[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]var[KeywordToken]([BeginToken][SyntheticStringToken];[SyntheticToken]x[StringToken]-[SimpleToken]1[StringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]void[KeywordToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]void[KeywordToken]([BeginToken][SyntheticStringToken];[SyntheticToken]x[StringToken]-[SimpleToken]1[StringToken];[SyntheticToken][SyntheticStringToken];[SyntheticToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]while[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] [SyntheticStringToken];[SyntheticToken]while[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] [SyntheticStringToken]+[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] ;[SyntheticToken]with[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] with[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart.scanner.expect
new file mode 100644
index 0000000..896ca86
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/reserved_words_top_level_methods.dart.scanner.expect
@@ -0,0 +1,331 @@
+int assert(int x) {
+if (x == 0) return 42;
+return assert(x-1) + 1;
+}
+
+int break(int x) {
+if (x == 0) return 42;
+return break(x-1) + 1;
+}
+
+int case(int x) {
+if (x == 0) return 42;
+return case(x-1) + 1;
+}
+
+int catch(int x) {
+if (x == 0) return 42;
+return catch(x-1) + 1;
+}
+
+int class(int x) {
+if (x == 0) return 42;
+return class(x-1) + 1;
+}
+
+int const(int x) {
+if (x == 0) return 42;
+return const(x-1) + 1;
+}
+
+int continue(int x) {
+if (x == 0) return 42;
+return continue(x-1) + 1;
+}
+
+int default(int x) {
+if (x == 0) return 42;
+return default(x-1) + 1;
+}
+
+int do(int x) {
+if (x == 0) return 42;
+return do(x-1) + 1;
+}
+
+int else(int x) {
+if (x == 0) return 42;
+return else(x-1) + 1;
+}
+
+int enum(int x) {
+if (x == 0) return 42;
+return enum(x-1) + 1;
+}
+
+int extends(int x) {
+if (x == 0) return 42;
+return extends(x-1) + 1;
+}
+
+int false(int x) {
+if (x == 0) return 42;
+return false(x-1) + 1;
+}
+
+int final(int x) {
+if (x == 0) return 42;
+return final(x-1) + 1;
+}
+
+int finally(int x) {
+if (x == 0) return 42;
+return finally(x-1) + 1;
+}
+
+int for(int x) {
+if (x == 0) return 42;
+return for(x-1) + 1;
+}
+
+int if(int x) {
+if (x == 0) return 42;
+return if(x-1) + 1;
+}
+
+int in(int x) {
+if (x == 0) return 42;
+return in(x-1) + 1;
+}
+
+int is(int x) {
+if (x == 0) return 42;
+return is(x-1) + 1;
+}
+
+int new(int x) {
+if (x == 0) return 42;
+return new(x-1) + 1;
+}
+
+int null(int x) {
+if (x == 0) return 42;
+return null(x-1) + 1;
+}
+
+int rethrow(int x) {
+if (x == 0) return 42;
+return rethrow(x-1) + 1;
+}
+
+int return(int x) {
+if (x == 0) return 42;
+return return(x-1) + 1;
+}
+
+int super(int x) {
+if (x == 0) return 42;
+return super(x-1) + 1;
+}
+
+int switch(int x) {
+if (x == 0) return 42;
+return switch(x-1) + 1;
+}
+
+int this(int x) {
+if (x == 0) return 42;
+return this(x-1) + 1;
+}
+
+int throw(int x) {
+if (x == 0) return 42;
+return throw(x-1) + 1;
+}
+
+int true(int x) {
+if (x == 0) return 42;
+return true(x-1) + 1;
+}
+
+int try(int x) {
+if (x == 0) return 42;
+return try(x-1) + 1;
+}
+
+int var(int x) {
+if (x == 0) return 42;
+return var(x-1) + 1;
+}
+
+int void(int x) {
+if (x == 0) return 42;
+return void(x-1) + 1;
+}
+
+int while(int x) {
+if (x == 0) return 42;
+return while(x-1) + 1;
+}
+
+int with(int x) {
+if (x == 0) return 42;
+return with(x-1) + 1;
+}
+
+
+int[StringToken] assert[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] assert[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] break[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] break[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] case[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] case[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] catch[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] catch[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] class[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] class[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] const[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] const[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] continue[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] continue[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] default[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] default[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] do[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] do[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] else[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] else[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] enum[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] enum[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] extends[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] extends[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] false[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] false[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] final[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] final[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] finally[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] finally[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] for[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] for[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] if[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] if[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] in[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] in[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] is[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] is[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] new[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] new[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] null[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] null[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] rethrow[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] rethrow[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] return[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] return[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] super[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] super[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] switch[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] switch[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] this[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] this[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] throw[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] throw[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] true[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] true[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] try[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] try[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] var[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] var[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] void[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] void[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] while[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] while[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] with[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] with[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart
new file mode 100644
index 0000000..b337598
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart
@@ -0,0 +1,22 @@
+class WrapperClass {
+ int abstract = 42;
+ int as = 42;
+ int covariant = 42;
+ int deferred = 42;
+ int dynamic = 42;
+ int export = 42;
+ int external = 42;
+ int factory = 42;
+ int Function = 42;
+ int get = 42;
+ int implements = 42;
+ int import = 42;
+ int interface = 42;
+ int library = 42;
+ int operator = 42;
+ int mixin = 42;
+ int part = 42;
+ int set = 42;
+ int static = 42;
+ int typedef = 42;
+}
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.expect
new file mode 100644
index 0000000..3b9db40
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.expect
@@ -0,0 +1,257 @@
+beginCompilationUnit(class)
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(WrapperClass, classOrMixinDeclaration)
+ handleNoTypeVariables({)
+ beginClassDeclaration(class, null, WrapperClass)
+ handleNoType(WrapperClass)
+ handleClassExtends(null)
+ handleClassNoWithClause()
+ handleClassOrMixinImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinBody(DeclarationKind.Class, {)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(abstract)
+ handleType(int, null)
+ handleIdentifier(abstract, fieldDeclaration)
+ beginFieldInitializer(=)
+ handleLiteralInt(42)
+ endFieldInitializer(=, ;)
+ endClassFields(null, null, null, null, 1, int, ;)
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(as)
+ handleType(int, null)
+ handleIdentifier(as, fieldDeclaration)
+ beginFieldInitializer(=)
+ handleLiteralInt(42)
+ endFieldInitializer(=, ;)
+ endClassFields(null, null, null, null, 1, int, ;)
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(covariant)
+ handleType(int, null)
+ handleIdentifier(covariant, fieldDeclaration)
+ beginFieldInitializer(=)
+ handleLiteralInt(42)
+ endFieldInitializer(=, ;)
+ endClassFields(null, null, null, null, 1, int, ;)
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(deferred)
+ handleType(int, null)
+ handleIdentifier(deferred, fieldDeclaration)
+ beginFieldInitializer(=)
+ handleLiteralInt(42)
+ endFieldInitializer(=, ;)
+ endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(dynamic)
+ handleType(int, null)
+ handleIdentifier(dynamic, fieldDeclaration)
+ beginFieldInitializer(=)
+ handleLiteralInt(42)
+ endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(export)
+handleType(int, null)
+handleIdentifier(export, fieldDeclaration)
+beginFieldInitializer(=)
+ handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(external)
+handleType(int, null)
+handleIdentifier(external, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(factory)
+handleType(int, null)
+handleIdentifier(factory, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(Function)
+handleType(int, null)
+handleIdentifier(Function, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(get)
+handleType(int, null)
+handleIdentifier(get, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(implements)
+handleType(int, null)
+handleIdentifier(implements, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(import)
+handleType(int, null)
+handleIdentifier(import, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(interface)
+handleType(int, null)
+handleIdentifier(interface, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(library)
+handleType(int, null)
+handleIdentifier(library, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(operator)
+handleType(int, null)
+handleIdentifier(operator, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(mixin)
+handleType(int, null)
+handleIdentifier(mixin, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(part)
+handleType(int, null)
+handleIdentifier(part, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(set)
+handleType(int, null)
+handleIdentifier(set, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(static)
+handleType(int, null)
+handleIdentifier(static, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+beginMetadataStar(int)
+endMetadataStar(0)
+beginMember()
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(typedef)
+handleType(int, null)
+handleIdentifier(typedef, fieldDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endClassFields(null, null, null, null, 1, int, ;)
+endMember()
+endClassOrMixinBody(DeclarationKind.Class, 20, {, })
+endClassDeclaration(class, })
+endTopLevelDeclaration()
+endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.intertwined.expect
new file mode 100644
index 0000000..b8e145f
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.intertwined.expect
@@ -0,0 +1,495 @@
+parseUnit(class)
+ skipErrorTokens(class)
+ listener: beginCompilationUnit(class)
+ syntheticPreviousToken(class)
+ parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+ parseMetadataStar()
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(, class, Instance of 'DirectiveContext')
+ parseClassDeclarationModifiers(, class)
+ parseClassOrNamedMixinApplication(null, class)
+ listener: beginClassOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(WrapperClass, classOrMixinDeclaration)
+ listener: handleNoTypeVariables({)
+ listener: beginClassDeclaration(class, null, WrapperClass)
+ parseClass(WrapperClass, class, class, WrapperClass)
+ parseClassHeaderOpt(WrapperClass, class, class)
+ parseClassExtendsOpt(WrapperClass)
+ listener: handleNoType(WrapperClass)
+ listener: handleClassExtends(null)
+ parseWithClauseOpt(WrapperClass)
+ listener: handleClassNoWithClause()
+ parseClassOrMixinImplementsOpt(WrapperClass)
+ listener: handleClassOrMixinImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(WrapperClass, DeclarationKind.Class, WrapperClass)
+ listener: beginClassOrMixinBody(DeclarationKind.Class, {)
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl({, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar({)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields({, null, null, null, null, null, {, Instance of 'SimpleType', abstract, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(abstract)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(abstract, fieldDeclaration)
+ parseFieldInitializerOpt(abstract, abstract, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(as)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(as, fieldDeclaration)
+ parseFieldInitializerOpt(as, as, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(covariant)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(covariant, fieldDeclaration)
+ parseFieldInitializerOpt(covariant, covariant, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(deferred)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(deferred, fieldDeclaration)
+ parseFieldInitializerOpt(deferred, deferred, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(dynamic)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(dynamic, fieldDeclaration)
+ parseFieldInitializerOpt(dynamic, dynamic, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(export)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(export, fieldDeclaration)
+ parseFieldInitializerOpt(export, export, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(external)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(external, fieldDeclaration)
+ parseFieldInitializerOpt(external, external, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(factory)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(factory, fieldDeclaration)
+ parseFieldInitializerOpt(factory, factory, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(Function)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(Function, fieldDeclaration)
+ parseFieldInitializerOpt(Function, Function, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(get)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(get, fieldDeclaration)
+ parseFieldInitializerOpt(get, get, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(implements)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(implements, fieldDeclaration)
+ parseFieldInitializerOpt(implements, implements, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(import)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(import, fieldDeclaration)
+ parseFieldInitializerOpt(import, import, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(interface)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(interface, fieldDeclaration)
+ parseFieldInitializerOpt(interface, interface, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(library)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(library, fieldDeclaration)
+ parseFieldInitializerOpt(library, library, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ isUnaryMinus(=)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(operator)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(operator, fieldDeclaration)
+ parseFieldInitializerOpt(operator, operator, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(mixin)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(mixin, fieldDeclaration)
+ parseFieldInitializerOpt(mixin, mixin, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(part)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(part, fieldDeclaration)
+ parseFieldInitializerOpt(part, part, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(set)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(set, fieldDeclaration)
+ parseFieldInitializerOpt(set, set, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(static)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(static, fieldDeclaration)
+ parseFieldInitializerOpt(static, static, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.Class, WrapperClass)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(typedef)
+ listener: handleType(int, null)
+ ensureIdentifier(int, fieldDeclaration)
+ listener: handleIdentifier(typedef, fieldDeclaration)
+ parseFieldInitializerOpt(typedef, typedef, null, null, DeclarationKind.Class, WrapperClass)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endClassFields(null, null, null, null, 1, int, ;)
+ listener: endMember()
+ notEofOrValue(}, })
+ listener: endClassOrMixinBody(DeclarationKind.Class, 20, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration()
+ reportAllErrorTokens(class)
+ listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.parser.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.parser.expect
new file mode 100644
index 0000000..1f7ddbf
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.parser.expect
@@ -0,0 +1,47 @@
+class WrapperClass {
+int abstract = 42;
+int as = 42;
+int covariant = 42;
+int deferred = 42;
+int dynamic = 42;
+int export = 42;
+int external = 42;
+int factory = 42;
+int Function = 42;
+int get = 42;
+int implements = 42;
+int import = 42;
+int interface = 42;
+int library = 42;
+int operator = 42;
+int mixin = 42;
+int part = 42;
+int set = 42;
+int static = 42;
+int typedef = 42;
+}
+
+
+class[KeywordToken] WrapperClass[StringToken] {[BeginToken]
+int[StringToken] abstract[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] as[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] covariant[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] deferred[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] dynamic[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] export[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] external[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] factory[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] Function[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] get[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] implements[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] import[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] interface[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] library[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] operator[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] mixin[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] part[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] set[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] static[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] typedef[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.scanner.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.scanner.expect
new file mode 100644
index 0000000..1f7ddbf
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.scanner.expect
@@ -0,0 +1,47 @@
+class WrapperClass {
+int abstract = 42;
+int as = 42;
+int covariant = 42;
+int deferred = 42;
+int dynamic = 42;
+int export = 42;
+int external = 42;
+int factory = 42;
+int Function = 42;
+int get = 42;
+int implements = 42;
+int import = 42;
+int interface = 42;
+int library = 42;
+int operator = 42;
+int mixin = 42;
+int part = 42;
+int set = 42;
+int static = 42;
+int typedef = 42;
+}
+
+
+class[KeywordToken] WrapperClass[StringToken] {[BeginToken]
+int[StringToken] abstract[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] as[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] covariant[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] deferred[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] dynamic[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] export[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] external[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] factory[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] Function[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] get[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] implements[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] import[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] interface[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] library[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] operator[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] mixin[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] part[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] set[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] static[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] typedef[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart
new file mode 100644
index 0000000..58f62e2
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart
@@ -0,0 +1,101 @@
+class WrapperClass {
+ int abstract(int x) {
+ if (x == 0) return 42;
+ return abstract(x - 1);
+ }
+
+ int as(int x) {
+ if (x == 0) return 42;
+ return as(x - 1);
+ }
+
+ int covariant(int x) {
+ if (x == 0) return 42;
+ return covariant(x - 1);
+ }
+
+ int deferred(int x) {
+ if (x == 0) return 42;
+ return deferred(x - 1);
+ }
+
+ int dynamic(int x) {
+ if (x == 0) return 42;
+ return dynamic(x - 1);
+ }
+
+ int export(int x) {
+ if (x == 0) return 42;
+ return export(x - 1);
+ }
+
+ int external(int x) {
+ if (x == 0) return 42;
+ return external(x - 1);
+ }
+
+ int factory(int x) {
+ if (x == 0) return 42;
+ return factory(x - 1);
+ }
+
+ int Function(int x) {
+ if (x == 0) return 42;
+ return Function(x - 1);
+ }
+
+ int get(int x) {
+ if (x == 0) return 42;
+ return get(x - 1);
+ }
+
+ int implements(int x) {
+ if (x == 0) return 42;
+ return implements(x - 1);
+ }
+
+ int import(int x) {
+ if (x == 0) return 42;
+ return import(x - 1);
+ }
+
+ int interface(int x) {
+ if (x == 0) return 42;
+ return interface(x - 1);
+ }
+
+ int library(int x) {
+ if (x == 0) return 42;
+ return library(x - 1);
+ }
+
+ int operator(int x) {
+ if (x == 0) return 42;
+ return operator(x - 1);
+ }
+
+ int mixin(int x) {
+ if (x == 0) return 42;
+ return mixin(x - 1);
+ }
+
+ int part(int x) {
+ if (x == 0) return 42;
+ return part(x - 1);
+ }
+
+ int set(int x) {
+ if (x == 0) return 42;
+ return set(x - 1);
+ }
+
+ int static(int x) {
+ if (x == 0) return 42;
+ return static(x - 1);
+ }
+
+ int typedef(int x) {
+ if (x == 0) return 42;
+ return typedef(x - 1);
+ }
+}
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.expect
new file mode 100644
index 0000000..4e94eac
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.expect
@@ -0,0 +1,1117 @@
+beginCompilationUnit(class)
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(WrapperClass, classOrMixinDeclaration)
+ handleNoTypeVariables({)
+ beginClassDeclaration(class, null, WrapperClass)
+ handleNoType(WrapperClass)
+ handleClassExtends(null)
+ handleClassNoWithClause()
+ handleClassOrMixinImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinBody(DeclarationKind.Class, {)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, abstract)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(abstract)
+ handleType(int, null)
+ handleIdentifier(abstract, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(abstract, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(abstract, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, as)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(as)
+ handleType(int, null)
+ handleIdentifier(as, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(as, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(as, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, covariant)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(covariant)
+ handleType(int, null)
+ handleIdentifier(covariant, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(covariant, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(covariant, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, deferred)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(deferred)
+ handleType(int, null)
+ handleIdentifier(deferred, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(deferred, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(deferred, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, dynamic)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(dynamic)
+ handleType(int, null)
+ handleIdentifier(dynamic, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(dynamic, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(dynamic, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, export)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(export)
+ handleType(int, null)
+ handleIdentifier(export, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(export, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(export, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, external)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(external)
+ handleType(int, null)
+ handleIdentifier(external, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(external, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(external, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, factory)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(factory)
+ handleType(int, null)
+ handleIdentifier(factory, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(factory, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(factory, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, Function)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(Function)
+ handleType(int, null)
+ handleIdentifier(Function, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(Function, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(Function, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, get)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(get)
+ handleType(int, null)
+ handleIdentifier(get, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(get, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(get, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, implements)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(implements)
+ handleType(int, null)
+ handleIdentifier(implements, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(implements, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(implements, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, import)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(import)
+ handleType(int, null)
+ handleIdentifier(import, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(import, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(import, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, interface)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(interface)
+ handleType(int, null)
+ handleIdentifier(interface, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(interface, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(interface, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, library)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(library)
+ handleType(int, null)
+ handleIdentifier(library, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(library, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(library, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, operator)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(operator)
+ handleType(int, null)
+ handleIdentifier(operator, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(operator, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(operator, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, mixin)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(mixin)
+ handleType(int, null)
+ handleIdentifier(mixin, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(mixin, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(mixin, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, part)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(part)
+ handleType(int, null)
+ handleIdentifier(part, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(part, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(part, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, set)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(set)
+ handleType(int, null)
+ handleIdentifier(set, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(set, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(set, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, static)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(static)
+ handleType(int, null)
+ handleIdentifier(static, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(static, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(static, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginMember()
+ beginMethod(null, null, null, null, null, typedef)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(typedef)
+ handleType(int, null)
+ handleIdentifier(typedef, methodDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.NonStaticMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ handleNoInitializers()
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(typedef, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(typedef, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endClassMethod(null, int, (, null, })
+ endMember()
+ endClassOrMixinBody(DeclarationKind.Class, 20, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration()
+endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.intertwined.expect
new file mode 100644
index 0000000..34e9020
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.intertwined.expect
@@ -0,0 +1,2716 @@
+parseUnit(class)
+ skipErrorTokens(class)
+ listener: beginCompilationUnit(class)
+ syntheticPreviousToken(class)
+ parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+ parseMetadataStar()
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(, class, Instance of 'DirectiveContext')
+ parseClassDeclarationModifiers(, class)
+ parseClassOrNamedMixinApplication(null, class)
+ listener: beginClassOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(WrapperClass, classOrMixinDeclaration)
+ listener: handleNoTypeVariables({)
+ listener: beginClassDeclaration(class, null, WrapperClass)
+ parseClass(WrapperClass, class, class, WrapperClass)
+ parseClassHeaderOpt(WrapperClass, class, class)
+ parseClassExtendsOpt(WrapperClass)
+ listener: handleNoType(WrapperClass)
+ listener: handleClassExtends(null)
+ parseWithClauseOpt(WrapperClass)
+ listener: handleClassNoWithClause()
+ parseClassOrMixinImplementsOpt(WrapperClass)
+ listener: handleClassOrMixinImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(WrapperClass, DeclarationKind.Class, WrapperClass)
+ listener: beginClassOrMixinBody(DeclarationKind.Class, {)
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl({, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar({)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod({, null, null, null, null, null, {, Instance of 'SimpleType', null, abstract, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, abstract)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(abstract)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(abstract, methodDeclaration)
+ parseQualifiedRestOpt(abstract, methodDeclarationContinuation)
+ parseMethodTypeVar(abstract)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(abstract, abstract, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(abstract, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(abstract, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(abstract)
+ parseArguments(abstract)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(abstract, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, as, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, as)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(as)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(as, methodDeclaration)
+ parseQualifiedRestOpt(as, methodDeclarationContinuation)
+ parseMethodTypeVar(as)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(as, as, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(as, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(as, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(as)
+ parseArguments(as)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(as, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, covariant, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, covariant)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(covariant)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(covariant, methodDeclaration)
+ parseQualifiedRestOpt(covariant, methodDeclarationContinuation)
+ parseMethodTypeVar(covariant)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(covariant, covariant, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(covariant, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(covariant, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(covariant)
+ parseArguments(covariant)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(covariant, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, deferred, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, deferred)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(deferred)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(deferred, methodDeclaration)
+ parseQualifiedRestOpt(deferred, methodDeclarationContinuation)
+ parseMethodTypeVar(deferred)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(deferred, deferred, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(deferred, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(deferred, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(deferred)
+ parseArguments(deferred)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(deferred, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, dynamic, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, dynamic)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(dynamic)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(dynamic, methodDeclaration)
+ parseQualifiedRestOpt(dynamic, methodDeclarationContinuation)
+ parseMethodTypeVar(dynamic)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(dynamic, dynamic, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(dynamic, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(dynamic, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(dynamic)
+ parseArguments(dynamic)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(dynamic, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, export, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, export)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(export)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(export, methodDeclaration)
+ parseQualifiedRestOpt(export, methodDeclarationContinuation)
+ parseMethodTypeVar(export)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(export, export, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(export, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(export, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(export)
+ parseArguments(export)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(export, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, external, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, external)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(external)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(external, methodDeclaration)
+ parseQualifiedRestOpt(external, methodDeclarationContinuation)
+ parseMethodTypeVar(external)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(external, external, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(external, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(external, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(external)
+ parseArguments(external)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(external, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, factory, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, factory)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(factory)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(factory, methodDeclaration)
+ parseQualifiedRestOpt(factory, methodDeclarationContinuation)
+ parseMethodTypeVar(factory)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(factory, factory, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(factory, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(factory, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(factory)
+ parseArguments(factory)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(factory, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, Function, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, Function)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(Function)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(Function, methodDeclaration)
+ parseQualifiedRestOpt(Function, methodDeclarationContinuation)
+ parseMethodTypeVar(Function)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(Function, Function, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(Function, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(Function, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(Function)
+ parseArguments(Function)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(Function, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, get, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, get)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(get)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(get, methodDeclaration)
+ parseQualifiedRestOpt(get, methodDeclarationContinuation)
+ parseMethodTypeVar(get)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(get, get, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(get, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(get, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(get)
+ parseArguments(get)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(get, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, implements, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, implements)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(implements)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(implements, methodDeclaration)
+ parseQualifiedRestOpt(implements, methodDeclarationContinuation)
+ parseMethodTypeVar(implements)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(implements, implements, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(implements, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(implements, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(implements)
+ parseArguments(implements)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(implements, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, import, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, import)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(import)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(import, methodDeclaration)
+ parseQualifiedRestOpt(import, methodDeclarationContinuation)
+ parseMethodTypeVar(import)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(import, import, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(import, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(import, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(import)
+ parseArguments(import)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(import, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, interface, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, interface)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(interface)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(interface, methodDeclaration)
+ parseQualifiedRestOpt(interface, methodDeclarationContinuation)
+ parseMethodTypeVar(interface)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(interface, interface, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(interface, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(interface, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(interface)
+ parseArguments(interface)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(interface, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, library, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, library)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(library)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(library, methodDeclaration)
+ parseQualifiedRestOpt(library, methodDeclarationContinuation)
+ parseMethodTypeVar(library)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(library, library, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(library, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(library, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(library)
+ parseArguments(library)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(library, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ isUnaryMinus(()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, operator, DeclarationKind.Class, WrapperClass)
+ isUnaryMinus(()
+ listener: beginMethod(null, null, null, null, null, operator)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(operator)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(operator, methodDeclaration)
+ parseQualifiedRestOpt(operator, methodDeclarationContinuation)
+ parseMethodTypeVar(operator)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(operator, operator, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(operator, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(operator, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(operator)
+ parseArguments(operator)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(operator, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, mixin, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, mixin)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(mixin)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(mixin, methodDeclaration)
+ parseQualifiedRestOpt(mixin, methodDeclarationContinuation)
+ parseMethodTypeVar(mixin)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(mixin, mixin, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(mixin, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(mixin, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(mixin)
+ parseArguments(mixin)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(mixin, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, part, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, part)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(part)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(part, methodDeclaration)
+ parseQualifiedRestOpt(part, methodDeclarationContinuation)
+ parseMethodTypeVar(part)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(part, part, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(part, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(part, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(part)
+ parseArguments(part)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(part, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, set, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, set)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(set)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(set, methodDeclaration)
+ parseQualifiedRestOpt(set, methodDeclarationContinuation)
+ parseMethodTypeVar(set)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(set, set, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(set, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(set, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(set)
+ parseArguments(set)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(set, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, static, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, static)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(static)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(static, methodDeclaration)
+ parseQualifiedRestOpt(static, methodDeclarationContinuation)
+ parseMethodTypeVar(static)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(static, static, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(static, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(static, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(static)
+ parseArguments(static)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(static, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, int)
+ parseClassOrMixinOrExtensionMemberImpl(}, DeclarationKind.Class, WrapperClass)
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginMember()
+ parseMethod(}, null, null, null, null, null, }, Instance of 'SimpleType', null, typedef, DeclarationKind.Class, WrapperClass)
+ listener: beginMethod(null, null, null, null, null, typedef)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(typedef)
+ listener: handleType(int, null)
+ ensureIdentifier(int, methodDeclaration)
+ listener: handleIdentifier(typedef, methodDeclaration)
+ parseQualifiedRestOpt(typedef, methodDeclarationContinuation)
+ parseMethodTypeVar(typedef)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(typedef, typedef, false, MemberKind.NonStaticMethod)
+ parseFormalParameters(typedef, MemberKind.NonStaticMethod)
+ parseFormalParametersRest((, MemberKind.NonStaticMethod)
+ listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+ parseInitializersOpt())
+ listener: handleNoInitializers()
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ inPlainSync()
+ parseFunctionBody(), false, true)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(typedef, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(typedef)
+ parseArguments(typedef)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(typedef, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endClassMethod(null, int, (, null, })
+ listener: endMember()
+ notEofOrValue(}, })
+ listener: endClassOrMixinBody(DeclarationKind.Class, 20, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration()
+ reportAllErrorTokens(class)
+ listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.parser.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.parser.expect
new file mode 100644
index 0000000..055374b
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.parser.expect
@@ -0,0 +1,205 @@
+class WrapperClass {
+int abstract(int x) {
+if (x == 0) return 42;
+return abstract(x - 1);
+}
+
+int as(int x) {
+if (x == 0) return 42;
+return as(x - 1);
+}
+
+int covariant(int x) {
+if (x == 0) return 42;
+return covariant(x - 1);
+}
+
+int deferred(int x) {
+if (x == 0) return 42;
+return deferred(x - 1);
+}
+
+int dynamic(int x) {
+if (x == 0) return 42;
+return dynamic(x - 1);
+}
+
+int export(int x) {
+if (x == 0) return 42;
+return export(x - 1);
+}
+
+int external(int x) {
+if (x == 0) return 42;
+return external(x - 1);
+}
+
+int factory(int x) {
+if (x == 0) return 42;
+return factory(x - 1);
+}
+
+int Function(int x) {
+if (x == 0) return 42;
+return Function(x - 1);
+}
+
+int get(int x) {
+if (x == 0) return 42;
+return get(x - 1);
+}
+
+int implements(int x) {
+if (x == 0) return 42;
+return implements(x - 1);
+}
+
+int import(int x) {
+if (x == 0) return 42;
+return import(x - 1);
+}
+
+int interface(int x) {
+if (x == 0) return 42;
+return interface(x - 1);
+}
+
+int library(int x) {
+if (x == 0) return 42;
+return library(x - 1);
+}
+
+int operator(int x) {
+if (x == 0) return 42;
+return operator(x - 1);
+}
+
+int mixin(int x) {
+if (x == 0) return 42;
+return mixin(x - 1);
+}
+
+int part(int x) {
+if (x == 0) return 42;
+return part(x - 1);
+}
+
+int set(int x) {
+if (x == 0) return 42;
+return set(x - 1);
+}
+
+int static(int x) {
+if (x == 0) return 42;
+return static(x - 1);
+}
+
+int typedef(int x) {
+if (x == 0) return 42;
+return typedef(x - 1);
+}
+}
+
+
+class[KeywordToken] WrapperClass[StringToken] {[BeginToken]
+int[StringToken] abstract[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] abstract[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] as[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] as[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] covariant[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] covariant[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] deferred[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] deferred[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] dynamic[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] dynamic[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] export[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] export[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] external[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] external[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] factory[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] factory[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] Function[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] Function[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] get[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] implements[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] implements[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] import[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] import[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] interface[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] interface[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] library[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] library[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] operator[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] operator[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] mixin[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] mixin[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] part[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] part[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] set[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] set[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] static[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] static[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] typedef[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] typedef[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.scanner.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.scanner.expect
new file mode 100644
index 0000000..055374b
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.scanner.expect
@@ -0,0 +1,205 @@
+class WrapperClass {
+int abstract(int x) {
+if (x == 0) return 42;
+return abstract(x - 1);
+}
+
+int as(int x) {
+if (x == 0) return 42;
+return as(x - 1);
+}
+
+int covariant(int x) {
+if (x == 0) return 42;
+return covariant(x - 1);
+}
+
+int deferred(int x) {
+if (x == 0) return 42;
+return deferred(x - 1);
+}
+
+int dynamic(int x) {
+if (x == 0) return 42;
+return dynamic(x - 1);
+}
+
+int export(int x) {
+if (x == 0) return 42;
+return export(x - 1);
+}
+
+int external(int x) {
+if (x == 0) return 42;
+return external(x - 1);
+}
+
+int factory(int x) {
+if (x == 0) return 42;
+return factory(x - 1);
+}
+
+int Function(int x) {
+if (x == 0) return 42;
+return Function(x - 1);
+}
+
+int get(int x) {
+if (x == 0) return 42;
+return get(x - 1);
+}
+
+int implements(int x) {
+if (x == 0) return 42;
+return implements(x - 1);
+}
+
+int import(int x) {
+if (x == 0) return 42;
+return import(x - 1);
+}
+
+int interface(int x) {
+if (x == 0) return 42;
+return interface(x - 1);
+}
+
+int library(int x) {
+if (x == 0) return 42;
+return library(x - 1);
+}
+
+int operator(int x) {
+if (x == 0) return 42;
+return operator(x - 1);
+}
+
+int mixin(int x) {
+if (x == 0) return 42;
+return mixin(x - 1);
+}
+
+int part(int x) {
+if (x == 0) return 42;
+return part(x - 1);
+}
+
+int set(int x) {
+if (x == 0) return 42;
+return set(x - 1);
+}
+
+int static(int x) {
+if (x == 0) return 42;
+return static(x - 1);
+}
+
+int typedef(int x) {
+if (x == 0) return 42;
+return typedef(x - 1);
+}
+}
+
+
+class[KeywordToken] WrapperClass[StringToken] {[BeginToken]
+int[StringToken] abstract[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] abstract[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] as[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] as[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] covariant[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] covariant[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] deferred[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] deferred[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] dynamic[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] dynamic[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] export[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] export[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] external[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] external[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] factory[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] factory[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] Function[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] Function[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] get[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] implements[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] implements[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] import[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] import[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] interface[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] interface[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] library[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] library[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] operator[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] operator[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] mixin[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] mixin[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] part[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] part[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] set[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] set[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] static[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] static[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] typedef[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] typedef[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart
new file mode 100644
index 0000000..ad56230
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart
@@ -0,0 +1,20 @@
+int abstract = 42;
+int as = 42;
+int covariant = 42;
+int deferred = 42;
+int dynamic = 42;
+int export = 42;
+int external = 42;
+int factory = 42;
+int Function = 42;
+int get = 42;
+int implements = 42;
+int import = 42;
+int interface = 42;
+int library = 42;
+int operator = 42;
+int mixin = 42;
+int part = 42;
+int set = 42;
+int static = 42;
+int typedef = 42;
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.expect
new file mode 100644
index 0000000..77809be
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.expect
@@ -0,0 +1,242 @@
+beginCompilationUnit(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(abstract)
+ handleType(int, null)
+ handleIdentifier(abstract, topLevelVariableDeclaration)
+ beginFieldInitializer(=)
+ handleLiteralInt(42)
+ endFieldInitializer(=, ;)
+ endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(as)
+ handleType(int, null)
+ handleIdentifier(as, topLevelVariableDeclaration)
+ beginFieldInitializer(=)
+ handleLiteralInt(42)
+ endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(covariant)
+handleType(int, null)
+handleIdentifier(covariant, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+ handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(deferred)
+handleType(int, null)
+handleIdentifier(deferred, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(dynamic)
+handleType(int, null)
+handleIdentifier(dynamic, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(export)
+handleType(int, null)
+handleIdentifier(export, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(external)
+handleType(int, null)
+handleIdentifier(external, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(factory)
+handleType(int, null)
+handleIdentifier(factory, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(Function)
+handleType(int, null)
+handleIdentifier(Function, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(get)
+handleType(int, null)
+handleIdentifier(get, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(implements)
+handleType(int, null)
+handleIdentifier(implements, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(import)
+handleType(int, null)
+handleIdentifier(import, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(interface)
+handleType(int, null)
+handleIdentifier(interface, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(library)
+handleType(int, null)
+handleIdentifier(library, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(operator)
+handleType(int, null)
+handleIdentifier(operator, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(mixin)
+handleType(int, null)
+handleIdentifier(mixin, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(part)
+handleType(int, null)
+handleIdentifier(part, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(set)
+handleType(int, null)
+handleIdentifier(set, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(static)
+handleType(int, null)
+handleIdentifier(static, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration(int)
+beginMetadataStar(int)
+endMetadataStar(0)
+beginTopLevelMember(int)
+handleIdentifier(int, typeReference)
+handleNoTypeArguments(typedef)
+handleType(int, null)
+handleIdentifier(typedef, topLevelVariableDeclaration)
+beginFieldInitializer(=)
+handleLiteralInt(42)
+endFieldInitializer(=, ;)
+endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelDeclaration()
+endCompilationUnit(20, )
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.intertwined.expect
new file mode 100644
index 0000000..eed1e21
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.intertwined.expect
@@ -0,0 +1,466 @@
+parseUnit(int)
+ skipErrorTokens(int)
+ listener: beginCompilationUnit(int)
+ syntheticPreviousToken(int)
+ parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+ parseMetadataStar()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl()
+ listener: beginTopLevelMember(int)
+ parseFields(, null, null, null, null, null, , Instance of 'SimpleType', abstract, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(abstract)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(abstract, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(abstract, abstract, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(as)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(as, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(as, as, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(covariant)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(covariant, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(covariant, covariant, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(deferred)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(deferred, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(deferred, deferred, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(dynamic)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(dynamic, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(dynamic, dynamic, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(export)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(export, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(export, export, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(external)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(external, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(external, external, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(factory)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(factory, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(factory, factory, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(Function)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(Function, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(Function, Function, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(get)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(get, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(get, get, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(implements)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(implements, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(implements, implements, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(import)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(import, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(import, import, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(interface)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(interface, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(interface, interface, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(library)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(library, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(library, library, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(operator)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(operator, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(operator, operator, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(mixin)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(mixin, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(mixin, mixin, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(part)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(part, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(part, part, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(set)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(set, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(set, set, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(static)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(static, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(static, static, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+ parseMetadataStar(;)
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(;)
+ listener: beginTopLevelMember(int)
+ parseFields(;, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.TopLevel, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(typedef)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelVariableDeclaration)
+ listener: handleIdentifier(typedef, topLevelVariableDeclaration)
+ parseFieldInitializerOpt(typedef, typedef, null, null, DeclarationKind.TopLevel, null)
+ listener: beginFieldInitializer(=)
+ parseExpression(=)
+ parsePrecedenceExpression(=, 1, true)
+ parseUnaryExpression(=, true)
+ parsePrimary(=, expression)
+ parseLiteralInt(=)
+ listener: handleLiteralInt(42)
+ listener: endFieldInitializer(=, ;)
+ listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+ listener: endTopLevelDeclaration()
+ reportAllErrorTokens(int)
+ listener: endCompilationUnit(20, )
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.parser.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.parser.expect
new file mode 100644
index 0000000..9b81eaf
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.parser.expect
@@ -0,0 +1,43 @@
+int abstract = 42;
+int as = 42;
+int covariant = 42;
+int deferred = 42;
+int dynamic = 42;
+int export = 42;
+int external = 42;
+int factory = 42;
+int Function = 42;
+int get = 42;
+int implements = 42;
+int import = 42;
+int interface = 42;
+int library = 42;
+int operator = 42;
+int mixin = 42;
+int part = 42;
+int set = 42;
+int static = 42;
+int typedef = 42;
+
+
+int[StringToken] abstract[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] as[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] covariant[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] deferred[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] dynamic[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] export[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] external[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] factory[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] Function[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] get[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] implements[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] import[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] interface[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] library[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] operator[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] mixin[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] part[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] set[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] static[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] typedef[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.scanner.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.scanner.expect
new file mode 100644
index 0000000..9b81eaf
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.scanner.expect
@@ -0,0 +1,43 @@
+int abstract = 42;
+int as = 42;
+int covariant = 42;
+int deferred = 42;
+int dynamic = 42;
+int export = 42;
+int external = 42;
+int factory = 42;
+int Function = 42;
+int get = 42;
+int implements = 42;
+int import = 42;
+int interface = 42;
+int library = 42;
+int operator = 42;
+int mixin = 42;
+int part = 42;
+int set = 42;
+int static = 42;
+int typedef = 42;
+
+
+int[StringToken] abstract[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] as[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] covariant[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] deferred[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] dynamic[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] export[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] external[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] factory[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] Function[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] get[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] implements[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] import[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] interface[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] library[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] operator[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] mixin[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] part[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] set[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] static[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+int[StringToken] typedef[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart
new file mode 100644
index 0000000..aa2717a
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart
@@ -0,0 +1,99 @@
+int abstract(int x) {
+ if (x == 0) return 42;
+ return abstract(x - 1);
+}
+
+int as(int x) {
+ if (x == 0) return 42;
+ return as(x - 1);
+}
+
+int covariant(int x) {
+ if (x == 0) return 42;
+ return covariant(x - 1);
+}
+
+int deferred(int x) {
+ if (x == 0) return 42;
+ return deferred(x - 1);
+}
+
+int dynamic(int x) {
+ if (x == 0) return 42;
+ return dynamic(x - 1);
+}
+
+int export(int x) {
+ if (x == 0) return 42;
+ return export(x - 1);
+}
+
+int external(int x) {
+ if (x == 0) return 42;
+ return external(x - 1);
+}
+
+int factory(int x) {
+ if (x == 0) return 42;
+ return factory(x - 1);
+}
+
+int Function(int x) {
+ if (x == 0) return 42;
+ return Function(x - 1);
+}
+
+int get(int x) {
+ if (x == 0) return 42;
+ return get(x - 1);
+}
+
+int implements(int x) {
+ if (x == 0) return 42;
+ return implements(x - 1);
+}
+
+int import(int x) {
+ if (x == 0) return 42;
+ return import(x - 1);
+}
+
+int interface(int x) {
+ if (x == 0) return 42;
+ return interface(x - 1);
+}
+
+int library(int x) {
+ if (x == 0) return 42;
+ return library(x - 1);
+}
+
+int operator(int x) {
+ if (x == 0) return 42;
+ return operator(x - 1);
+}
+
+int mixin(int x) {
+ if (x == 0) return 42;
+ return mixin(x - 1);
+}
+
+int part(int x) {
+ if (x == 0) return 42;
+ return part(x - 1);
+}
+
+int set(int x) {
+ if (x == 0) return 42;
+ return set(x - 1);
+}
+
+int static(int x) {
+ if (x == 0) return 42;
+ return static(x - 1);
+}
+
+int typedef(int x) {
+ if (x == 0) return 42;
+ return typedef(x - 1);
+}
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.expect
new file mode 100644
index 0000000..e32cd8e
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.expect
@@ -0,0 +1,1082 @@
+beginCompilationUnit(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(abstract)
+ handleType(int, null)
+ handleIdentifier(abstract, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(abstract, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(abstract, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(as)
+ handleType(int, null)
+ handleIdentifier(as, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(as, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(as, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(covariant)
+ handleType(int, null)
+ handleIdentifier(covariant, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(covariant, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(covariant, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(deferred)
+ handleType(int, null)
+ handleIdentifier(deferred, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(deferred, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(deferred, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(dynamic)
+ handleType(int, null)
+ handleIdentifier(dynamic, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(dynamic, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(dynamic, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(export)
+ handleType(int, null)
+ handleIdentifier(export, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(export, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(export, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(external)
+ handleType(int, null)
+ handleIdentifier(external, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(external, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(external, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(factory)
+ handleType(int, null)
+ handleIdentifier(factory, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(factory, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(factory, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(Function)
+ handleType(int, null)
+ handleIdentifier(Function, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(Function, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(Function, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(get)
+ handleType(int, null)
+ handleIdentifier(get, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(get, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(get, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(implements)
+ handleType(int, null)
+ handleIdentifier(implements, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(implements, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(implements, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(import)
+ handleType(int, null)
+ handleIdentifier(import, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(import, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(import, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(interface)
+ handleType(int, null)
+ handleIdentifier(interface, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(interface, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(interface, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(library)
+ handleType(int, null)
+ handleIdentifier(library, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(library, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(library, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(operator)
+ handleType(int, null)
+ handleIdentifier(operator, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(operator, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(operator, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(mixin)
+ handleType(int, null)
+ handleIdentifier(mixin, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(mixin, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(mixin, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(part)
+ handleType(int, null)
+ handleIdentifier(part, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(part, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(part, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(set)
+ handleType(int, null)
+ handleIdentifier(set, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(set, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(set, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(static)
+ handleType(int, null)
+ handleIdentifier(static, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(static, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(static, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration(int)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginTopLevelMember(int)
+ beginTopLevelMethod(}, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(typedef)
+ handleType(int, null)
+ handleIdentifier(typedef, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ beginIfStatement(if)
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(==)
+ handleNoArguments(==)
+ handleSend(x, ==)
+ beginBinaryExpression(==)
+ handleLiteralInt(0)
+ endBinaryExpression(==)
+ handleParenthesizedCondition(()
+ beginThenStatement(return)
+ beginReturnStatement(return)
+ handleLiteralInt(42)
+ endReturnStatement(true, return, ;)
+ endThenStatement(;)
+ endIfStatement(if, null)
+ beginReturnStatement(return)
+ handleIdentifier(typedef, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(x, expression)
+ handleNoTypeArguments(-)
+ handleNoArguments(-)
+ handleSend(x, -)
+ beginBinaryExpression(-)
+ handleLiteralInt(1)
+ endBinaryExpression(-)
+ endArguments(1, (, ))
+ handleSend(typedef, ;)
+ endReturnStatement(true, return, ;)
+ endBlockFunctionBody(2, {, })
+ endTopLevelMethod(int, null, })
+ endTopLevelDeclaration()
+endCompilationUnit(20, )
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.intertwined.expect
new file mode 100644
index 0000000..3c006e5
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.intertwined.expect
@@ -0,0 +1,2606 @@
+parseUnit(int)
+ skipErrorTokens(int)
+ listener: beginCompilationUnit(int)
+ syntheticPreviousToken(int)
+ parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+ parseMetadataStar()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl()
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(, null, , Instance of 'SimpleType', null, abstract)
+ listener: beginTopLevelMethod(, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(abstract)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(abstract, topLevelFunctionDeclaration)
+ parseMethodTypeVar(abstract)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(abstract, abstract, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(abstract, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(abstract, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(abstract)
+ parseArguments(abstract)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(abstract, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, as)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(as)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(as, topLevelFunctionDeclaration)
+ parseMethodTypeVar(as)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(as, as, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(as, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(as, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(as)
+ parseArguments(as)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(as, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, covariant)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(covariant)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(covariant, topLevelFunctionDeclaration)
+ parseMethodTypeVar(covariant)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(covariant, covariant, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(covariant, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(covariant, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(covariant)
+ parseArguments(covariant)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(covariant, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, deferred)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(deferred)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(deferred, topLevelFunctionDeclaration)
+ parseMethodTypeVar(deferred)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(deferred, deferred, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(deferred, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(deferred, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(deferred)
+ parseArguments(deferred)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(deferred, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, dynamic)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(dynamic)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(dynamic, topLevelFunctionDeclaration)
+ parseMethodTypeVar(dynamic)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(dynamic, dynamic, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(dynamic, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(dynamic, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(dynamic)
+ parseArguments(dynamic)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(dynamic, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, export)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(export)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(export, topLevelFunctionDeclaration)
+ parseMethodTypeVar(export)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(export, export, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(export, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(export, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(export)
+ parseArguments(export)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(export, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, external)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(external)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(external, topLevelFunctionDeclaration)
+ parseMethodTypeVar(external)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(external, external, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(external, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(external, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(external)
+ parseArguments(external)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(external, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, factory)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(factory)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(factory, topLevelFunctionDeclaration)
+ parseMethodTypeVar(factory)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(factory, factory, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(factory, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(factory, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(factory)
+ parseArguments(factory)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(factory, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, Function)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(Function)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(Function, topLevelFunctionDeclaration)
+ parseMethodTypeVar(Function)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(Function, Function, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(Function, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(Function, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(Function)
+ parseArguments(Function)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(Function, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, get)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(get)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(get, topLevelFunctionDeclaration)
+ parseMethodTypeVar(get)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(get, get, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(get, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(get, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(get)
+ parseArguments(get)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(get, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, implements)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(implements)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(implements, topLevelFunctionDeclaration)
+ parseMethodTypeVar(implements)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(implements, implements, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(implements, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(implements, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(implements)
+ parseArguments(implements)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(implements, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, import)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(import)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(import, topLevelFunctionDeclaration)
+ parseMethodTypeVar(import)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(import, import, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(import, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(import, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(import)
+ parseArguments(import)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(import, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, interface)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(interface)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(interface, topLevelFunctionDeclaration)
+ parseMethodTypeVar(interface)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(interface, interface, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(interface, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(interface, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(interface)
+ parseArguments(interface)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(interface, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, library)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(library)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(library, topLevelFunctionDeclaration)
+ parseMethodTypeVar(library)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(library, library, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(library, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(library, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(library)
+ parseArguments(library)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(library, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, operator)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(operator)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(operator, topLevelFunctionDeclaration)
+ parseMethodTypeVar(operator)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(operator, operator, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(operator, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(operator, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(operator)
+ parseArguments(operator)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(operator, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, mixin)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(mixin)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(mixin, topLevelFunctionDeclaration)
+ parseMethodTypeVar(mixin)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(mixin, mixin, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(mixin, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(mixin, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(mixin)
+ parseArguments(mixin)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(mixin, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, part)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(part)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(part, topLevelFunctionDeclaration)
+ parseMethodTypeVar(part)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(part, part, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(part, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(part, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(part)
+ parseArguments(part)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(part, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, set)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(set)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(set, topLevelFunctionDeclaration)
+ parseMethodTypeVar(set)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(set, set, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(set, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(set, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(set)
+ parseArguments(set)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(set, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, static)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(static)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(static, topLevelFunctionDeclaration)
+ parseMethodTypeVar(static)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(static, static, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(static, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(static, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(static)
+ parseArguments(static)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(static, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration(int)
+ parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+ parseMetadataStar(})
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl(})
+ listener: beginTopLevelMember(int)
+ parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, typedef)
+ listener: beginTopLevelMethod(}, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(typedef)
+ listener: handleType(int, null)
+ ensureIdentifier(int, topLevelFunctionDeclaration)
+ listener: handleIdentifier(typedef, topLevelFunctionDeclaration)
+ parseMethodTypeVar(typedef)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(typedef, typedef, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(typedef, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, if)
+ parseStatement({)
+ parseStatementX({)
+ parseIfStatement({)
+ listener: beginIfStatement(if)
+ ensureParenthesizedCondition(if)
+ parseExpressionInParenthesisRest(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(==)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(==)
+ listener: handleSend(x, ==)
+ listener: beginBinaryExpression(==)
+ parsePrecedenceExpression(==, 8, true)
+ parseUnaryExpression(==, true)
+ parsePrimary(==, expression)
+ parseLiteralInt(==)
+ listener: handleLiteralInt(0)
+ listener: endBinaryExpression(==)
+ ensureCloseParen(0, ()
+ listener: handleParenthesizedCondition(()
+ listener: beginThenStatement(return)
+ parseStatement())
+ parseStatementX())
+ parseReturnStatement())
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ parseLiteralInt(return)
+ listener: handleLiteralInt(42)
+ ensureSemicolon(42)
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ listener: endThenStatement(;)
+ listener: endIfStatement(if, null)
+ notEofOrValue(}, return)
+ parseStatement(;)
+ parseStatementX(;)
+ parseReturnStatement(;)
+ listener: beginReturnStatement(return)
+ parseExpression(return)
+ parsePrecedenceExpression(return, 1, true)
+ parseUnaryExpression(return, true)
+ parsePrimary(return, expression)
+ inPlainSync()
+ parseSendOrFunctionLiteral(return, expression)
+ looksLikeFunctionBody(;)
+ parseSend(return, expression)
+ ensureIdentifier(return, expression)
+ inPlainSync()
+ listener: handleIdentifier(typedef, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(typedef)
+ parseArguments(typedef)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ parseExpression(()
+ parsePrecedenceExpression((, 1, true)
+ parseUnaryExpression((, true)
+ parsePrimary((, expression)
+ parseSendOrFunctionLiteral((, expression)
+ parseSend((, expression)
+ ensureIdentifier((, expression)
+ listener: handleIdentifier(x, expression)
+ listener: handleNoTypeArguments(-)
+ parseArgumentsOpt(x)
+ listener: handleNoArguments(-)
+ listener: handleSend(x, -)
+ listener: beginBinaryExpression(-)
+ parsePrecedenceExpression(-, 14, true)
+ parseUnaryExpression(-, true)
+ parsePrimary(-, expression)
+ parseLiteralInt(-)
+ listener: handleLiteralInt(1)
+ listener: endBinaryExpression(-)
+ listener: endArguments(1, (, ))
+ listener: handleSend(typedef, ;)
+ ensureSemicolon())
+ listener: endReturnStatement(true, return, ;)
+ inGenerator()
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(2, {, })
+ listener: endTopLevelMethod(int, null, })
+ listener: endTopLevelDeclaration()
+ reportAllErrorTokens(int)
+ listener: endCompilationUnit(20, )
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.parser.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.parser.expect
new file mode 100644
index 0000000..cef190a
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.parser.expect
@@ -0,0 +1,201 @@
+int abstract(int x) {
+if (x == 0) return 42;
+return abstract(x - 1);
+}
+
+int as(int x) {
+if (x == 0) return 42;
+return as(x - 1);
+}
+
+int covariant(int x) {
+if (x == 0) return 42;
+return covariant(x - 1);
+}
+
+int deferred(int x) {
+if (x == 0) return 42;
+return deferred(x - 1);
+}
+
+int dynamic(int x) {
+if (x == 0) return 42;
+return dynamic(x - 1);
+}
+
+int export(int x) {
+if (x == 0) return 42;
+return export(x - 1);
+}
+
+int external(int x) {
+if (x == 0) return 42;
+return external(x - 1);
+}
+
+int factory(int x) {
+if (x == 0) return 42;
+return factory(x - 1);
+}
+
+int Function(int x) {
+if (x == 0) return 42;
+return Function(x - 1);
+}
+
+int get(int x) {
+if (x == 0) return 42;
+return get(x - 1);
+}
+
+int implements(int x) {
+if (x == 0) return 42;
+return implements(x - 1);
+}
+
+int import(int x) {
+if (x == 0) return 42;
+return import(x - 1);
+}
+
+int interface(int x) {
+if (x == 0) return 42;
+return interface(x - 1);
+}
+
+int library(int x) {
+if (x == 0) return 42;
+return library(x - 1);
+}
+
+int operator(int x) {
+if (x == 0) return 42;
+return operator(x - 1);
+}
+
+int mixin(int x) {
+if (x == 0) return 42;
+return mixin(x - 1);
+}
+
+int part(int x) {
+if (x == 0) return 42;
+return part(x - 1);
+}
+
+int set(int x) {
+if (x == 0) return 42;
+return set(x - 1);
+}
+
+int static(int x) {
+if (x == 0) return 42;
+return static(x - 1);
+}
+
+int typedef(int x) {
+if (x == 0) return 42;
+return typedef(x - 1);
+}
+
+
+int[StringToken] abstract[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] abstract[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] as[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] as[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] covariant[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] covariant[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] deferred[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] deferred[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] dynamic[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] dynamic[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] export[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] export[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] external[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] external[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] factory[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] factory[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] Function[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] Function[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] get[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] implements[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] implements[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] import[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] import[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] interface[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] interface[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] library[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] library[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] operator[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] operator[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] mixin[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] mixin[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] part[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] part[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] set[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] set[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] static[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] static[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] typedef[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] typedef[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.scanner.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.scanner.expect
new file mode 100644
index 0000000..cef190a
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.scanner.expect
@@ -0,0 +1,201 @@
+int abstract(int x) {
+if (x == 0) return 42;
+return abstract(x - 1);
+}
+
+int as(int x) {
+if (x == 0) return 42;
+return as(x - 1);
+}
+
+int covariant(int x) {
+if (x == 0) return 42;
+return covariant(x - 1);
+}
+
+int deferred(int x) {
+if (x == 0) return 42;
+return deferred(x - 1);
+}
+
+int dynamic(int x) {
+if (x == 0) return 42;
+return dynamic(x - 1);
+}
+
+int export(int x) {
+if (x == 0) return 42;
+return export(x - 1);
+}
+
+int external(int x) {
+if (x == 0) return 42;
+return external(x - 1);
+}
+
+int factory(int x) {
+if (x == 0) return 42;
+return factory(x - 1);
+}
+
+int Function(int x) {
+if (x == 0) return 42;
+return Function(x - 1);
+}
+
+int get(int x) {
+if (x == 0) return 42;
+return get(x - 1);
+}
+
+int implements(int x) {
+if (x == 0) return 42;
+return implements(x - 1);
+}
+
+int import(int x) {
+if (x == 0) return 42;
+return import(x - 1);
+}
+
+int interface(int x) {
+if (x == 0) return 42;
+return interface(x - 1);
+}
+
+int library(int x) {
+if (x == 0) return 42;
+return library(x - 1);
+}
+
+int operator(int x) {
+if (x == 0) return 42;
+return operator(x - 1);
+}
+
+int mixin(int x) {
+if (x == 0) return 42;
+return mixin(x - 1);
+}
+
+int part(int x) {
+if (x == 0) return 42;
+return part(x - 1);
+}
+
+int set(int x) {
+if (x == 0) return 42;
+return set(x - 1);
+}
+
+int static(int x) {
+if (x == 0) return 42;
+return static(x - 1);
+}
+
+int typedef(int x) {
+if (x == 0) return 42;
+return typedef(x - 1);
+}
+
+
+int[StringToken] abstract[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] abstract[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] as[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] as[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] covariant[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] covariant[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] deferred[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] deferred[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] dynamic[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] dynamic[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] export[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] export[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] external[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] external[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] factory[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] factory[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] Function[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] Function[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] get[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] implements[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] implements[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] import[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] import[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] interface[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] interface[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] library[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] library[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] operator[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] operator[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] mixin[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] mixin[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] part[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] part[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] set[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] set[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] static[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] static[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+int[StringToken] typedef[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
+return[KeywordToken] typedef[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/kernel/lib/text/text_serialization_verifier.dart b/pkg/kernel/lib/text/text_serialization_verifier.dart
index 44e9240..9b83f3c 100644
--- a/pkg/kernel/lib/text/text_serialization_verifier.dart
+++ b/pkg/kernel/lib/text/text_serialization_verifier.dart
@@ -188,7 +188,8 @@
node is VoidType ||
node is BottomType ||
node is FunctionType ||
- node is TypeParameterType;
+ node is TypeParameterType ||
+ node is InterfaceType;
static bool isExpressionSupported(Expression node) =>
node is StringLiteral ||
diff --git a/pkg/kernel/lib/text/text_serializer.dart b/pkg/kernel/lib/text/text_serializer.dart
index 1b8ddd4..70fa064 100644
--- a/pkg/kernel/lib/text/text_serializer.dart
+++ b/pkg/kernel/lib/text/text_serializer.dart
@@ -879,6 +879,7 @@
String visitBottomType(BottomType _) => "bottom";
String visitFunctionType(FunctionType _) => "->";
String visitTypeParameterType(TypeParameterType _) => "par";
+ String visitInterfaceType(InterfaceType _) => "interface";
}
const TextSerializer<InvalidType> invalidTypeSerializer =
@@ -970,6 +971,21 @@
return new TypeParameterType(tuple.first, Nullability.legacy, tuple.second);
}
+TextSerializer<InterfaceType> interfaceTypeSerializer = new Wrapped(
+ unwrapInterfaceType,
+ wrapInterfaceType,
+ Tuple2Serializer(const CanonicalNameSerializer(),
+ new ListSerializer(dartTypeSerializer)));
+
+Tuple2<CanonicalName, List<DartType>> unwrapInterfaceType(InterfaceType node) {
+ return new Tuple2(node.className.canonicalName, node.typeArguments);
+}
+
+InterfaceType wrapInterfaceType(Tuple2<CanonicalName, List<DartType>> tuple) {
+ return new InterfaceType.byReference(
+ tuple.first.reference, Nullability.legacy, tuple.second);
+}
+
Case<DartType> dartTypeSerializer =
new Case.uninitialized(const DartTypeTagger());
@@ -1329,6 +1345,7 @@
"bottom": bottomTypeSerializer,
"->": functionTypeSerializer,
"par": typeParameterTypeSerializer,
+ "interface": interfaceTypeSerializer,
});
statementSerializer.registerTags({
"expr": expressionStatementSerializer,
diff --git a/pkg/kernel/test/text_serializer_from_kernel_nodes_test.dart b/pkg/kernel/test/text_serializer_from_kernel_nodes_test.dart
index eb2f032..8035631 100644
--- a/pkg/kernel/test/text_serializer_from_kernel_nodes_test.dart
+++ b/pkg/kernel/test/text_serializer_from_kernel_nodes_test.dart
@@ -458,6 +458,32 @@
new DeserializationEnvironment(null), new CanonicalName.root()),
serializer: librarySerializer);
}(),
+ () {
+ Class a = Class(name: "A");
+ Procedure foo = Procedure(
+ Name("foo"),
+ ProcedureKind.Method,
+ FunctionNode(ReturnStatement(NullLiteral()),
+ returnType: InterfaceType(a, Nullability.legacy)),
+ isStatic: true);
+ Library library = Library(Uri(scheme: "package", path: "foo/bar.dart"),
+ classes: [a], procedures: [foo]);
+ Component component = Component(libraries: [library]);
+ component.computeCanonicalNames();
+ return new TestCase<Library>(
+ name: 'class A{} A foo() => null;',
+ node: library,
+ expectation: ''
+ '(legacy "package:foo/bar.dart"'
+ ' ((static-method (public "foo")'
+ ' (sync () () () () () () (interface "package:foo/bar.dart::A" ())'
+ ' (ret (null))))))',
+ serializationState:
+ new SerializationState(new SerializationEnvironment(null)),
+ deserializationState: new DeserializationState(
+ new DeserializationEnvironment(null), component.root),
+ serializer: librarySerializer);
+ }(),
];
for (TestCase testCase in tests) {
String roundTripInput =
diff --git a/pkg/nnbd_migration/lib/nnbd_migration.dart b/pkg/nnbd_migration/lib/nnbd_migration.dart
index d7d29f4..7388f0c 100644
--- a/pkg/nnbd_migration/lib/nnbd_migration.dart
+++ b/pkg/nnbd_migration/lib/nnbd_migration.dart
@@ -45,6 +45,21 @@
kind: NullabilityFixKind.checkExpressionDueToHint,
);
+ /// A compound assignment's combiner operator returns a type that isn't
+ /// assignable to the LHS of the assignment.
+ static const compoundAssignmentHasBadCombinedType =
+ const NullabilityFixDescription._(
+ appliedMessage: 'Compound assignment has bad combined type',
+ kind: NullabilityFixKind.compoundAssignmentHasBadCombinedType,
+ );
+
+ /// A compound assignment's LHS has a nullable type.
+ static const compoundAssignmentHasNullableSource =
+ const NullabilityFixDescription._(
+ appliedMessage: 'Compound assignment has nullable source',
+ kind: NullabilityFixKind.compoundAssignmentHasNullableSource,
+ );
+
/// Informative message: a condition of an if-test or conditional expression
/// will always evaluate to `false` in strong checking mode.
static const conditionFalseInStrongMode = const NullabilityFixDescription._(
@@ -99,6 +114,14 @@
'Null-aware access will be unnecessary in strong checking mode',
kind: NullabilityFixKind.nullAwarenessUnnecessaryInStrongMode);
+ /// Informative message: a null-aware assignment won't be necessary in strong
+ /// checking mode.
+ static const nullAwareAssignmentUnnecessaryInStrongMode =
+ const NullabilityFixDescription._(
+ appliedMessage:
+ 'Null-aware assignment will be unnecessary in strong checking mode',
+ kind: NullabilityFixKind.nullAwareAssignmentUnnecessaryInStrongMode);
+
static const otherCastExpression = const NullabilityFixDescription._(
appliedMessage: 'Added a cast to an expression (non-downcast)',
kind: NullabilityFixKind.otherCastExpression,
@@ -217,12 +240,15 @@
addType,
checkExpression,
checkExpressionDueToHint,
+ compoundAssignmentHasNullableSource,
+ compoundAssignmentHasBadCombinedType,
conditionFalseInStrongMode,
conditionTrueInStrongMode,
downcastExpression,
makeTypeNullable,
makeTypeNullableDueToHint,
nullAwarenessUnnecessaryInStrongMode,
+ nullAwareAssignmentUnnecessaryInStrongMode,
otherCastExpression,
removeAs,
removeDeadCode,
diff --git a/pkg/nnbd_migration/lib/src/edit_plan.dart b/pkg/nnbd_migration/lib/src/edit_plan.dart
index 6e4f5aa..d2004de 100644
--- a/pkg/nnbd_migration/lib/src/edit_plan.dart
+++ b/pkg/nnbd_migration/lib/src/edit_plan.dart
@@ -392,6 +392,20 @@
return (plan as NodeProducingEditPlan)._getChanges(false);
}
+ /// Creates a new edit plan that adds an informative message to the given
+ /// [token].
+ ///
+ /// The created edit plan should be inserted into the list of inner plans for
+ /// a pass-through plan targeted at the [containingNode]. See [passThrough].
+ EditPlan informativeMessageForToken(AstNode containingNode, Token token,
+ {AtomicEditInfo info}) {
+ return _TokenChangePlan(containingNode, {
+ token.offset: [
+ AtomicEdit.delete(token.lexeme.length, info: info, isInformative: true)
+ ]
+ });
+ }
+
/// Creates a new edit plan that inserts the text indicated by [edits] at the
/// given [offset].
///
diff --git a/pkg/nnbd_migration/lib/src/fix_aggregator.dart b/pkg/nnbd_migration/lib/src/fix_aggregator.dart
index 9200694..e1548ab 100644
--- a/pkg/nnbd_migration/lib/src/fix_aggregator.dart
+++ b/pkg/nnbd_migration/lib/src/fix_aggregator.dart
@@ -302,6 +302,70 @@
}
/// Implementation of [NodeChange] specialized for operating on
+/// [AssignmentExpression] nodes.
+class NodeChangeForAssignment
+ extends NodeChangeForExpression<AssignmentExpression> {
+ /// Indicates whether the user should be warned that the assignment is a
+ /// compound assignment with a bad combined type (the return type of the
+ /// combiner isn't assignable to the the write type of the LHS).
+ bool isCompoundAssignmentWithBadCombinedType = false;
+
+ /// Indicates whether the user should be warned that the assignment is a
+ /// compound assignment with a nullable source type.
+ bool isCompoundAssignmentWithNullableSource = false;
+
+ /// Indicates whether the user should be warned that the assignment is a
+ /// null-aware assignment that will have no effect when strong checking is
+ /// enabled.
+ bool isWeakNullAware = false;
+
+ @override
+ Iterable<String> get _toStringParts => [
+ ...super._toStringParts,
+ if (isCompoundAssignmentWithBadCombinedType)
+ 'isCompoundAssignmentWithBadCombinedType',
+ if (isCompoundAssignmentWithNullableSource)
+ 'isCompoundAssignmentWithNullableSource',
+ if (isWeakNullAware) 'isWeakNullAware'
+ ];
+
+ @override
+ NodeProducingEditPlan _apply(
+ AssignmentExpression node, FixAggregator aggregator) {
+ var lhsPlan = aggregator.planForNode(node.leftHandSide);
+ EditPlan operatorPlan;
+ if (isCompoundAssignmentWithNullableSource) {
+ operatorPlan = aggregator.planner.informativeMessageForToken(
+ node, node.operator,
+ info: AtomicEditInfo(
+ NullabilityFixDescription.compoundAssignmentHasNullableSource,
+ const {}));
+ } else if (isCompoundAssignmentWithBadCombinedType) {
+ operatorPlan = aggregator.planner.informativeMessageForToken(
+ node, node.operator,
+ info: AtomicEditInfo(
+ NullabilityFixDescription.compoundAssignmentHasBadCombinedType,
+ const {}));
+ } else if (isWeakNullAware) {
+ operatorPlan = aggregator.planner.informativeMessageForToken(
+ node, node.operator,
+ info: AtomicEditInfo(
+ NullabilityFixDescription
+ .nullAwareAssignmentUnnecessaryInStrongMode,
+ const {}));
+ }
+ var rhsPlan = aggregator.planForNode(node.rightHandSide);
+ var innerPlans = <EditPlan>[
+ lhsPlan,
+ if (operatorPlan != null) operatorPlan,
+ rhsPlan
+ ];
+ return _applyExpression(aggregator,
+ aggregator.planner.passThrough(node, innerPlans: innerPlans));
+ }
+}
+
+/// Implementation of [NodeChange] specialized for operating on
/// [CompilationUnit] nodes.
class NodeChangeForCompilationUnit extends NodeChange<CompilationUnit> {
bool removeLanguageVersionComment = false;
@@ -833,6 +897,10 @@
NodeChangeForAsExpression();
@override
+ NodeChange visitAssignmentExpression(AssignmentExpression node) =>
+ NodeChangeForAssignment();
+
+ @override
NodeChange visitCompilationUnit(CompilationUnit node) =>
NodeChangeForCompilationUnit();
diff --git a/pkg/nnbd_migration/lib/src/fix_builder.dart b/pkg/nnbd_migration/lib/src/fix_builder.dart
index 60abe3f..bbec67f 100644
--- a/pkg/nnbd_migration/lib/src/fix_builder.dart
+++ b/pkg/nnbd_migration/lib/src/fix_builder.dart
@@ -25,6 +25,7 @@
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/utilities_dart.dart';
+import 'package:analyzer/src/task/strong/checker.dart';
import 'package:nnbd_migration/fix_reason_target.dart';
import 'package:nnbd_migration/instrumentation.dart';
import 'package:nnbd_migration/nnbd_migration.dart';
@@ -288,6 +289,9 @@
final Expando<bool> _shouldStayNullAware = Expando();
+ final Map<AssignmentExpression, _AssignmentExpressionHandler>
+ _assignmentExpressionHandlers = {};
+
FlowAnalysis<AstNode, Statement, Expression, PromotableElement, DartType>
_flowAnalysis;
@@ -423,37 +427,14 @@
@override
DartType modifyExpressionType(Expression node, DartType type) =>
_wrapExceptions(node, () => type, () {
- var hint =
- _fixBuilder._variables.getNullCheckHint(_fixBuilder.source, node);
- if (hint != null) {
- type = _addNullCheck(node, type,
- info: AtomicEditInfo(
- NullabilityFixDescription.checkExpressionDueToHint,
- {
- FixReasonTarget.root:
- FixReason_NullCheckHint(CodeReference.fromAstNode(node))
- },
- hintComment: hint),
- hint: hint);
+ var parent = node.parent;
+ if (parent is AssignmentExpression) {
+ return (_assignmentExpressionHandlers[parent] ??=
+ _AssignmentExpressionHandler(parent))
+ .modifySubexpressionType(this, node, type);
+ } else {
+ return _modifyRValueType(node, type);
}
- if (type.isDynamic) return type;
- var ancestor = _findNullabilityContextAncestor(node);
- DartType context = _getNullabilityContext(ancestor);
- if (!_fixBuilder._typeSystem.isSubtypeOf(type, context)) {
- // Either a cast or a null check is needed. We prefer to do a null
- // check if we can.
- var nonNullType = _fixBuilder._typeSystem.promoteToNonNull(type);
- if (_fixBuilder._typeSystem.isSubtypeOf(nonNullType, context)) {
- return _addNullCheck(node, type);
- } else {
- return _addCast(node, type, context);
- }
- }
- if (!_fixBuilder._typeSystem.isNullable(type)) return type;
- if (_needsNullCheckDueToStructure(ancestor)) {
- return _addNullCheck(node, type);
- }
- return type;
});
@override
@@ -519,33 +500,40 @@
}
}
- DartType _getNullabilityContext(Expression node) {
- var parent = node.parent;
- if (parent is AssignmentExpression) {
- var lhs = parent.leftHandSide;
- if (lhs is SimpleIdentifier) {
- var lhsElement = lhs.staticElement;
- if (lhsElement is PromotableElement) {
- var operatorType = parent.operator.type;
- switch (operatorType) {
- case TokenType.EQ:
- case TokenType.QUESTION_QUESTION_EQ:
- // When visiting an assignment to a local variable, if the
- // variable type is promoted, the resolver uses the promoted type
- // of the variable as the inference context, but it's ok to assign
- // a different type to the variable (un-doing the promotion). So
- // for migration purposes, we need to consider the context type to
- // be the unpromoted type. See
- // https://github.com/dart-lang/sdk/issues/41411.
- return lhsElement.type;
- default:
- break;
- }
- }
+ DartType _modifyRValueType(Expression node, DartType type,
+ {DartType context}) {
+ var hint =
+ _fixBuilder._variables.getNullCheckHint(_fixBuilder.source, node);
+ if (hint != null) {
+ type = _addNullCheck(node, type,
+ info: AtomicEditInfo(
+ NullabilityFixDescription.checkExpressionDueToHint,
+ {
+ FixReasonTarget.root:
+ FixReason_NullCheckHint(CodeReference.fromAstNode(node))
+ },
+ hintComment: hint),
+ hint: hint);
+ }
+ if (type.isDynamic) return type;
+ var ancestor = _findNullabilityContextAncestor(node);
+ context ??=
+ InferenceContext.getContext(ancestor) ?? DynamicTypeImpl.instance;
+ if (!_fixBuilder._typeSystem.isSubtypeOf(type, context)) {
+ // Either a cast or a null check is needed. We prefer to do a null
+ // check if we can.
+ var nonNullType = _fixBuilder._typeSystem.promoteToNonNull(type);
+ if (_fixBuilder._typeSystem.isSubtypeOf(nonNullType, context)) {
+ return _addNullCheck(node, type);
+ } else {
+ return _addCast(node, type, context);
}
}
- var context = InferenceContext.getContext(node) ?? DynamicTypeImpl.instance;
- return context;
+ if (!_fixBuilder._typeSystem.isNullable(type)) return type;
+ if (_needsNullCheckDueToStructure(ancestor)) {
+ return _addNullCheck(node, type);
+ }
+ return type;
}
bool _needsNullCheckDueToStructure(Expression node) {
@@ -639,6 +627,110 @@
/// Common supertype for problems reported by [FixBuilder._addProblem].
abstract class Problem {}
+/// Data structure keeping track of intermediate results when the fix builder
+/// is handling an assignment expression.
+class _AssignmentExpressionHandler {
+ /// The assignment expression in question.
+ final AssignmentExpression node;
+
+ /// For compound and null-aware assignments, the type read from the LHS.
+ /*late final*/ DartType readType;
+
+ /// The type that may be written to the LHS.
+ /*late final*/ DartType writeType;
+
+ /// The type that should be used as a context type when inferring the RHS.
+ DartType rhsContextType;
+
+ _AssignmentExpressionHandler(this.node);
+
+ /// Called after visiting the RHS of the assignment, to verify that for
+ /// compound assignments, the return value of the assignment is assignable to
+ /// [writeType].
+ void handleAssignmentRhs(
+ MigrationResolutionHooksImpl hooks, DartType rhsType) {
+ MethodElement combiner = node.staticElement;
+ if (combiner != null) {
+ var fixBuilder = hooks._fixBuilder;
+ var combinerReturnType =
+ fixBuilder._typeSystem.refineBinaryExpressionType(
+ readType,
+ node.operator.type,
+ rhsType,
+ combiner.returnType,
+ );
+ if (!fixBuilder._typeSystem.isSubtypeOf(combinerReturnType, writeType)) {
+ (fixBuilder._getChange(node) as NodeChangeForAssignment)
+ .isCompoundAssignmentWithBadCombinedType = true;
+ }
+ }
+ }
+
+ /// Called after visiting the LHS of the assignment. Records the [readType],
+ /// [writeType], and [rhsContextType]. Also verifies that for compound
+ /// assignments, the [readType] is non-nullable, and that for null-aware
+ /// assignments, the [readType] is nullable.
+ void handleLValueType(MigrationResolutionHooksImpl hooks,
+ TokenType operatorType, DartType resolvedType) {
+ assert(resolvedType.nullabilitySuffix != NullabilitySuffix.star);
+ // Provisionally store the resolved type as the type of the lhs, so that
+ // getReadType can fall back on it if necessary.
+ var lhs = node.leftHandSide;
+ lhs.staticType = resolvedType;
+ // The type passed in by the resolver for the LHS of an assignment is the
+ // "write type".
+ var writeType = resolvedType;
+ if (lhs is SimpleIdentifier) {
+ var element = lhs.staticElement;
+ if (element is PromotableElement) {
+ // However, if the LHS is a reference to a local variable that has
+ // been promoted, the resolver passes in the promoted type. We
+ // want to use the variable element's type, so that we consider it
+ // ok to assign a value to the variable that un-does the
+ // promotion. See https://github.com/dart-lang/sdk/issues/41411.
+ writeType = element.type;
+ }
+ }
+ assert(writeType.nullabilitySuffix != NullabilitySuffix.star);
+ this.writeType = writeType;
+ var fixBuilder = hooks._fixBuilder;
+ if (operatorType == TokenType.EQ) {
+ rhsContextType = writeType;
+ } else {
+ readType = getReadType(lhs);
+ assert(readType.nullabilitySuffix != NullabilitySuffix.star);
+ if (operatorType == TokenType.QUESTION_QUESTION_EQ) {
+ rhsContextType = writeType;
+ if (fixBuilder._typeSystem.isNonNullable(readType)) {
+ (fixBuilder._getChange(node) as NodeChangeForAssignment)
+ .isWeakNullAware = true;
+ }
+ } else {
+ if (!readType.isDynamic &&
+ fixBuilder._typeSystem.isPotentiallyNullable(readType)) {
+ (fixBuilder._getChange(node) as NodeChangeForAssignment)
+ .isCompoundAssignmentWithNullableSource = true;
+ }
+ }
+ }
+ }
+
+ /// Called after visiting the LHS or the RHS of the assignment.
+ DartType modifySubexpressionType(MigrationResolutionHooksImpl hooks,
+ Expression subexpression, DartType type) {
+ if (identical(subexpression, node.leftHandSide)) {
+ handleLValueType(hooks, node.operator.type, type);
+ return type;
+ } else {
+ assert(identical(subexpression, node.rightHandSide));
+ type =
+ hooks._modifyRValueType(subexpression, type, context: rhsContextType);
+ handleAssignmentRhs(hooks, type);
+ return type;
+ }
+ }
+}
+
/// Visitor that computes additional migrations on behalf of [FixBuilder] that
/// should be run after resolution
class _FixBuilderPostVisitor extends GeneralizingAstVisitor<void>
diff --git a/pkg/nnbd_migration/lib/src/front_end/info_builder.dart b/pkg/nnbd_migration/lib/src/front_end/info_builder.dart
index 86c298cc..e063963 100644
--- a/pkg/nnbd_migration/lib/src/front_end/info_builder.dart
+++ b/pkg/nnbd_migration/lib/src/front_end/info_builder.dart
@@ -186,13 +186,18 @@
// We could add an edit to add a `/*?*/` hint, but the offset is a
// little tricky.
break;
- case NullabilityFixKind.nullAwarenessUnnecessaryInStrongMode:
- case NullabilityFixKind.conditionTrueInStrongMode:
case NullabilityFixKind.conditionFalseInStrongMode:
+ case NullabilityFixKind.conditionTrueInStrongMode:
+ case NullabilityFixKind.nullAwarenessUnnecessaryInStrongMode:
+ case NullabilityFixKind.nullAwareAssignmentUnnecessaryInStrongMode:
// We don't offer any edits around weak-only code.
// TODO(paulberry): offer edits to delete the code that would be dead in
// strong mode (https://github.com/dart-lang/sdk/issues/41554).
break;
+ case NullabilityFixKind.compoundAssignmentHasBadCombinedType:
+ case NullabilityFixKind.compoundAssignmentHasNullableSource:
+ // We don't offer any edits around bad compound assignments.
+ break;
}
return edits;
}
diff --git a/pkg/nnbd_migration/lib/src/front_end/path_mapper.dart b/pkg/nnbd_migration/lib/src/front_end/path_mapper.dart
index 9205c30..e8ac01c 100644
--- a/pkg/nnbd_migration/lib/src/front_end/path_mapper.dart
+++ b/pkg/nnbd_migration/lib/src/front_end/path_mapper.dart
@@ -16,9 +16,17 @@
/// Initialize a newly created path mapper.
PathMapper(this.provider);
+ /// Gets the symbol used as a path separator on the local filesystem.
+ String get separator => provider.pathContext.separator;
+
/// Return the path of the HTML file used to view the content of the analyzed
/// file with the given [path].
String map(String path) {
- return Uri.file(path).path;
+ return provider.pathContext.toUri(path).path;
+ }
+
+ /// Returns the local filesystem path corresponding to the given [uri].
+ String reverseMap(Uri uri) {
+ return provider.pathContext.fromUri(uri);
}
}
diff --git a/pkg/nnbd_migration/lib/src/front_end/unit_renderer.dart b/pkg/nnbd_migration/lib/src/front_end/unit_renderer.dart
index 29aded6..d6653ab 100644
--- a/pkg/nnbd_migration/lib/src/front_end/unit_renderer.dart
+++ b/pkg/nnbd_migration/lib/src/front_end/unit_renderer.dart
@@ -23,9 +23,12 @@
/// "proposed edits" area, in the order in which they should be displayed.
@visibleForTesting
static const List<NullabilityFixKind> kindPriorityOrder = [
+ NullabilityFixKind.compoundAssignmentHasBadCombinedType,
+ NullabilityFixKind.compoundAssignmentHasNullableSource,
NullabilityFixKind.removeDeadCode,
NullabilityFixKind.conditionTrueInStrongMode,
NullabilityFixKind.conditionFalseInStrongMode,
+ NullabilityFixKind.nullAwareAssignmentUnnecessaryInStrongMode,
NullabilityFixKind.nullAwarenessUnnecessaryInStrongMode,
NullabilityFixKind.otherCastExpression,
NullabilityFixKind.checkExpression,
@@ -265,6 +268,12 @@
return '$count null check$s added';
case NullabilityFixKind.checkExpressionDueToHint:
return '$count null check hint$s converted to null check$s';
+ case NullabilityFixKind.compoundAssignmentHasBadCombinedType:
+ return '$count compound assignment$s could not be migrated (bad '
+ 'combined type)';
+ case NullabilityFixKind.compoundAssignmentHasNullableSource:
+ return '$count compound assignment$s could not be migrated (nullable '
+ 'source)';
case NullabilityFixKind.conditionTrueInStrongMode:
return '$count condition$s will be true in strong checking mode';
break;
@@ -278,6 +287,9 @@
case NullabilityFixKind.nullAwarenessUnnecessaryInStrongMode:
return '$count null-aware access$es will be unnecessary in strong '
'checking mode';
+ case NullabilityFixKind.nullAwareAssignmentUnnecessaryInStrongMode:
+ return '$count null-aware assignment$s will be unnecessary in strong '
+ 'checking mode';
case NullabilityFixKind.removeAs:
return '$count cast$s now unnecessary';
case NullabilityFixKind.removeDeadCode:
diff --git a/pkg/nnbd_migration/lib/src/preview/preview_site.dart b/pkg/nnbd_migration/lib/src/preview/preview_site.dart
index 5e6190d..3f212ff 100644
--- a/pkg/nnbd_migration/lib/src/preview/preview_site.dart
+++ b/pkg/nnbd_migration/lib/src/preview/preview_site.dart
@@ -8,8 +8,8 @@
import 'dart:math';
import 'dart:typed_data';
-import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:analysis_server/src/status/pages.dart';
+import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:nnbd_migration/src/front_end/migration_info.dart';
import 'package:nnbd_migration/src/front_end/migration_state.dart';
import 'package:nnbd_migration/src/front_end/path_mapper.dart';
@@ -116,6 +116,7 @@
Future<void> handleGetRequest(HttpRequest request) async {
var uri = request.uri;
var path = uri.path;
+ var decodedPath = pathMapper.reverseMap(uri);
try {
if (path == highlightCssPath) {
// Note: `return await` needed due to
@@ -130,14 +131,15 @@
// https://github.com/dart-lang/sdk/issues/39204
return await respond(request, NavigationTreePage(this));
} else if (path == '/' ||
- path == migrationInfo.includedRoot ||
- path == '${migrationInfo.includedRoot}/') {
+ decodedPath == migrationInfo.includedRoot ||
+ decodedPath ==
+ '${migrationInfo.includedRoot}${pathMapper.separator}') {
// Note: `return await` needed due to
// https://github.com/dart-lang/sdk/issues/39204
return await respond(request, IndexFilePage(this));
}
- var unitInfo = unitInfoMap[path];
+ var unitInfo = unitInfoMap[decodedPath];
if (unitInfo != null) {
if (uri.queryParameters.containsKey('inline')) {
// TODO(devoncarew): Ensure that we don't serve content outside of our
diff --git a/pkg/nnbd_migration/test/edit_plan_test.dart b/pkg/nnbd_migration/test/edit_plan_test.dart
index b9e52c0..910e7aa 100644
--- a/pkg/nnbd_migration/test/edit_plan_test.dart
+++ b/pkg/nnbd_migration/test/edit_plan_test.dart
@@ -535,6 +535,25 @@
'var x = 0; var y = 0;');
}
+ Future<void> test_informativeMessageForToken() async {
+ await analyze('f(x) => x + 1;');
+ var sum = findNode.binary('+');
+ var info = _MockInfo();
+ var changes = checkPlan(
+ planner.passThrough(sum, innerPlans: [
+ planner.informativeMessageForToken(sum, sum.operator, info: info)
+ ]),
+ 'f(x) => x + 1;',
+ expectedIncludingInformative: 'f(x) => x 1;');
+ var expectedOffset = sum.operator.offset;
+ expect(changes.keys, unorderedEquals([expectedOffset]));
+ expect(changes[expectedOffset], hasLength(1));
+ expect(changes[expectedOffset][0].length, '+'.length);
+ expect(changes[expectedOffset][0].replacement, '');
+ expect(changes[expectedOffset][0].isInformative, isTrue);
+ expect(changes[expectedOffset][0].info, same(info));
+ }
+
Future<void> test_insertText() async {
await analyze('final x = 1;');
var variableDeclarationList = findNode.variableDeclarationList('final');
@@ -1581,6 +1600,10 @@
}
}
+class _MockInfo implements AtomicEditInfo {
+ noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
+}
+
class _PrecedenceChecker extends UnifyingAstVisitor<void> {
final EditPlanner planner;
diff --git a/pkg/nnbd_migration/test/fix_aggregator_test.dart b/pkg/nnbd_migration/test/fix_aggregator_test.dart
index f3e3447..671c1f3 100644
--- a/pkg/nnbd_migration/test/fix_aggregator_test.dart
+++ b/pkg/nnbd_migration/test/fix_aggregator_test.dart
@@ -10,6 +10,7 @@
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/dart/element/type_provider.dart';
+import 'package:nnbd_migration/nnbd_migration.dart';
import 'package:nnbd_migration/src/decorated_type.dart';
import 'package:nnbd_migration/src/edit_plan.dart';
import 'package:nnbd_migration/src/fix_aggregator.dart';
@@ -54,6 +55,95 @@
expect(previewInfo.applyTo(code), 'f(a, b) => (a! + b!)!;');
}
+ Future<void> test_assignment_add_null_check() async {
+ var content = 'f(int x, int y) => x += y;';
+ await analyze(content);
+ var previewInfo = run({
+ findNode.assignment('+='): NodeChangeForAssignment()..addNullCheck(null)
+ });
+ expect(previewInfo.applyTo(code), 'f(int x, int y) => (x += y)!;');
+ }
+
+ Future<void> test_assignment_change_lhs() async {
+ var content = 'f(List<int> x, int y) => x[0] += y;';
+ await analyze(content);
+ var previewInfo = run({
+ findNode.assignment('+='): NodeChangeForAssignment(),
+ findNode.index('[0]').target: NodeChangeForExpression()
+ ..addNullCheck(null)
+ });
+ expect(previewInfo.applyTo(code), 'f(List<int> x, int y) => x![0] += y;');
+ }
+
+ Future<void> test_assignment_change_rhs() async {
+ var content = 'f(int x, int y) => x += y;';
+ await analyze(content);
+ var assignment = findNode.assignment('+=');
+ var previewInfo = run({
+ assignment: NodeChangeForAssignment(),
+ assignment.rightHandSide: NodeChangeForExpression()..addNullCheck(null)
+ });
+ expect(previewInfo.applyTo(code), 'f(int x, int y) => x += y!;');
+ }
+
+ Future<void> test_assignment_compound_with_bad_combined_type() async {
+ var content = 'f(int x, int y) => x += y;';
+ await analyze(content);
+ var previewInfo = run({
+ findNode.assignment('+='): NodeChangeForAssignment()
+ ..isCompoundAssignmentWithBadCombinedType = true
+ });
+ expect(previewInfo.applyTo(code), content);
+ expect(previewInfo, hasLength(1));
+ var edit = previewInfo[content.indexOf('+=')].single;
+ expect(edit.info.description,
+ NullabilityFixDescription.compoundAssignmentHasBadCombinedType);
+ expect(edit.isInformative, isTrue);
+ expect(edit.length, '+='.length);
+ }
+
+ Future<void> test_assignment_compound_with_nullable_source() async {
+ var content = 'f(int x, int y) => x += y;';
+ await analyze(content);
+ var previewInfo = run({
+ findNode.assignment('+='): NodeChangeForAssignment()
+ ..isCompoundAssignmentWithNullableSource = true
+ });
+ expect(previewInfo.applyTo(code), content);
+ expect(previewInfo, hasLength(1));
+ var edit = previewInfo[content.indexOf('+=')].single;
+ expect(edit.info.description,
+ NullabilityFixDescription.compoundAssignmentHasNullableSource);
+ expect(edit.isInformative, isTrue);
+ expect(edit.length, '+='.length);
+ }
+
+ Future<void> test_assignment_introduce_as() async {
+ var content = 'f(int x, int y) => x += y;';
+ await analyze(content);
+ var previewInfo = run({
+ findNode.assignment('+='): NodeChangeForAssignment()
+ ..introduceAs(nnbdTypeProvider.intType, null)
+ });
+ expect(previewInfo.applyTo(code), 'f(int x, int y) => (x += y) as int;');
+ }
+
+ Future<void> test_assignment_weak_null_aware() async {
+ var content = 'f(int x, int y) => x ??= y;';
+ await analyze(content);
+ var previewInfo = run({
+ findNode.assignment('??='): NodeChangeForAssignment()
+ ..isWeakNullAware = true
+ }, warnOnWeakCode: true);
+ expect(previewInfo.applyTo(code), content);
+ expect(previewInfo, hasLength(1));
+ var edit = previewInfo[content.indexOf('??=')].single;
+ expect(edit.info.description,
+ NullabilityFixDescription.nullAwareAssignmentUnnecessaryInStrongMode);
+ expect(edit.isInformative, isTrue);
+ expect(edit.length, '??='.length);
+ }
+
Future<void> test_eliminateDeadIf_changesInKeptCode() async {
await analyze('''
f(int i, int/*?*/ j) {
diff --git a/pkg/nnbd_migration/test/fix_builder_test.dart b/pkg/nnbd_migration/test/fix_builder_test.dart
index e8b600b..5212cf2 100644
--- a/pkg/nnbd_migration/test/fix_builder_test.dart
+++ b/pkg/nnbd_migration/test/fix_builder_test.dart
@@ -47,6 +47,18 @@
TypeMatcher<NodeChangeForDefaultFormalParameter>()
.having((c) => c.addRequiredKeyword, 'addRequiredKeyword', true);
+ static final isCompoundAssignmentNullableSource =
+ TypeMatcher<NodeChangeForAssignment>().having(
+ (c) => c.isCompoundAssignmentWithNullableSource,
+ 'isCompoundAssignmentWithNullableSource',
+ true);
+
+ static final isCompoundAssignmentBadCombinedType =
+ TypeMatcher<NodeChangeForAssignment>().having(
+ (c) => c.isCompoundAssignmentWithBadCombinedType,
+ 'isCompoundAssignmentWithBadCombinedType',
+ true);
+
static final isMakeNullable = TypeMatcher<NodeChangeForTypeAnnotation>()
.having((c) => c.makeNullable, 'makeNullable', true)
.having((c) => c.nullabilityHint, 'nullabilityHint', isNull);
@@ -84,6 +96,10 @@
TypeMatcher<NodeChangeForAnnotation>().having(
(c) => c.changeToRequiredKeyword, 'changeToRequiredKeyword', true);
+ static final isWeakNullAwareAssignment =
+ TypeMatcher<NodeChangeForAssignment>()
+ .having((c) => c.isWeakNullAware, 'isWeakNullAware', true);
+
DartType get dynamicType => postMigrationTypeProvider.dynamicType;
DartType get objectType => postMigrationTypeProvider.objectType;
@@ -349,7 +365,8 @@
// On the RHS of the `&&`, `x` is promoted to non-nullable, but it is still
// considered to be a nullable assignment target, so no null check is
// generated for `y`.
- visitSubexpression(findNode.binary('&&'), 'bool');
+ visitSubexpression(findNode.binary('&&'), 'bool',
+ changes: {findNode.assignment('??='): isWeakNullAwareAssignment});
}
Future<void>
@@ -1047,6 +1064,61 @@
visitSubexpression(findNode.booleanLiteral('true'), 'bool');
}
+ Future<void> test_compound_assignment_nullable_result_bad() async {
+ await analyze('''
+abstract class C {
+ C/*?*/ operator+(int i);
+}
+f(C c) {
+ c += 1;
+}
+''');
+ var assignment = findNode.assignment('+=');
+ visitSubexpression(assignment, 'C?',
+ changes: {assignment: isCompoundAssignmentBadCombinedType});
+ }
+
+ Future<void> test_compound_assignment_nullable_result_ok() async {
+ await analyze('''
+abstract class C {
+ C/*?*/ operator+(int i);
+}
+abstract class D {
+ void set x(C/*?*/ value);
+ C/*!*/ get x;
+ f() {
+ x += 1;
+ }
+}
+''');
+ var assignment = findNode.assignment('+=');
+ visitSubexpression(assignment, 'C?');
+ }
+
+ Future<void> test_compound_assignment_nullable_source() async {
+ await analyze('''
+_f(int/*?*/ x) {
+ x += 1;
+}
+''');
+ var assignment = findNode.assignment('+=');
+ visitSubexpression(assignment, 'int',
+ changes: {assignment: isCompoundAssignmentNullableSource});
+ }
+
+ Future<void> test_compound_assignment_potentially_nullable_source() async {
+ await analyze('''
+class C<T extends num/*?*/> {
+ _f(T/*!*/ x) {
+ x += 1;
+ }
+}
+''');
+ var assignment = findNode.assignment('+=');
+ visitSubexpression(assignment, 'T',
+ changes: {assignment: isCompoundAssignmentNullableSource});
+ }
+
Future<void> test_conditionalExpression_dead_else_remove() async {
await analyze('_f(int x, int/*?*/ y) => x != null ? x + 1 : y + 1.0;');
var expression = findNode.conditionalExpression('x != null');
@@ -1814,6 +1886,49 @@
visitSubexpression(findNode.methodInvocation('c.toString'), 'String');
}
+ Future<void> test_null_aware_assignment_non_nullable_source() async {
+ await analyze('''
+abstract class C {
+ int/*!*/ f();
+ g(int/*!*/ x) {
+ x ??= f();
+ }
+}
+''');
+ var assignment = findNode.assignment('??=');
+ visitSubexpression(assignment, 'int',
+ changes: {assignment: isWeakNullAwareAssignment});
+ }
+
+ Future<void> test_null_aware_assignment_nullable_rhs_needs_check() async {
+ await analyze('''
+abstract class C {
+ void set x(int/*!*/ value);
+ int/*?*/ get x;
+ int/*?*/ f();
+ g() {
+ x ??= f();
+ }
+}
+''');
+ var assignment = findNode.assignment('??=');
+ visitSubexpression(assignment, 'int',
+ changes: {assignment.rightHandSide: isNullCheck});
+ }
+
+ Future<void> test_null_aware_assignment_nullable_rhs_ok() async {
+ await analyze('''
+abstract class C {
+ int/*?*/ f();
+ g(int/*?*/ x) {
+ x ??= f();
+ }
+}
+''');
+ var assignment = findNode.assignment('??=');
+ visitSubexpression(assignment, 'int?');
+ }
+
Future<void> test_nullAssertion_promotes() async {
await analyze('''
_f(bool/*?*/ x) => x && x;
diff --git a/pkg/nnbd_migration/test/front_end/info_builder_test.dart b/pkg/nnbd_migration/test/front_end/info_builder_test.dart
index b9e06f2..ece8325 100644
--- a/pkg/nnbd_migration/test/front_end/info_builder_test.dart
+++ b/pkg/nnbd_migration/test/front_end/info_builder_test.dart
@@ -364,6 +364,56 @@
kind: NullabilityFixKind.addLateDueToTestSetup);
}
+ Future<void> test_compound_assignment_nullable_result() async {
+ var unit = await buildInfoForSingleTestFile('''
+abstract class C {
+ C/*?*/ operator+(int i);
+}
+void f(C/*!*/ a, int b) {
+ a += b;
+}
+''', migratedContent: '''
+abstract class C {
+ C/*?*/ operator+(int i);
+}
+void f(C/*!*/ a, int b) {
+ a += b;
+}
+''');
+ var operator = '+=';
+ var operatorOffset = unit.content.indexOf(operator);
+ var region =
+ unit.regions.where((region) => region.offset == operatorOffset).single;
+ assertRegion(
+ region: region,
+ length: operator.length,
+ explanation: 'Compound assignment has bad combined type',
+ kind: NullabilityFixKind.compoundAssignmentHasBadCombinedType,
+ edits: isEmpty);
+ }
+
+ Future<void> test_compound_assignment_nullable_source() async {
+ var unit = await buildInfoForSingleTestFile('''
+void f(int/*?*/ a, int b) {
+ a += b;
+}
+''', migratedContent: '''
+void f(int/*?*/ a, int b) {
+ a += b;
+}
+''');
+ var operator = '+=';
+ var operatorOffset = unit.content.indexOf(operator);
+ var region =
+ unit.regions.where((region) => region.offset == operatorOffset).single;
+ assertRegion(
+ region: region,
+ length: operator.length,
+ explanation: 'Compound assignment has nullable source',
+ kind: NullabilityFixKind.compoundAssignmentHasNullableSource,
+ edits: isEmpty);
+ }
+
Future<void> test_conditionFalseInStrongMode_expression() async {
var unit = await buildInfoForSingleTestFile(
'int f(String s) => s == null ? 0 : s.length;',
diff --git a/pkg/nnbd_migration/test/migration_cli_test.dart b/pkg/nnbd_migration/test/migration_cli_test.dart
index b375b60..cd3a4b4 100644
--- a/pkg/nnbd_migration/test/migration_cli_test.dart
+++ b/pkg/nnbd_migration/test/migration_cli_test.dart
@@ -324,6 +324,16 @@
assertProjectContents(projectDir, projectContents);
}
+ test_lifecycle_preview_extra_forward_slash() async {
+ var projectDir = await createProjectDir(simpleProject());
+ var cli = _createCli();
+ await runWithPreviewServer(cli, [projectDir], (url) async {
+ var uri = Uri.parse(url);
+ await assertPreviewServerResponsive(
+ uri.replace(path: uri.path + '/').toString());
+ });
+ }
+
test_lifecycle_uri_error() async {
var projectContents = simpleProject(sourceText: '''
import 'package:does_not/exist.dart';
@@ -441,15 +451,6 @@
context: path.style == path.Style.windows
? null
: path.Context(style: path.Style.windows, current: 'C:\\'));
-
- @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/40381')
- @override
- test_lifecycle_ignore_errors_enable() =>
- super.test_lifecycle_ignore_errors_enable();
-
- @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/40381')
- @override
- test_lifecycle_preview() => super.test_lifecycle_preview();
}
/// TODO(paulberry): move into cli_util
diff --git a/pkg/test_runner/lib/src/runtime_configuration.dart b/pkg/test_runner/lib/src/runtime_configuration.dart
index 7fe448c..477c73c 100644
--- a/pkg/test_runner/lib/src/runtime_configuration.dart
+++ b/pkg/test_runner/lib/src/runtime_configuration.dart
@@ -257,6 +257,9 @@
if (isReload) {
multiplier *= 2;
}
+ if (_configuration.sanitizer != Sanitizer.none) {
+ multiplier *= 2;
+ }
return multiplier;
}
}
diff --git a/pkg/vm/bin/kernel_service.dart b/pkg/vm/bin/kernel_service.dart
index 99638ad..a0bd437 100644
--- a/pkg/vm/bin/kernel_service.dart
+++ b/pkg/vm/bin/kernel_service.dart
@@ -28,8 +28,10 @@
import 'dart:typed_data' show Uint8List;
import 'package:build_integration/file_system/multi_root.dart';
+import 'package:front_end/src/api_prototype/experimental_flags.dart';
import 'package:front_end/src/api_prototype/front_end.dart' as fe
show CompilerResult;
+import 'package:front_end/src/api_prototype/language_version.dart';
import 'package:front_end/src/api_prototype/memory_file_system.dart';
import 'package:front_end/src/api_unstable/vm.dart';
import 'package:kernel/binary/ast_to_binary.dart';
@@ -77,13 +79,30 @@
bool allowDartInternalImport = false;
+// Null Safety command line options
+//
+// Note: The values of these constants must match the
+// values of flag null_safety in ../../../../runtime/vm/flag_list.h.
+// 0 - No null_safety option specified on the command line.
+// 1 - '--no-null-safety' specified on the command line.
+// 2 - '--null-safety' option specified on the command line.
+const int kNullSafetyOptionUnspecified = 0;
+const int kNullSafetyOptionWeak = 1;
+const int kNullSafetyOptionStrong = 2;
+
+Future<void> autoDetectNullSafetyMode(
+ Uri script, CompilerOptions options) async {
+ var isLegacy = await uriUsesLegacyLanguageVersion(script, options);
+ options.nnbdMode = isLegacy ? NnbdMode.Weak : NnbdMode.Strong;
+}
+
abstract class Compiler {
final int isolateId;
final FileSystem fileSystem;
final Uri platformKernelPath;
final bool suppressWarnings;
final bool enableAsserts;
- final bool nullSafety;
+ final int nullSafety;
final List<String> experimentalFlags;
final bool bytecode;
final String packageConfig;
@@ -100,7 +119,7 @@
Compiler(this.isolateId, this.fileSystem, this.platformKernelPath,
{this.suppressWarnings: false,
this.enableAsserts: false,
- this.nullSafety: false,
+ this.nullSafety: kNullSafetyOptionUnspecified,
this.experimentalFlags: null,
this.bytecode: false,
this.supportCodeCoverage: false,
@@ -139,7 +158,9 @@
parseExperimentalArguments(expFlags),
onError: (msg) => errors.add(msg))
..environmentDefines = new EnvironmentMap()
- ..nnbdMode = nullSafety ? NnbdMode.Strong : NnbdMode.Weak
+ ..nnbdMode = (nullSafety == kNullSafetyOptionStrong)
+ ? NnbdMode.Strong
+ : NnbdMode.Weak
..onDiagnostic = (DiagnosticMessage message) {
bool printMessage;
switch (message.severity) {
@@ -294,7 +315,7 @@
int isolateId, FileSystem fileSystem, Uri platformKernelPath,
{bool suppressWarnings: false,
bool enableAsserts: false,
- bool nullSafety: false,
+ int nullSafety: kNullSafetyOptionUnspecified,
List<String> experimentalFlags: null,
bool bytecode: false,
String packageConfig: null})
@@ -334,6 +355,10 @@
@override
Future<CompilerResult> compileInternal(Uri script) async {
if (generator == null) {
+ if ((nullSafety == kNullSafetyOptionUnspecified) &&
+ options.experimentalFlags[ExperimentalFlag.nonNullable]) {
+ await autoDetectNullSafetyMode(script, options);
+ }
generator = new IncrementalCompiler(options, script);
}
errors.clear();
@@ -381,7 +406,7 @@
{this.requireMain: false,
bool suppressWarnings: false,
bool enableAsserts: false,
- bool nullSafety: false,
+ int nullSafety: kNullSafetyOptionUnspecified,
List<String> experimentalFlags: null,
bool bytecode: false,
String packageConfig: null})
@@ -395,6 +420,10 @@
@override
Future<CompilerResult> compileInternal(Uri script) async {
+ if ((nullSafety == kNullSafetyOptionUnspecified) &&
+ options.experimentalFlags[ExperimentalFlag.nonNullable]) {
+ await autoDetectNullSafetyMode(script, options);
+ }
fe.CompilerResult compilerResult = requireMain
? await kernelForProgram(script, options)
: await kernelForModule([script], options);
@@ -423,7 +452,7 @@
List sourceFiles, Uri platformKernelPath, List<int> platformKernel,
{bool suppressWarnings: false,
bool enableAsserts: false,
- bool nullSafety: false,
+ int nullSafety: kNullSafetyOptionUnspecified,
List<String> experimentalFlags: null,
bool bytecode: false,
String packageConfig: null,
@@ -725,7 +754,7 @@
final Uri script =
inputFileUri != null ? Uri.base.resolve(inputFileUri) : null;
final bool incremental = request[4];
- final bool nullSafety = request[5];
+ final int nullSafety = request[5];
final int isolateId = request[6];
final List sourceFiles = request[7];
final bool suppressWarnings = request[8];
@@ -955,7 +984,7 @@
scriptUri,
platformKernelPath,
false /* incremental */,
- false /* null safety */,
+ kNullSafetyOptionUnspecified /* null safety */,
1 /* isolateId chosen randomly */,
[] /* source files */,
false /* suppress warnings */,
diff --git a/runtime/bin/gen_snapshot.cc b/runtime/bin/gen_snapshot.cc
index eb40122..568fa5f 100644
--- a/runtime/bin/gen_snapshot.cc
+++ b/runtime/bin/gen_snapshot.cc
@@ -670,7 +670,7 @@
}
auto isolate_group_data = std::unique_ptr<IsolateGroupData>(
- new IsolateGroupData(nullptr, nullptr, nullptr, false));
+ new IsolateGroupData(nullptr, nullptr, nullptr, nullptr, false));
Dart_Isolate isolate;
char* error = NULL;
diff --git a/runtime/bin/isolate_data.cc b/runtime/bin/isolate_data.cc
index 1547975..3bf497c 100644
--- a/runtime/bin/isolate_data.cc
+++ b/runtime/bin/isolate_data.cc
@@ -10,16 +10,21 @@
namespace bin {
IsolateGroupData::IsolateGroupData(const char* url,
+ const char* package_root,
const char* packages_file,
AppSnapshot* app_snapshot,
bool isolate_run_app_snapshot)
: script_url((url != NULL) ? strdup(url) : NULL),
+ package_root(NULL),
app_snapshot_(app_snapshot),
resolved_packages_config_(NULL),
kernel_buffer_(NULL),
kernel_buffer_size_(0),
isolate_run_app_snapshot_(isolate_run_app_snapshot) {
- if (packages_file != NULL) {
+ if (package_root != NULL) {
+ ASSERT(packages_file == NULL);
+ package_root = strdup(package_root);
+ } else if (packages_file != NULL) {
packages_file_ = strdup(packages_file);
}
}
@@ -27,6 +32,8 @@
IsolateGroupData::~IsolateGroupData() {
free(script_url);
script_url = NULL;
+ free(package_root);
+ package_root = NULL;
free(packages_file_);
packages_file_ = NULL;
free(resolved_packages_config_);
diff --git a/runtime/bin/isolate_data.h b/runtime/bin/isolate_data.h
index 6dae87a..c4523a1 100644
--- a/runtime/bin/isolate_data.h
+++ b/runtime/bin/isolate_data.h
@@ -34,12 +34,14 @@
class IsolateGroupData {
public:
IsolateGroupData(const char* url,
+ const char* package_root,
const char* packages_file,
AppSnapshot* app_snapshot,
bool isolate_run_app_snapshot);
~IsolateGroupData();
char* script_url;
+ char* package_root;
const std::shared_ptr<uint8_t>& kernel_buffer() const {
return kernel_buffer_;
diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc
index 06b9109..ac3baa5 100644
--- a/runtime/bin/main.cc
+++ b/runtime/bin/main.cc
@@ -180,7 +180,7 @@
// Prepare builtin and other core libraries for use to resolve URIs.
// Set up various closures, e.g: printing, timers etc.
- // Set up package configuration for URI resolution.
+ // Set up 'package root' for URI resolution.
result = DartUtils::PrepareForScriptLoading(false, Options::trace_loading());
if (Dart_IsError(result)) return result;
@@ -417,6 +417,7 @@
// For now we only support the kernel isolate coming up from an
// application snapshot or from a .dill file.
static Dart_Isolate CreateAndSetupKernelIsolate(const char* script_uri,
+ const char* package_root,
const char* packages_config,
Dart_IsolateFlags* flags,
char** error,
@@ -458,8 +459,9 @@
app_snapshot->SetBuffers(
&ignore_vm_snapshot_data, &ignore_vm_snapshot_instructions,
&isolate_snapshot_data, &isolate_snapshot_instructions);
- isolate_group_data = new IsolateGroupData(
- uri, packages_config, app_snapshot, isolate_run_app_snapshot);
+ isolate_group_data =
+ new IsolateGroupData(uri, package_root, packages_config, app_snapshot,
+ isolate_run_app_snapshot);
isolate_data = new IsolateData(isolate_group_data);
isolate = Dart_CreateIsolateGroup(
DART_KERNEL_ISOLATE_NAME, DART_KERNEL_ISOLATE_NAME,
@@ -477,8 +479,8 @@
intptr_t kernel_service_buffer_size = 0;
dfe.LoadKernelService(&kernel_service_buffer, &kernel_service_buffer_size);
ASSERT(kernel_service_buffer != NULL);
- isolate_group_data = new IsolateGroupData(uri, packages_config, nullptr,
- isolate_run_app_snapshot);
+ isolate_group_data = new IsolateGroupData(
+ uri, package_root, packages_config, nullptr, isolate_run_app_snapshot);
isolate_group_data->SetKernelBufferUnowned(
const_cast<uint8_t*>(kernel_service_buffer),
kernel_service_buffer_size);
@@ -506,6 +508,7 @@
// For now we only support the service isolate coming up from sources
// which are compiled by the VM parser.
static Dart_Isolate CreateAndSetupServiceIsolate(const char* script_uri,
+ const char* package_root,
const char* packages_config,
Dart_IsolateFlags* flags,
char** error,
@@ -513,8 +516,8 @@
#if !defined(PRODUCT)
ASSERT(script_uri != NULL);
Dart_Isolate isolate = NULL;
- auto isolate_group_data =
- new IsolateGroupData(script_uri, packages_config, nullptr, false);
+ auto isolate_group_data = new IsolateGroupData(
+ script_uri, package_root, packages_config, nullptr, false);
#if defined(DART_PRECOMPILED_RUNTIME)
// AOT: All isolates start from the app snapshot.
@@ -577,6 +580,7 @@
bool is_main_isolate,
const char* script_uri,
const char* name,
+ const char* package_root,
const char* packages_config,
Dart_IsolateFlags* flags,
void* callback_data,
@@ -633,8 +637,9 @@
}
#endif // !defined(DART_PRECOMPILED_RUNTIME)
- auto isolate_group_data = new IsolateGroupData(
- script_uri, packages_config, app_snapshot, isolate_run_app_snapshot);
+ auto isolate_group_data =
+ new IsolateGroupData(script_uri, package_root, packages_config,
+ app_snapshot, isolate_run_app_snapshot);
if (kernel_buffer != NULL) {
if (parent_kernel_buffer) {
isolate_group_data->SetKernelBufferAlreadyOwned(
@@ -711,22 +716,28 @@
// The VM should never call the isolate helper with a NULL flags.
ASSERT(flags != NULL);
ASSERT(flags->version == DART_FLAGS_CURRENT_VERSION);
- ASSERT(package_root == nullptr);
+ if ((package_root != NULL) && (package_config != NULL)) {
+ *error = strdup(
+ "Invalid arguments - Cannot simultaneously specify "
+ "package root and package map.");
+ return NULL;
+ }
+
int exit_code = 0;
#if !defined(EXCLUDE_CFE_AND_KERNEL_PLATFORM)
if (strcmp(script_uri, DART_KERNEL_ISOLATE_NAME) == 0) {
- return CreateAndSetupKernelIsolate(script_uri, package_config, flags, error,
- &exit_code);
+ return CreateAndSetupKernelIsolate(script_uri, package_root, package_config,
+ flags, error, &exit_code);
}
#endif // !defined(EXCLUDE_CFE_AND_KERNEL_PLATFORM)
if (strcmp(script_uri, DART_VM_SERVICE_ISOLATE_NAME) == 0) {
- return CreateAndSetupServiceIsolate(script_uri, package_config, flags,
- error, &exit_code);
+ return CreateAndSetupServiceIsolate(
+ script_uri, package_root, package_config, flags, error, &exit_code);
}
bool is_main_isolate = false;
return CreateIsolateGroupAndSetupHelper(is_main_isolate, script_uri, main,
- package_config, flags, callback_data,
- error, &exit_code);
+ package_root, package_config, flags,
+ callback_data, error, &exit_code);
}
static void OnIsolateShutdown(void* isolate_group_data, void* isolate_data) {
@@ -834,15 +845,10 @@
Dart_IsolateFlags flags;
Dart_IsolateFlagsInitialize(&flags);
- if (Options::package_root() != nullptr) {
- Syslog::PrintErr(
- "Warning: The --package-root option is deprecated (was: %s)\n",
- Options::package_root());
- }
-
Dart_Isolate isolate = CreateIsolateGroupAndSetupHelper(
- is_main_isolate, script_name, "main", Options::packages_file(), &flags,
- NULL /* callback_data */, &error, &exit_code);
+ is_main_isolate, script_name, "main", Options::package_root(),
+ Options::packages_file(), &flags, NULL /* callback_data */, &error,
+ &exit_code);
if (isolate == NULL) {
Syslog::PrintErr("%s\n", error);
diff --git a/runtime/bin/run_vm_tests.cc b/runtime/bin/run_vm_tests.cc
index c7b4df6..5e44275 100644
--- a/runtime/bin/run_vm_tests.cc
+++ b/runtime/bin/run_vm_tests.cc
@@ -101,6 +101,7 @@
}
static Dart_Isolate CreateAndSetupServiceIsolate(const char* script_uri,
+ const char* package_root,
const char* packages_config,
Dart_IsolateFlags* flags,
char** error) {
@@ -116,7 +117,7 @@
ASSERT(script_uri != nullptr);
Dart_Isolate isolate = nullptr;
auto isolate_group_data = new bin::IsolateGroupData(
- script_uri, packages_config, /*app_snapshot=*/nullptr,
+ script_uri, package_root, packages_config, /*app_snapshot=*/nullptr,
/*isolate_run_app_snapshot=*/false);
const uint8_t* kernel_buffer = nullptr;
@@ -168,10 +169,9 @@
void* data,
char** error) {
ASSERT(script_uri != nullptr);
- ASSERT(package_root == nullptr);
if (strcmp(script_uri, DART_VM_SERVICE_ISOLATE_NAME) == 0) {
- return CreateAndSetupServiceIsolate(script_uri, packages_config, flags,
- error);
+ return CreateAndSetupServiceIsolate(script_uri, package_root,
+ packages_config, flags, error);
}
const bool is_kernel_isolate =
strcmp(script_uri, DART_KERNEL_ISOLATE_NAME) == 0;
@@ -200,8 +200,9 @@
app_snapshot->SetBuffers(
&ignore_vm_snapshot_data, &ignore_vm_snapshot_instructions,
&isolate_snapshot_data, &isolate_snapshot_instructions);
- isolate_group_data = new bin::IsolateGroupData(
- script_uri, packages_config, app_snapshot, app_snapshot != nullptr);
+ isolate_group_data =
+ new bin::IsolateGroupData(script_uri, package_root, packages_config,
+ app_snapshot, app_snapshot != nullptr);
isolate = Dart_CreateIsolateGroup(
DART_KERNEL_ISOLATE_NAME, DART_KERNEL_ISOLATE_NAME,
isolate_snapshot_data, isolate_snapshot_instructions, flags,
@@ -228,8 +229,8 @@
bin::dfe.LoadKernelService(&kernel_service_buffer,
&kernel_service_buffer_size);
ASSERT(kernel_service_buffer != nullptr);
- isolate_group_data =
- new bin::IsolateGroupData(script_uri, packages_config, nullptr, false);
+ isolate_group_data = new bin::IsolateGroupData(
+ script_uri, package_root, packages_config, nullptr, false);
isolate_group_data->SetKernelBufferUnowned(
const_cast<uint8_t*>(kernel_service_buffer),
kernel_service_buffer_size);
diff --git a/runtime/include/dart_api.h b/runtime/include/dart_api.h
index c8fd5f8..0da49b0 100644
--- a/runtime/include/dart_api.h
+++ b/runtime/include/dart_api.h
@@ -530,7 +530,6 @@
bool load_vmservice_library;
bool unsafe_trust_strong_mode_types;
bool copy_parent_code;
- bool null_safety;
} Dart_IsolateFlags;
/**
@@ -571,7 +570,10 @@
* eventually run. This is provided for advisory purposes only to
* improve debugging messages. The main function is not invoked by
* this function.
- * \param package_root Ignored.
+ * \param package_root The package root path for this isolate to resolve
+ * package imports against. Only one of package_root and package_map
+ * parameters is non-NULL. If neither parameter is passed the package
+ * resolution of the parent isolate should be used.
* \param package_map The package map for this isolate to resolve package
* imports against. The array contains alternating keys and values,
* terminated by a NULL key. Only one of package_root and package_map
diff --git a/runtime/lib/isolate.cc b/runtime/lib/isolate.cc
index 059299d..27e688f 100644
--- a/runtime/lib/isolate.cc
+++ b/runtime/lib/isolate.cc
@@ -179,10 +179,10 @@
switch (cid) {
// List below matches the one in raw_object_snapshot.cc
#define MESSAGE_SNAPSHOT_ILLEGAL(type) \
- return Exceptions::CreateUnhandledException( \
- zone, Exceptions::kArgumentValue, \
- "Illegal argument in isolate message : (object is a " #type ")"); \
- break;
+ case k##type##Cid: \
+ return Exceptions::CreateUnhandledException( \
+ zone, Exceptions::kArgumentValue, \
+ "Illegal argument in isolate message : (object is a " #type ")");
MESSAGE_SNAPSHOT_ILLEGAL(DynamicLibrary);
MESSAGE_SNAPSHOT_ILLEGAL(MirrorReference);
@@ -390,7 +390,7 @@
return result;
}
-DEFINE_NATIVE_ENTRY(Isolate_spawnFunction, 0, 10) {
+DEFINE_NATIVE_ENTRY(Isolate_spawnFunction, 0, 11) {
GET_NON_NULL_NATIVE_ARGUMENT(SendPort, port, arguments->NativeArgAt(0));
GET_NON_NULL_NATIVE_ARGUMENT(String, script_uri, arguments->NativeArgAt(1));
GET_NON_NULL_NATIVE_ARGUMENT(Instance, closure, arguments->NativeArgAt(2));
@@ -399,8 +399,9 @@
GET_NATIVE_ARGUMENT(Bool, fatalErrors, arguments->NativeArgAt(5));
GET_NATIVE_ARGUMENT(SendPort, onExit, arguments->NativeArgAt(6));
GET_NATIVE_ARGUMENT(SendPort, onError, arguments->NativeArgAt(7));
- GET_NATIVE_ARGUMENT(String, packageConfig, arguments->NativeArgAt(8));
- GET_NATIVE_ARGUMENT(String, debugName, arguments->NativeArgAt(9));
+ GET_NATIVE_ARGUMENT(String, packageRoot, arguments->NativeArgAt(8));
+ GET_NATIVE_ARGUMENT(String, packageConfig, arguments->NativeArgAt(9));
+ GET_NATIVE_ARGUMENT(String, debugName, arguments->NativeArgAt(10));
if (closure.IsClosure()) {
Function& func = Function::Handle();
@@ -481,19 +482,26 @@
return result;
}
-DEFINE_NATIVE_ENTRY(Isolate_spawnUri, 0, 12) {
+DEFINE_NATIVE_ENTRY(Isolate_spawnUri, 0, 13) {
GET_NON_NULL_NATIVE_ARGUMENT(SendPort, port, arguments->NativeArgAt(0));
GET_NON_NULL_NATIVE_ARGUMENT(String, uri, arguments->NativeArgAt(1));
+
GET_NON_NULL_NATIVE_ARGUMENT(Instance, args, arguments->NativeArgAt(2));
GET_NON_NULL_NATIVE_ARGUMENT(Instance, message, arguments->NativeArgAt(3));
+
GET_NON_NULL_NATIVE_ARGUMENT(Bool, paused, arguments->NativeArgAt(4));
GET_NATIVE_ARGUMENT(SendPort, onExit, arguments->NativeArgAt(5));
GET_NATIVE_ARGUMENT(SendPort, onError, arguments->NativeArgAt(6));
+
GET_NATIVE_ARGUMENT(Bool, fatalErrors, arguments->NativeArgAt(7));
GET_NATIVE_ARGUMENT(Bool, checked, arguments->NativeArgAt(8));
+
GET_NATIVE_ARGUMENT(Array, environment, arguments->NativeArgAt(9));
- GET_NATIVE_ARGUMENT(String, packageConfig, arguments->NativeArgAt(10));
- GET_NATIVE_ARGUMENT(String, debugName, arguments->NativeArgAt(11));
+
+ GET_NATIVE_ARGUMENT(String, packageRoot, arguments->NativeArgAt(10));
+ GET_NATIVE_ARGUMENT(String, packageConfig, arguments->NativeArgAt(11));
+
+ GET_NATIVE_ARGUMENT(String, debugName, arguments->NativeArgAt(12));
if (Dart::vm_snapshot_kind() == Snapshot::kFullAOT) {
const Array& args = Array::Handle(Array::New(1));
diff --git a/runtime/observatory/tests/service/client_name_rpc_test.dart b/runtime/observatory/tests/service/client_name_rpc_test.dart
index fa20430..92aa4c9 100644
--- a/runtime/observatory/tests/service/client_name_rpc_test.dart
+++ b/runtime/observatory/tests/service/client_name_rpc_test.dart
@@ -66,6 +66,4 @@
main(args) async => runVMTests(
args,
tests,
- // TODO(bkonyi): client names are not yet supported in DDS.
- enableDds: false,
);
diff --git a/runtime/observatory/tests/service/client_resume_approvals_approve_then_disconnect_test.dart b/runtime/observatory/tests/service/client_resume_approvals_approve_then_disconnect_test.dart
index 462e3dc4..439f170 100644
--- a/runtime/observatory/tests/service/client_resume_approvals_approve_then_disconnect_test.dart
+++ b/runtime/observatory/tests/service/client_resume_approvals_approve_then_disconnect_test.dart
@@ -66,6 +66,4 @@
testeeConcurrent: fooBar,
pause_on_start: true,
pause_on_exit: true,
- // TODO(bkonyi): client names are not yet supported in DDS.
- enableDds: false,
);
diff --git a/runtime/observatory/tests/service/client_resume_approvals_disconnect_test.dart b/runtime/observatory/tests/service/client_resume_approvals_disconnect_test.dart
index 50c5d34..d82317a 100644
--- a/runtime/observatory/tests/service/client_resume_approvals_disconnect_test.dart
+++ b/runtime/observatory/tests/service/client_resume_approvals_disconnect_test.dart
@@ -64,6 +64,4 @@
testeeConcurrent: fooBar,
pause_on_start: true,
pause_on_exit: true,
- // TODO(bkonyi): client names are not yet supported in DDS.
- enableDds: false,
);
diff --git a/runtime/observatory/tests/service/client_resume_approvals_identical_names_test.dart b/runtime/observatory/tests/service/client_resume_approvals_identical_names_test.dart
index 27e026c..dbcc14a 100644
--- a/runtime/observatory/tests/service/client_resume_approvals_identical_names_test.dart
+++ b/runtime/observatory/tests/service/client_resume_approvals_identical_names_test.dart
@@ -46,6 +46,4 @@
testeeConcurrent: fooBar,
pause_on_start: true,
pause_on_exit: true,
- // TODO(bkonyi): client names are not yet supported in DDS.
- enableDds: false,
);
diff --git a/runtime/observatory/tests/service/client_resume_approvals_multiple_names_test.dart b/runtime/observatory/tests/service/client_resume_approvals_multiple_names_test.dart
index e92442c..88d217d 100644
--- a/runtime/observatory/tests/service/client_resume_approvals_multiple_names_test.dart
+++ b/runtime/observatory/tests/service/client_resume_approvals_multiple_names_test.dart
@@ -64,6 +64,4 @@
testeeConcurrent: fooBar,
pause_on_start: true,
pause_on_exit: true,
- // TODO(bkonyi): client names are not yet supported in DDS.
- enableDds: false,
);
diff --git a/runtime/observatory/tests/service/client_resume_approvals_name_change_test.dart b/runtime/observatory/tests/service/client_resume_approvals_name_change_test.dart
index b20a593..0e1374e 100644
--- a/runtime/observatory/tests/service/client_resume_approvals_name_change_test.dart
+++ b/runtime/observatory/tests/service/client_resume_approvals_name_change_test.dart
@@ -57,6 +57,4 @@
testeeConcurrent: fooBar,
pause_on_start: true,
pause_on_exit: true,
- // TODO(bkonyi): client names are not yet supported in DDS.
- enableDds: false,
);
diff --git a/runtime/observatory/tests/service/client_resume_approvals_reload_test.dart b/runtime/observatory/tests/service/client_resume_approvals_reload_test.dart
index 50f7f45..08fdc10 100644
--- a/runtime/observatory/tests/service/client_resume_approvals_reload_test.dart
+++ b/runtime/observatory/tests/service/client_resume_approvals_reload_test.dart
@@ -65,6 +65,4 @@
hotReloadTest,
testeeConcurrent: fooBar,
pause_on_start: true,
- // TODO(bkonyi): client names are not yet supported in DDS.
- enableDds: false,
);
diff --git a/runtime/observatory/tests/service/get_client_name_rpc_test.dart b/runtime/observatory/tests/service/get_client_name_rpc_test.dart
index 33f2c21..25b7828 100644
--- a/runtime/observatory/tests/service/get_client_name_rpc_test.dart
+++ b/runtime/observatory/tests/service/get_client_name_rpc_test.dart
@@ -41,6 +41,4 @@
args,
test,
testeeBefore: fooBar,
- // TODO(bkonyi): client names are not yet supported in DDS.
- enableDds: false,
);
diff --git a/runtime/observatory/tests/service/get_version_rpc_test.dart b/runtime/observatory/tests/service/get_version_rpc_test.dart
index 785d7f9..3dc33db 100644
--- a/runtime/observatory/tests/service/get_version_rpc_test.dart
+++ b/runtime/observatory/tests/service/get_version_rpc_test.dart
@@ -12,7 +12,7 @@
var result = await vm.invokeRpcNoUpgrade('getVersion', {});
expect(result['type'], equals('Version'));
expect(result['major'], equals(3));
- expect(result['minor'], equals(32));
+ expect(result['minor'], equals(33));
expect(result['_privateMajor'], equals(0));
expect(result['_privateMinor'], equals(0));
},
diff --git a/runtime/vm/bootstrap_natives.h b/runtime/vm/bootstrap_natives.h
index 8340655..65e0dae 100644
--- a/runtime/vm/bootstrap_natives.h
+++ b/runtime/vm/bootstrap_natives.h
@@ -317,8 +317,8 @@
V(Int32x4_setFlagZ, 2) \
V(Int32x4_setFlagW, 2) \
V(Int32x4_select, 3) \
- V(Isolate_spawnFunction, 10) \
- V(Isolate_spawnUri, 12) \
+ V(Isolate_spawnFunction, 11) \
+ V(Isolate_spawnUri, 13) \
V(Isolate_getPortAndCapabilitiesOfCurrentIsolate, 0) \
V(Isolate_getCurrentRootUriStr, 0) \
V(Isolate_sendOOB, 2) \
diff --git a/runtime/vm/compiler/frontend/kernel_translation_helper.cc b/runtime/vm/compiler/frontend/kernel_translation_helper.cc
index ad64458..80d6d2c 100644
--- a/runtime/vm/compiler/frontend/kernel_translation_helper.cc
+++ b/runtime/vm/compiler/frontend/kernel_translation_helper.cc
@@ -3338,9 +3338,7 @@
type = klass.DeclarationType();
} else {
type = Type::New(klass, TypeArguments::Handle(Z, klass.type_parameters()),
- klass.token_pos(),
- Dart::non_nullable_flag() ? Nullability::kNonNullable
- : Nullability::kLegacy);
+ klass.token_pos(), Nullability::kNonNullable);
}
return type;
}
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc
index 4ccca2d..180a7e0 100644
--- a/runtime/vm/dart.cc
+++ b/runtime/vm/dart.cc
@@ -69,7 +69,6 @@
Dart_FileWriteCallback Dart::file_write_callback_ = NULL;
Dart_FileCloseCallback Dart::file_close_callback_ = NULL;
Dart_EntropySource Dart::entropy_source_callback_ = NULL;
-bool Dart::non_nullable_flag_ = false;
// Structure for managing read-only global handles allocation used for
// creating global read-only handles that are pre created and initialized
@@ -235,9 +234,6 @@
ASSERT(Flags::Initialized());
const bool is_vm_isolate = true;
- // Cache value of "non-nullable" experimental flag.
- set_non_nullable_flag(KernelIsolate::GetExperimentalFlag("non-nullable"));
-
// Setup default flags for the VM isolate.
Dart_IsolateFlags api_flags;
Isolate::FlagsInitialize(&api_flags);
@@ -970,12 +966,21 @@
#error What architecture?
#endif
- ADD_ISOLATE_FLAG(null_safety, null_safety, FLAG_null_safety);
+ if (isolate != NULL) {
+ if (isolate->null_safety()) {
+ buffer.AddString(" null-safety");
+ } else {
+ buffer.AddString(" no-null-safety");
+ }
+ } else {
+ if (FLAG_null_safety == kNullSafetyOptionStrong) {
+ buffer.AddString(" null-safety");
+ } else {
+ buffer.AddString(" no-null-safety");
+ }
+ }
}
- if (Dart::non_nullable_flag()) {
- buffer.AddString(" nnbd-experiment");
- }
#undef ADD_ISOLATE_FLAG
#undef ADD_D
#undef ADD_C
diff --git a/runtime/vm/dart.h b/runtime/vm/dart.h
index f254047..6fa528d 100644
--- a/runtime/vm/dart.h
+++ b/runtime/vm/dart.h
@@ -131,10 +131,6 @@
return entropy_source_callback_;
}
- // TODO(dartbug.com/40342): Delete these functions.
- static void set_non_nullable_flag(bool value) { non_nullable_flag_ = value; }
- static bool non_nullable_flag() { return true; }
-
private:
static constexpr const char* kVmIsolateName = "vm-isolate";
@@ -153,7 +149,6 @@
static Dart_FileWriteCallback file_write_callback_;
static Dart_FileCloseCallback file_close_callback_;
static Dart_EntropySource entropy_source_callback_;
- static bool non_nullable_flag_;
};
} // namespace dart
diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
index 4bb6f96..91d3d63 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -5435,6 +5435,18 @@
if (program == nullptr) {
return Api::NewError("Can't load Kernel binary: %s.", error);
}
+ if (I->is_service_isolate() || I->is_kernel_isolate()) {
+ // For now the service isolate and kernel isolate will be running in
+ // weak mode and we assert for that here.
+ ASSERT(!I->null_safety());
+ } else {
+ // If null safety is not specified on the command line we use the value
+ // from the dill file that the CFE has computed based on how it was invoked.
+ if (FLAG_null_safety == kNullSafetyOptionUnspecified) {
+ I->set_null_safety(program->compilation_mode() ==
+ NNBDCompiledMode::kStrong);
+ }
+ }
const Object& tmp = kernel::KernelLoader::LoadEntireProgram(program.get());
program.reset();
@@ -5735,6 +5747,7 @@
DARTSCOPE(Thread::Current());
API_TIMELINE_DURATION(T);
StackZone zone(T);
+ Isolate* I = T->isolate();
CHECK_CALLBACK_STATE(T);
@@ -5751,6 +5764,18 @@
if (program == nullptr) {
return Api::NewError("Can't load Kernel binary: %s.", error);
}
+ if (I->is_service_isolate() || I->is_kernel_isolate()) {
+ // For now the service isolate and kernel isolate will be running in
+ // weak mode and we assert for that here.
+ ASSERT(!I->null_safety());
+ } else {
+ // If null safety is not specified on the command line we use the value
+ // from the dill file that the CFE has computed based on how it was invoked.
+ if (FLAG_null_safety == kNullSafetyOptionUnspecified) {
+ I->set_null_safety(program->compilation_mode() ==
+ NNBDCompiledMode::kStrong);
+ }
+ }
const Object& result =
kernel::KernelLoader::LoadEntireProgram(program.get(), false);
program.reset();
@@ -6522,6 +6547,12 @@
// loader. See also Elf::WriteProgramTable().
const intptr_t bss_base =
elf->AddBSSData("_kDartBSSData", sizeof(compiler::target::uword));
+ // Add the BSS section to the separately saved debugging information, even
+ // though there will be no code in it to relocate, since it precedes the
+ // .text sections and thus affects their virtual addresses.
+ if (debug_dwarf != nullptr) {
+ debug_elf->AddBSSData("_kDartBSSData", sizeof(compiler::target::uword));
+ }
BlobImageWriter vm_image_writer(T, &vm_snapshot_instructions_buffer,
ApiReallocate, kInitialSize, debug_dwarf,
diff --git a/runtime/vm/flag_list.h b/runtime/vm/flag_list.h
index f1344a9..8fdc0de 100644
--- a/runtime/vm/flag_list.h
+++ b/runtime/vm/flag_list.h
@@ -191,8 +191,6 @@
P(reorder_basic_blocks, bool, true, "Reorder basic blocks") \
C(stress_async_stacks, false, false, bool, false, \
"Stress test async stack traces") \
- P(null_safety, bool, false, \
- "Respect the nullability of types in casts and instance checks.") \
P(use_table_dispatch, bool, true, "Enable dispatch table based calls.") \
P(retain_function_objects, bool, true, \
"Serialize function objects for all code objects even if not otherwise " \
diff --git a/runtime/vm/heap/heap.cc b/runtime/vm/heap/heap.cc
index 0f3dcd0..79a159d 100644
--- a/runtime/vm/heap/heap.cc
+++ b/runtime/vm/heap/heap.cc
@@ -776,9 +776,6 @@
auto thread = Thread::Current();
StackZone stack_zone(thread);
- // Change the new space's top_ with the more up-to-date thread's view of top_
- new_space_.MakeNewSpaceIterable();
-
ObjectSet* allocated_set =
CreateAllocatedObjectSet(stack_zone.GetZone(), mark_expectation);
VerifyPointersVisitor visitor(isolate_group(), allocated_set);
diff --git a/runtime/vm/heap/scavenger.cc b/runtime/vm/heap/scavenger.cc
index 8278400..26056f2 100644
--- a/runtime/vm/heap/scavenger.cc
+++ b/runtime/vm/heap/scavenger.cc
@@ -94,6 +94,142 @@
} while (size > 0);
}
+static const intptr_t kNewPageSize = 512 * KB;
+static const intptr_t kNewPageSizeInWords = kNewPageSize / kWordSize;
+static const intptr_t kNewPageMask = ~(kNewPageSize - 1);
+
+// A page containing new generation objects.
+class NewPage {
+ public:
+ static NewPage* Allocate();
+ void Deallocate();
+
+ uword start() const { return memory_->start(); }
+ uword end() const { return memory_->end(); }
+ bool Contains(uword addr) const { return memory_->Contains(addr); }
+ void WriteProtect(bool read_only) {
+ memory_->Protect(read_only ? VirtualMemory::kReadOnly
+ : VirtualMemory::kReadWrite);
+ }
+
+ NewPage* next() const { return next_; }
+ void set_next(NewPage* next) { next_ = next; }
+
+ Thread* owner() const { return owner_; }
+
+ uword object_start() const { return start() + ObjectStartOffset(); }
+ uword object_end() const { return owner_ != nullptr ? owner_->top() : top_; }
+ void VisitObjects(ObjectVisitor* visitor) const {
+ uword addr = object_start();
+ uword end = object_end();
+ while (addr < end) {
+ ObjectPtr obj = ObjectLayout::FromAddr(addr);
+ visitor->VisitObject(obj);
+ addr += obj->ptr()->HeapSize();
+ }
+ }
+ void VisitObjectPointers(ObjectPointerVisitor* visitor) const {
+ uword addr = object_start();
+ uword end = object_end();
+ while (addr < end) {
+ ObjectPtr obj = ObjectLayout::FromAddr(addr);
+ intptr_t size = obj->ptr()->VisitPointers(visitor);
+ addr += size;
+ }
+ }
+
+ static intptr_t ObjectStartOffset() {
+ return Utils::RoundUp(sizeof(NewPage), kObjectAlignment) +
+ kNewObjectAlignmentOffset;
+ }
+
+ static NewPage* Of(ObjectPtr obj) {
+ ASSERT(obj->IsHeapObject());
+ ASSERT(obj->IsNewObject());
+ return Of(static_cast<uword>(obj));
+ }
+ static NewPage* Of(uword addr) {
+ return reinterpret_cast<NewPage*>(addr & kNewPageMask);
+ }
+
+ // Remember the limit to which objects have been copied.
+ void RecordSurvivors() { survivor_end_ = object_end(); }
+
+ // Move survivor end to the end of the to_ space, making all surviving
+ // objects candidates for promotion next time.
+ void EarlyTenure() { survivor_end_ = end_; }
+
+ uword promo_candidate_words() const {
+ return (survivor_end_ - object_start()) / kWordSize;
+ }
+
+ void Acquire(Thread* thread) {
+ ASSERT(owner_ == nullptr);
+ owner_ = thread;
+ thread->set_top(top_);
+ thread->set_end(end_);
+ }
+ void Release(Thread* thread) {
+ ASSERT(owner_ == thread);
+ owner_ = nullptr;
+ top_ = thread->top();
+ thread->set_top(0);
+ thread->set_end(0);
+ }
+ void Release() {
+ if (owner_ != nullptr) {
+ Release(owner_);
+ }
+ }
+
+ uword TryAllocateGC(intptr_t size) {
+ ASSERT(owner_ == nullptr);
+ uword result = top_;
+ uword new_top = result + size;
+ if (LIKELY(new_top < end_)) {
+ top_ = new_top;
+ return result;
+ }
+ return 0;
+ }
+
+ void Unallocate(uword addr, intptr_t size) {
+ ASSERT((addr + size) == top_);
+ top_ -= size;
+ }
+
+ bool IsSurvivor(uword raw_addr) const { return raw_addr < survivor_end_; }
+ bool IsResolved() const { return top_ == resolved_top_; }
+
+ private:
+ VirtualMemory* memory_;
+ NewPage* next_;
+
+ // The thread using this page for allocation, otherwise NULL.
+ Thread* owner_;
+
+ // The address of the next allocation. If owner is non-NULL, this value is
+ // stale and the current value is at owner->top_. Called "NEXT" in the
+ // original Cheney paper.
+ uword top_;
+
+ // The address after the last allocatable byte in this page.
+ uword end_;
+
+ // Objects below this address have survived a scavenge.
+ uword survivor_end_;
+
+ // A pointer to the first unprocessed object. Resolution completes when this
+ // value meets the allocation top. Called "SCAN" in the original Cheney paper.
+ uword resolved_top_;
+
+ template <bool>
+ friend class ScavengerVisitorBase;
+
+ DISALLOW_ALLOCATION();
+ DISALLOW_IMPLICIT_CONSTRUCTORS(NewPage);
+};
+
template <bool parallel>
class ScavengerVisitorBase : public ObjectPointerVisitor {
public:
@@ -110,12 +246,7 @@
freelist_(freelist),
bytes_promoted_(0),
visiting_old_object_(nullptr),
- promoted_list_(promotion_stack),
- labs_(8) {
- ASSERT(labs_.length() == 0);
- labs_.Add({0, 0, 0});
- ASSERT(labs_.length() == 1);
- }
+ promoted_list_(promotion_stack) {}
virtual void VisitTypedDataViewPointers(TypedDataViewPtr view,
ObjectPtr* first,
@@ -174,15 +305,6 @@
intptr_t bytes_promoted() const { return bytes_promoted_; }
- void AddNewTLAB(uword top, uword end) {
- producer_index_++;
- ScavengerLAB lab;
- lab.top = top;
- lab.end = end;
- lab.resolved_top = top;
- labs_.Add(lab);
- }
-
void ProcessRoots() {
thread_ = Thread::Current();
page_space_->AcquireLock(freelist_);
@@ -207,28 +329,18 @@
inline void ProcessWeakProperties();
bool HasWork() {
- // N.B.: Normally if any TLABs have things left to resolve, then the
- // TLAB we are allocating from (producer_index_) will too because we
- // always immediately allocate when we switch to a new TLAB. However,
- // this first allocation may be undone if we lose the race to install
- // the forwarding pointer, so we must also check that there aren't
- // any TLABs after the resolution cursor.
- return (consumer_index_ < producer_index_) ||
- (labs_[producer_index_].top !=
- labs_[producer_index_].resolved_top) ||
+ return (scan_ != tail_) || (scan_ != nullptr && !scan_->IsResolved()) ||
!promoted_list_.IsEmpty();
}
void Finalize() {
ASSERT(!HasWork());
- for (intptr_t i = 0; i <= producer_index_; i++) {
- ASSERT(labs_[i].top <= labs_[i].end);
- ASSERT(labs_[i].resolved_top == labs_[i].top);
+ for (NewPage* page = head_; page != nullptr; page = page->next()) {
+ ASSERT(page->IsResolved());
+ page->RecordSurvivors();
}
- MakeProducerTLABIterable();
-
promoted_list_.Finalize();
MournWeakProperties();
@@ -237,15 +349,8 @@
thread_ = nullptr;
}
- void DonateTLABs() {
- MutexLocker ml(&scavenger_->space_lock_);
- // NOTE: We could make all [labs_] re-usable after a scavenge if we remember
- // the promotion pointer of each TLAB.
- const auto& lab = labs_[producer_index_];
- if (lab.end == scavenger_->top_) {
- scavenger_->top_ = lab.top;
- }
- }
+ NewPage* head() const { return head_; }
+ NewPage* tail() const { return tail_; }
private:
void UpdateStoreBuffer(ObjectPtr* p, ObjectPtr obj) {
@@ -281,7 +386,7 @@
} else {
intptr_t size = raw_obj->ptr()->HeapSize(header);
// Check whether object should be promoted.
- if (raw_addr >= scavenger_->survivor_end_) {
+ if (!NewPage::Of(raw_obj)->IsSurvivor(raw_addr)) {
// Not a survivor of a previous scavenge. Just copy the object into the
// to space.
new_addr = TryAllocateCopy(size);
@@ -326,8 +431,6 @@
tags = ObjectLayout::OldAndNotMarkedBit::update(!thread_->is_marking(),
tags);
new_obj->ptr()->tags_ = tags;
- } else {
- ASSERT(scavenger_->to_->Contains(new_addr));
}
intptr_t cid = ObjectLayout::ClassIdTag::decode(header);
@@ -345,14 +448,10 @@
bytes_promoted_ -= size;
} else {
// Undo to-space allocation.
- ASSERT(labs_[producer_index_].top == (new_addr + size));
- labs_[producer_index_].top = new_addr;
+ tail_->Unallocate(new_addr, size);
}
// Use the winner's forwarding target.
new_addr = ForwardedAddr(header);
- if (ObjectLayout::FromAddr(new_addr)->IsNewObject()) {
- ASSERT(scavenger_->to_->Contains(new_addr));
- }
}
}
@@ -366,7 +465,6 @@
reinterpret_cast<std::atomic<ObjectPtr>*>(p)->store(
new_obj, std::memory_order_release);
} else {
- ASSERT(scavenger_->to_->Contains(ObjectLayout::ToAddr(new_obj)));
*p = new_obj;
}
// Update the store buffer as needed.
@@ -392,33 +490,21 @@
DART_FORCE_INLINE
uword TryAllocateCopy(intptr_t size) {
ASSERT(Utils::IsAligned(size, kObjectAlignment));
- ScavengerLAB& lab = labs_[producer_index_];
- uword result = lab.top;
- uword new_top = result + size;
- if (LIKELY(new_top <= lab.end)) {
- ASSERT(scavenger_->to_->Contains(result));
+ // TODO(rmacnak): Allocate one to start?
+ if (tail_ != nullptr) {
+ uword result = tail_->top_;
ASSERT((result & kObjectAlignmentMask) == kNewObjectAlignmentOffset);
- lab.top = new_top;
- ASSERT((scavenger_->to_->Contains(new_top)) ||
- (new_top == scavenger_->to_->end()));
- return result;
+ uword new_top = result + size;
+ if (LIKELY(new_top <= tail_->end_)) {
+ tail_->top_ = new_top;
+ return result;
+ }
}
return TryAllocateCopySlow(size);
}
DART_NOINLINE inline uword TryAllocateCopySlow(intptr_t size);
- void MakeProducerTLABIterable() {
- uword top = labs_[producer_index_].top;
- uword end = labs_[producer_index_].end;
- intptr_t size = end - top;
- if (size != 0) {
- ASSERT(Utils::IsAligned(size, kObjectAlignment));
- ForwardingCorpse::AsForwarder(top, size);
- ASSERT(ObjectLayout::FromAddr(top)->ptr()->HeapSize() == size);
- }
- }
-
inline void ProcessToSpace();
DART_FORCE_INLINE intptr_t ProcessCopied(ObjectPtr raw_obj);
inline void ProcessPromotedList();
@@ -436,14 +522,9 @@
PromotionWorkList promoted_list_;
WeakPropertyPtr delayed_weak_properties_ = nullptr;
- struct ScavengerLAB {
- uword top;
- uword end;
- uword resolved_top;
- };
- MallocGrowableArray<ScavengerLAB> labs_;
- intptr_t consumer_index_ = 1;
- intptr_t producer_index_ = 0;
+ NewPage* head_ = nullptr;
+ NewPage* tail_ = nullptr; // Allocating from here.
+ NewPage* scan_ = nullptr; // Resolving from here.
DISALLOW_COPY_AND_ASSIGN(ScavengerVisitorBase);
};
@@ -575,100 +656,153 @@
DISALLOW_COPY_AND_ASSIGN(ParallelScavengerTask);
};
-SemiSpace::SemiSpace(VirtualMemory* reserved)
- : reserved_(reserved), region_(NULL, 0) {
- if (reserved != NULL) {
- region_ = MemoryRegion(reserved_->address(), reserved_->size());
- }
-}
+SemiSpace::SemiSpace(intptr_t max_capacity_in_words)
+ : max_capacity_in_words_(max_capacity_in_words), head_(nullptr) {}
SemiSpace::~SemiSpace() {
- delete reserved_;
+ NewPage* page = head_;
+ while (page != nullptr) {
+ NewPage* next = page->next();
+ page->Deallocate();
+ page = next;
+ }
}
-Mutex* SemiSpace::mutex_ = NULL;
-SemiSpace* SemiSpace::cache_ = NULL;
+// TODO(rmacnak): Unify this with old-space pages, and possibly zone segments.
+// This cache needs to be at least as big as FLAG_new_gen_semi_max_size or
+// munmap will noticably impact performance.
+static constexpr intptr_t kPageCacheCapacity = 8 * kWordSize;
+static Mutex* page_cache_mutex = nullptr;
+static VirtualMemory* page_cache[kPageCacheCapacity] = {nullptr};
+static intptr_t page_cache_size = 0;
void SemiSpace::Init() {
- if (mutex_ == NULL) {
- mutex_ = new Mutex();
- }
- ASSERT(mutex_ != NULL);
+ ASSERT(page_cache_mutex == nullptr);
+ page_cache_mutex = new Mutex(NOT_IN_PRODUCT("page_cache_mutex"));
}
void SemiSpace::Cleanup() {
- MutexLocker locker(mutex_);
- delete cache_;
- cache_ = NULL;
+ {
+ MutexLocker ml(page_cache_mutex);
+ ASSERT(page_cache_size >= 0);
+ ASSERT(page_cache_size <= kPageCacheCapacity);
+ while (page_cache_size > 0) {
+ delete page_cache[--page_cache_size];
+ }
+ }
+ delete page_cache_mutex;
+ page_cache_mutex = nullptr;
}
-SemiSpace* SemiSpace::New(intptr_t size_in_words, const char* name) {
- SemiSpace* result = nullptr;
+NewPage* NewPage::Allocate() {
+ const intptr_t size = kNewPageSize;
+ VirtualMemory* memory = nullptr;
{
- MutexLocker locker(mutex_);
- // TODO(koda): Cache one entry per size.
- if (cache_ != nullptr && cache_->size_in_words() == size_in_words) {
- result = cache_;
- cache_ = nullptr;
+ MutexLocker ml(page_cache_mutex);
+ ASSERT(page_cache_size >= 0);
+ ASSERT(page_cache_size <= kPageCacheCapacity);
+ if (page_cache_size > 0) {
+ memory = page_cache[--page_cache_size];
}
}
- if (result != nullptr) {
-#ifdef DEBUG
- result->reserved_->Protect(VirtualMemory::kReadWrite);
-#endif
- // Initialized by generated code.
- MSAN_UNPOISON(result->reserved_->address(), size_in_words << kWordSizeLog2);
- return result;
+ if (memory == nullptr) {
+ const intptr_t alignment = kNewPageSize;
+ const bool is_executable = false;
+ const char* const name = Heap::RegionName(Heap::kNew);
+ memory =
+ VirtualMemory::AllocateAligned(size, alignment, is_executable, name);
+ }
+ if (memory == nullptr) {
+ // TODO(koda): We could try to recover (collect old space, wait for another
+ // isolate to finish scavenge, etc.).
+ OUT_OF_MEMORY();
}
- if (size_in_words == 0) {
- return new SemiSpace(nullptr);
- } else {
- intptr_t size_in_bytes = size_in_words << kWordSizeLog2;
- const bool kExecutable = false;
- VirtualMemory* memory =
- VirtualMemory::Allocate(size_in_bytes, kExecutable, name);
- if (memory == nullptr) {
- // TODO(koda): If cache_ is not empty, we could try to delete it.
- return nullptr;
- }
#if defined(DEBUG)
- memset(memory->address(), Heap::kZapByte, size_in_bytes);
-#endif // defined(DEBUG)
- // Initialized by generated code.
- MSAN_UNPOISON(memory->address(), size_in_bytes);
- return new SemiSpace(memory);
- }
+ memset(memory->address(), Heap::kZapByte, size);
+#endif
+ // Initialized by generated code.
+ MSAN_UNPOISON(memory->address(), size);
+
+ NewPage* result = reinterpret_cast<NewPage*>(memory->address());
+ result->memory_ = memory;
+ result->next_ = nullptr;
+ result->owner_ = nullptr;
+ uword top = result->object_start();
+ result->top_ = top;
+ result->end_ = memory->end() - kNewObjectAlignmentOffset;
+ result->survivor_end_ = top;
+ result->resolved_top_ = top;
+
+ LSAN_REGISTER_ROOT_REGION(result, sizeof(*result));
+
+ return result;
}
-void SemiSpace::Delete() {
- if (reserved_ != nullptr) {
- const intptr_t size_in_bytes = size_in_words() << kWordSizeLog2;
-#ifdef DEBUG
- memset(reserved_->address(), Heap::kZapByte, size_in_bytes);
- reserved_->Protect(VirtualMemory::kNoAccess);
-#endif
- MSAN_POISON(reserved_->address(), size_in_bytes);
- }
- SemiSpace* old_cache = nullptr;
+void NewPage::Deallocate() {
+ LSAN_UNREGISTER_ROOT_REGION(this, sizeof(*this));
+
+ VirtualMemory* memory = memory_;
{
- MutexLocker locker(mutex_);
- old_cache = cache_;
- cache_ = this;
+ MutexLocker ml(page_cache_mutex);
+ ASSERT(page_cache_size >= 0);
+ ASSERT(page_cache_size <= kPageCacheCapacity);
+ if (page_cache_size < kPageCacheCapacity) {
+ intptr_t size = memory->size();
+#if defined(DEBUG)
+ memset(memory->address(), Heap::kZapByte, size);
+#endif
+ MSAN_POISON(memory->address(), size);
+ page_cache[page_cache_size++] = memory;
+ memory = nullptr;
+ }
}
- // TODO(rmacnak): This can take an order of magnitude longer the rest of
- // a scavenge. Consider moving it to another thread, perhaps the idle
- // notifier.
- delete old_cache;
+ delete memory;
+}
+
+NewPage* SemiSpace::TryAllocatePageLocked(bool link) {
+ if (capacity_in_words_ >= max_capacity_in_words_) {
+ return nullptr; // Full.
+ }
+ NewPage* page = NewPage::Allocate();
+ capacity_in_words_ += kNewPageSizeInWords;
+ if (link) {
+ if (head_ == nullptr) {
+ head_ = tail_ = page;
+ } else {
+ tail_->set_next(page);
+ tail_ = page;
+ }
+ }
+ return page;
+}
+
+bool SemiSpace::Contains(uword addr) const {
+ for (NewPage* page = head_; page != nullptr; page = page->next()) {
+ if (page->Contains(addr)) return true;
+ }
+ return false;
}
void SemiSpace::WriteProtect(bool read_only) {
- if (reserved_ != NULL) {
- reserved_->Protect(read_only ? VirtualMemory::kReadOnly
- : VirtualMemory::kReadWrite);
+ for (NewPage* page = head_; page != nullptr; page = page->next()) {
+ page->WriteProtect(read_only);
}
}
+void SemiSpace::AddList(NewPage* head, NewPage* tail) {
+ if (head == nullptr) {
+ return;
+ }
+ if (head_ == nullptr) {
+ head_ = head;
+ tail_ = tail;
+ return;
+ }
+ tail_->set_next(head);
+ tail_ = tail;
+}
+
// The initial estimate of how many words we can scavenge per microsecond (usage
// before / scavenge time). This is a conservative value observed running
// Flutter on a Nexus 4. After the first scavenge, we instead use a value based
@@ -693,17 +827,7 @@
const intptr_t initial_semi_capacity_in_words = Utils::Minimum(
max_semi_capacity_in_words, FLAG_new_gen_semi_initial_size * MBInWords);
- const char* name = Heap::RegionName(Heap::kNew);
- to_ = SemiSpace::New(initial_semi_capacity_in_words, name);
- if (to_ == NULL) {
- OUT_OF_MEMORY();
- }
- // Setup local fields.
- top_ = FirstObjectStart();
- resolved_top_ = top_;
- end_ = to_->end();
-
- survivor_end_ = FirstObjectStart();
+ to_ = new SemiSpace(initial_semi_capacity_in_words);
idle_scavenge_threshold_in_words_ = initial_semi_capacity_in_words;
UpdateMaxHeapCapacity();
@@ -712,7 +836,7 @@
Scavenger::~Scavenger() {
ASSERT(!scavenging_);
- to_->Delete();
+ delete to_;
}
intptr_t Scavenger::NewSizeInWords(intptr_t old_size_in_words) const {
@@ -838,20 +962,8 @@
// objects.
SemiSpace* from = to_;
- const char* name = Heap::RegionName(Heap::kNew);
- to_ = SemiSpace::New(NewSizeInWords(from->size_in_words()), name);
- if (to_ == NULL) {
- // TODO(koda): We could try to recover (collect old space, wait for another
- // isolate to finish scavenge, etc.).
- OUT_OF_MEMORY();
- }
+ to_ = new SemiSpace(NewSizeInWords(from->max_capacity_in_words()));
UpdateMaxHeapCapacity();
- {
- MutexLocker ml(&space_lock_);
- top_ = FirstObjectStart();
- resolved_top_ = top_;
- end_ = to_->end();
- }
return from;
}
@@ -861,20 +973,26 @@
// All objects in the to space have been copied from the from space at this
// moment.
+
+ // Ensure the mutator thread will fail the next allocation. This will force
+ // mutator to allocate a new TLAB
+#if defined(DEBUG)
+ heap_->isolate_group()->ForEachIsolate(
+ [&](Isolate* isolate) {
+ Thread* mutator_thread = isolate->mutator_thread();
+ ASSERT(mutator_thread == nullptr || mutator_thread->top() == 0);
+ },
+ /*at_safepoint=*/true);
+#endif // DEBUG
+
double avg_frac = stats_history_.Get(0).PromoCandidatesSuccessFraction();
if (stats_history_.Size() >= 2) {
// Previous scavenge is only given half as much weight.
avg_frac += 0.5 * stats_history_.Get(1).PromoCandidatesSuccessFraction();
avg_frac /= 1.0 + 0.5; // Normalize.
}
- if (avg_frac < (FLAG_early_tenuring_threshold / 100.0)) {
- // Remember the limit to which objects have been copied.
- survivor_end_ = top_;
- } else {
- // Move survivor end to the end of the to_ space, making all surviving
- // objects candidates for promotion next time.
- survivor_end_ = end_;
- }
+
+ early_tenure_ = avg_frac >= (FLAG_early_tenuring_threshold / 100.0);
// Update estimate of scavenger speed. This statistic assumes survivorship
// rates don't change much.
@@ -930,7 +1048,7 @@
OS::PrintErr(" done.\n");
}
- from->Delete();
+ delete from;
UpdateMaxHeapUsage();
if (heap_ != NULL) {
heap_->UpdateGlobalMaxUsed();
@@ -1078,22 +1196,20 @@
template <bool parallel>
void ScavengerVisitorBase<parallel>::ProcessToSpace() {
- intptr_t i = consumer_index_;
- while (i <= producer_index_) {
- uword resolved_top = labs_[i].resolved_top;
- while (resolved_top < labs_[i].top) {
+ while (scan_ != nullptr) {
+ uword resolved_top = scan_->resolved_top_;
+ while (resolved_top < scan_->top_) {
ObjectPtr raw_obj = ObjectLayout::FromAddr(resolved_top);
resolved_top += ProcessCopied(raw_obj);
}
- labs_[i].resolved_top = resolved_top;
+ scan_->resolved_top_ = resolved_top;
- if (i == producer_index_) {
- return; // More objects may yet be copied to this TLAB.
+ NewPage* next = scan_->next();
+ if (next == nullptr) {
+ // Don't update scan_. More objects may yet be copied to this TLAB.
+ return;
}
-
- i++;
- consumer_index_ = i;
- ASSERT(consumer_index_ < labs_.length());
+ scan_ = next;
}
}
@@ -1162,8 +1278,8 @@
ASSERT(heap_ != NULL);
auto isolate_group = heap_->isolate_group();
ASSERT(isolate_group != NULL);
- isolate_group->GetHeapNewCapacityMaxMetric()->SetValue(to_->size_in_words() *
- kWordSize);
+ isolate_group->GetHeapNewCapacityMaxMetric()->SetValue(
+ to_->max_capacity_in_words() * kWordSize);
#endif // !defined(PRODUCT)
}
@@ -1299,81 +1415,35 @@
}
}
-void Scavenger::MakeNewSpaceIterable() {
+void Scavenger::VisitObjectPointers(ObjectPointerVisitor* visitor) const {
ASSERT(Thread::Current()->IsAtSafepoint() ||
(Thread::Current()->task_kind() == Thread::kMarkerTask) ||
(Thread::Current()->task_kind() == Thread::kCompactorTask));
- auto isolate_group = heap_->isolate_group();
- MonitorLocker ml(isolate_group->threads_lock(), false);
-
- // Make all scheduled thread's TLABs iterable.
- Thread* current = heap_->isolate_group()->thread_registry()->active_list();
- while (current != NULL) {
- const TLAB tlab = current->tlab();
- if (!tlab.IsAbandoned()) {
- MakeTLABIterable(tlab);
- }
- current = current->next();
- }
-
- for (intptr_t i = 0; i < free_tlabs_.length(); ++i) {
- MakeTLABIterable(free_tlabs_[i]);
+ for (NewPage* page = to_->head(); page != nullptr; page = page->next()) {
+ page->VisitObjectPointers(visitor);
}
}
-void Scavenger::AbandonTLABsLocked() {
- ASSERT(Thread::Current()->IsAtSafepoint());
- IsolateGroup* isolate_group = heap_->isolate_group();
- MonitorLocker ml(isolate_group->threads_lock(), false);
-
- // Abandon TLABs of all scheduled threads.
- Thread* current = isolate_group->thread_registry()->active_list();
- while (current != NULL) {
- const TLAB tlab = current->tlab();
- AddAbandonedInBytesLocked(tlab.RemainingSize());
- current->set_tlab(TLAB());
- current = current->next();
- }
- while (free_tlabs_.length() > 0) {
- const TLAB tlab = free_tlabs_.RemoveLast();
- AddAbandonedInBytesLocked(tlab.RemainingSize());
- }
-}
-
-void Scavenger::VisitObjectPointers(ObjectPointerVisitor* visitor) {
- ASSERT(Thread::Current()->IsAtSafepoint() ||
- (Thread::Current()->task_kind() == Thread::kMarkerTask) ||
- (Thread::Current()->task_kind() == Thread::kCompactorTask));
- MakeNewSpaceIterable();
- uword cur = FirstObjectStart();
- while (cur < top_) {
- ObjectPtr raw_obj = ObjectLayout::FromAddr(cur);
- cur += raw_obj->ptr()->VisitPointers(visitor);
- }
-}
-
-void Scavenger::VisitObjects(ObjectVisitor* visitor) {
+void Scavenger::VisitObjects(ObjectVisitor* visitor) const {
ASSERT(Thread::Current()->IsAtSafepoint() ||
(Thread::Current()->task_kind() == Thread::kMarkerTask));
- MakeNewSpaceIterable();
- uword cur = FirstObjectStart();
- while (cur < top_) {
- ObjectPtr raw_obj = ObjectLayout::FromAddr(cur);
- visitor->VisitObject(raw_obj);
- cur += raw_obj->ptr()->HeapSize();
+ for (NewPage* page = to_->head(); page != nullptr; page = page->next()) {
+ page->VisitObjects(visitor);
}
}
void Scavenger::AddRegionsToObjectSet(ObjectSet* set) const {
- set->AddRegion(to_->start(), to_->end());
+ for (NewPage* page = to_->head(); page != nullptr; page = page->next()) {
+ set->AddRegion(page->start(), page->end());
+ }
}
ObjectPtr Scavenger::FindObject(FindObjectVisitor* visitor) {
ASSERT(!scavenging_);
- MakeNewSpaceIterable();
- uword cur = FirstObjectStart();
- if (visitor->VisitRange(cur, top_)) {
- while (cur < top_) {
+ for (NewPage* page = to_->head(); page != nullptr; page = page->next()) {
+ uword cur = page->object_start();
+ if (!visitor->VisitRange(cur, page->object_end())) continue;
+ while (cur < page->object_end()) {
ObjectPtr raw_obj = ObjectLayout::FromAddr(cur);
uword next = cur + raw_obj->ptr()->HeapSize();
if (visitor->VisitRange(cur, next) &&
@@ -1382,131 +1452,77 @@
}
cur = next;
}
- ASSERT(cur == top_);
+ ASSERT(cur == page->object_end());
}
return Object::null();
}
-void Scavenger::TryAllocateNewTLAB(Thread* thread) {
+void Scavenger::TryAllocateNewTLAB(Thread* thread, intptr_t min_size) {
ASSERT(heap_ != Dart::vm_isolate()->heap());
ASSERT(!scavenging_);
+
+ AbandonRemainingTLAB(thread);
+
MutexLocker ml(&space_lock_);
-
- // We might need a new TLAB not because the current TLAB is empty but because
- // we failed to allocate alarge object in new space. So in case the remaining
- // TLAB is still big enough to be useful we cache it.
- CacheTLABLocked(thread->tlab());
- thread->set_tlab(TLAB());
-
- uword result = top_;
- intptr_t remaining = end_ - top_;
- intptr_t size = kTLABSize;
- if (remaining < size) {
- // Grab whatever is remaining
- size = Utils::RoundDown(remaining, kObjectAlignment);
+ for (NewPage* page = to_->head(); page != nullptr; page = page->next()) {
+ if (page->owner() != nullptr) continue;
+ intptr_t available = page->end() - page->object_end();
+ if (available >= min_size) {
+ page->Acquire(thread);
+ return;
+ }
}
- ASSERT(Utils::IsAligned(size, kObjectAlignment));
- if (size == 0) {
- thread->set_tlab(TryAcquireCachedTLABLocked());
+
+ NewPage* page = to_->TryAllocatePageLocked(true);
+ if (page == nullptr) {
return;
}
- ASSERT(to_->Contains(result));
- ASSERT((result & kObjectAlignmentMask) == kNewObjectAlignmentOffset);
- top_ += size;
- ASSERT(to_->Contains(top_) || (top_ == to_->end()));
- ASSERT(result < top_);
- thread->set_tlab(TLAB(result, top_));
-}
-
-void Scavenger::MakeTLABIterable(const TLAB& tlab) {
- ASSERT(tlab.end >= tlab.top);
- const intptr_t size = tlab.RemainingSize();
- ASSERT(Utils::IsAligned(size, kObjectAlignment));
- if (size >= kObjectAlignment) {
- // ForwardingCorpse(forwarding to default null) will work as filler.
- ForwardingCorpse::AsForwarder(tlab.top, size);
- ASSERT(ObjectLayout::FromAddr(tlab.top)->ptr()->HeapSize() == size);
- }
+ page->Acquire(thread);
}
void Scavenger::AbandonRemainingTLABForDebugging(Thread* thread) {
- MutexLocker ml(&space_lock_);
- const TLAB tlab = thread->tlab();
- MakeTLABIterable(tlab);
- AddAbandonedInBytesLocked(tlab.RemainingSize());
- thread->set_tlab(TLAB());
+ // Allocate any remaining space so the TLAB won't be reused. Write a filler
+ // object so it remains iterable.
+ uword top = thread->top();
+ intptr_t size = thread->end() - thread->top();
+ if (size > 0) {
+ thread->set_top(top + size);
+ ForwardingCorpse::AsForwarder(top, size);
+ }
+
+ AbandonRemainingTLAB(thread);
+}
+
+void Scavenger::AbandonRemainingTLAB(Thread* thread) {
+ if (thread->top() == 0) return;
+ NewPage* page = NewPage::Of(thread->top() - 1);
+ {
+ MutexLocker ml(&space_lock_);
+ page->Release(thread);
+ }
+ ASSERT(thread->top() == 0);
}
template <bool parallel>
uword ScavengerVisitorBase<parallel>::TryAllocateCopySlow(intptr_t size) {
- MakeProducerTLABIterable();
-
- if (!scavenger_->TryAllocateNewTLAB(this)) {
+ NewPage* page;
+ {
+ MutexLocker ml(&scavenger_->space_lock_);
+ page = scavenger_->to_->TryAllocatePageLocked(false);
+ }
+ if (page == nullptr) {
return 0;
}
- const uword result = labs_[producer_index_].top;
- const intptr_t remaining =
- labs_[producer_index_].end - labs_[producer_index_].top;
- ASSERT(size <= remaining);
- ASSERT(scavenger_->to_->Contains(result));
- ASSERT((result & kObjectAlignmentMask) == kNewObjectAlignmentOffset);
- labs_[producer_index_].top = result + size;
- return result;
-}
-
-template <bool parallel>
-bool Scavenger::TryAllocateNewTLAB(ScavengerVisitorBase<parallel>* visitor) {
- intptr_t size = kTLABSize;
- ASSERT(Utils::IsAligned(size, kObjectAlignment));
- ASSERT(heap_ != Dart::vm_isolate()->heap());
- ASSERT(scavenging_);
- MutexLocker ml(&space_lock_);
- const uword result = top_;
- const intptr_t remaining = end_ - top_;
- if (remaining < size) {
- // Grab whatever is remaining
- size = Utils::RoundDown(remaining, kObjectAlignment);
+ if (head_ == nullptr) {
+ head_ = scan_ = page;
+ } else {
+ ASSERT(scan_ != nullptr);
+ tail_->set_next(page);
}
- if (size == 0) {
- return false;
- }
- ASSERT(to_->Contains(result));
- ASSERT((result & kObjectAlignmentMask) == kNewObjectAlignmentOffset);
- top_ += size;
- ASSERT(to_->Contains(top_) || (top_ == to_->end()));
- ASSERT(result < top_);
- visitor->AddNewTLAB(result, top_);
- return true;
-}
+ tail_ = page;
-TLAB Scavenger::TryAcquireCachedTLABLocked() {
- if (free_tlabs_.length() == 0) {
- return TLAB();
- }
- return free_tlabs_.RemoveLast();
-}
-
-void Scavenger::CacheTLABLocked(TLAB tlab) {
- // If the memory following this TLAB is the unused new space, we'll merge the
- // bytes into there.
- if (tlab.end == top_) {
- top_ = tlab.top;
- return;
- }
-
- MakeTLABIterable(tlab);
-
- // If this TLAB is lare enough to be useful in the future, we'll make it
- // reusable, otherwise we abandon it.
- const uword size = tlab.RemainingSize();
- if (size > (50 * KB)) {
- free_tlabs_.Add(tlab);
- return;
- }
-
- // Else we discard the memory.
- AddAbandonedInBytesLocked(size);
+ return tail_->TryAllocateGC(size);
}
void Scavenger::Scavenge() {
@@ -1535,13 +1551,18 @@
}
// Prepare for a scavenge.
- AbandonTLABsLocked();
failed_to_promote_ = false;
root_slices_started_ = 0;
- intptr_t abandoned_bytes = GetAndResetAbandonedInBytes();
+ intptr_t abandoned_bytes = 0; // TODO(rmacnak): Count fragmentation?
SpaceUsage usage_before = GetCurrentUsage();
- intptr_t promo_candidate_words =
- (survivor_end_ - FirstObjectStart()) / kWordSize;
+ intptr_t promo_candidate_words = 0;
+ for (NewPage* page = to_->head(); page != nullptr; page = page->next()) {
+ page->Release();
+ if (early_tenure_) {
+ page->EarlyTenure();
+ }
+ promo_candidate_words += page->promo_candidate_words();
+ }
SemiSpace* from = Prologue();
intptr_t bytes_promoted;
@@ -1585,8 +1606,8 @@
visitor.ProcessAll();
}
visitor.Finalize();
- visitor.DonateTLABs();
+ to_->AddList(visitor.head(), visitor.tail());
return visitor.bytes_promoted();
}
@@ -1619,8 +1640,8 @@
}
for (intptr_t i = 0; i < num_tasks; i++) {
+ to_->AddList(visitors[i]->head(), visitors[i]->tail());
bytes_promoted += visitors[i]->bytes_promoted();
- visitors[i]->DonateTLABs();
delete visitors[i];
}
@@ -1681,7 +1702,7 @@
SafepointOperationScope scope(Thread::Current());
// Forces the next scavenge to promote all the objects in the new space.
- survivor_end_ = top_;
+ early_tenure_ = true;
Scavenge();
diff --git a/runtime/vm/heap/scavenger.h b/runtime/vm/heap/scavenger.h
index 6358289..56baac3 100644
--- a/runtime/vm/heap/scavenger.h
+++ b/runtime/vm/heap/scavenger.h
@@ -12,7 +12,6 @@
#include "vm/flags.h"
#include "vm/globals.h"
#include "vm/heap/spaces.h"
-#include "vm/heap/tlab.h"
#include "vm/lockers.h"
#include "vm/raw_object.h"
#include "vm/ring_buffer.h"
@@ -25,47 +24,40 @@
class Heap;
class Isolate;
class JSONObject;
+class NewPage;
class ObjectSet;
template <bool parallel>
class ScavengerVisitorBase;
-// Wrapper around VirtualMemory that adds caching and handles the empty case.
class SemiSpace {
public:
static void Init();
static void Cleanup();
- // Get a space of the given size. Returns NULL on out of memory. If size is 0,
- // returns an empty space: pointer(), start() and end() all return NULL.
- // The name parameter may be NULL. If non-NULL it is ued to give the OS a name
- // for the underlying virtual memory region.
- static SemiSpace* New(intptr_t size_in_words, const char* name);
-
- // Hand back an unused space.
- void Delete();
-
- void* pointer() const { return region_.pointer(); }
- uword start() const { return region_.start(); }
- uword end() const { return region_.end(); }
- intptr_t size_in_words() const {
- return static_cast<intptr_t>(region_.size()) >> kWordSizeLog2;
- }
- bool Contains(uword address) const { return region_.Contains(address); }
-
- // Set write protection mode for this space. The space must not be protected
- // when Delete is called.
- // TODO(koda): Remember protection mode in VirtualMemory and assert this.
- void WriteProtect(bool read_only);
-
- private:
- explicit SemiSpace(VirtualMemory* reserved);
+ explicit SemiSpace(intptr_t max_capacity_in_words);
~SemiSpace();
- VirtualMemory* reserved_; // NULL for an empty space.
- MemoryRegion region_;
+ NewPage* TryAllocatePageLocked(bool link);
- static SemiSpace* cache_;
- static Mutex* mutex_;
+ bool Contains(uword addr) const;
+ void WriteProtect(bool read_only);
+
+ intptr_t capacity_in_words() const { return capacity_in_words_; }
+ intptr_t max_capacity_in_words() const { return max_capacity_in_words_; }
+
+ NewPage* head() const { return head_; }
+
+ void AddList(NewPage* head, NewPage* tail);
+
+ private:
+ // Size of NewPages in this semi-space.
+ intptr_t capacity_in_words_ = 0;
+
+ // Size of NewPages before we trigger a scavenge.
+ intptr_t max_capacity_in_words_;
+
+ NewPage* head_ = nullptr;
+ NewPage* tail_ = nullptr;
};
// Statistics for a particular scavenge.
@@ -137,28 +129,11 @@
if (LIKELY(addr != 0)) {
return addr;
}
- TryAllocateNewTLAB(thread);
+ TryAllocateNewTLAB(thread, size);
return TryAllocateFromTLAB(thread, size);
}
- void MakeTLABIterable(const TLAB& tlab);
+ void AbandonRemainingTLAB(Thread* thread);
void AbandonRemainingTLABForDebugging(Thread* thread);
- template <bool parallel>
- bool TryAllocateNewTLAB(ScavengerVisitorBase<parallel>* visitor);
-
- // When a thread gets scheduled it will try to acquire a TLAB.
- void TryAcquireCachedTLAB(Thread* thread) {
- MutexLocker ml(&space_lock_);
- thread->set_tlab(TryAcquireCachedTLABLocked());
- }
- TLAB TryAcquireCachedTLABLocked();
-
- // When a thread gets unscheduled it will release it's TLAB.
- void ReleaseAndCacheTLAB(Thread* thread) {
- MutexLocker ml(&space_lock_);
- CacheTLABLocked(thread->tlab());
- thread->set_tlab(TLAB());
- }
- void CacheTLABLocked(TLAB tlab);
// Collect the garbage in this scavenger.
void Scavenge();
@@ -166,23 +141,11 @@
// Promote all live objects.
void Evacuate();
- // Report (TLAB) abandoned bytes that should be taken account when
- // deciding whether to grow new space or not.
- void AddAbandonedInBytes(intptr_t value) {
- MutexLocker ml(&space_lock_);
- AddAbandonedInBytesLocked(value);
- }
- int64_t GetAndResetAbandonedInBytes() {
- int64_t result = abandoned_;
- abandoned_ = 0;
- return result;
- }
-
int64_t UsedInWords() const {
MutexLocker ml(&space_lock_);
- return (top_ - FirstObjectStart()) >> kWordSizeLog2;
+ return to_->capacity_in_words();
}
- int64_t CapacityInWords() const { return to_->size_in_words(); }
+ int64_t CapacityInWords() const { return to_->max_capacity_in_words(); }
int64_t ExternalInWords() const { return external_size_ >> kWordSizeLog2; }
SpaceUsage GetCurrentUsage() const {
SpaceUsage usage;
@@ -192,8 +155,8 @@
return usage;
}
- void VisitObjects(ObjectVisitor* visitor);
- void VisitObjectPointers(ObjectPointerVisitor* visitor);
+ void VisitObjects(ObjectVisitor* visitor) const;
+ void VisitObjectPointers(ObjectPointerVisitor* visitor) const;
void AddRegionsToObjectSet(ObjectSet* set) const;
@@ -232,8 +195,6 @@
bool scavenging() const { return scavenging_; }
private:
- static const intptr_t kTLABSize = 512 * KB;
-
// Ids for time and data records in Heap::GCStats.
enum {
// Time
@@ -253,27 +214,20 @@
uword TryAllocateFromTLAB(Thread* thread, intptr_t size) {
ASSERT(Utils::IsAligned(size, kObjectAlignment));
ASSERT(heap_ != Dart::vm_isolate()->heap());
- TLAB tlab = thread->tlab();
- const intptr_t remaining = tlab.RemainingSize();
+
+ const uword result = thread->top();
+ const intptr_t remaining = thread->end() - result;
if (UNLIKELY(remaining < size)) {
return 0;
}
- const uword result = tlab.top;
ASSERT(to_->Contains(result));
ASSERT((result & kObjectAlignmentMask) == kNewObjectAlignmentOffset);
- const uword new_top = tlab.top + size;
- ASSERT(to_->Contains(new_top) || new_top == to_->end());
- thread->set_tlab(tlab.BumpAllocate(size));
+ thread->set_top(result + size);
return result;
}
- void TryAllocateNewTLAB(Thread* thread);
- void AddAbandonedInBytesLocked(intptr_t value) { abandoned_ += value; }
- void AbandonTLABsLocked();
+ void TryAllocateNewTLAB(Thread* thread, intptr_t size);
- uword FirstObjectStart() const {
- return to_->start() + kNewObjectAlignmentOffset;
- }
SemiSpace* Prologue();
intptr_t ParallelScavenge(SemiSpace* from);
intptr_t SerialScavenge(SemiSpace* from);
@@ -299,26 +253,9 @@
intptr_t NewSizeInWords(intptr_t old_size_in_words) const;
- uword top_;
- uword end_;
-
- MallocGrowableArray<TLAB> abandoned_tlabs_;
- MallocGrowableArray<TLAB> free_tlabs_;
-
- SemiSpace* to_;
-
Heap* heap_;
- // A pointer to the first unscanned object. Scanning completes when
- // this value meets the allocation top.
- uword resolved_top_;
-
- // Objects below this address have survived a scavenge.
- uword survivor_end_;
-
- // Abandoned (TLAB) bytes that need to be accounted for when deciding
- // whether to grow newspace or not.
- intptr_t abandoned_ = 0;
+ SemiSpace* to_;
PromotionStack promotion_stack_;
@@ -326,6 +263,7 @@
// Keep track whether a scavenge is currently running.
bool scavenging_;
+ bool early_tenure_ = false;
RelaxedAtomic<intptr_t> root_slices_started_;
StoreBufferBlock* blocks_;
diff --git a/runtime/vm/heap/tlab.h b/runtime/vm/heap/tlab.h
deleted file mode 100644
index d186831..0000000
--- a/runtime/vm/heap/tlab.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (c) 2020, 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.
-
-#ifndef RUNTIME_VM_HEAP_TLAB_H_
-#define RUNTIME_VM_HEAP_TLAB_H_
-
-#include "platform/assert.h"
-#include "platform/globals.h"
-
-namespace dart {
-
-struct TLAB {
- TLAB() : top(0), end(0) {}
- TLAB(uword top, uword end) : top(top), end(end) {}
- TLAB(const TLAB& other) : top(other.top), end(other.end) {}
- TLAB& operator=(const TLAB& other) {
- top = other.top;
- end = other.end;
- return *this;
- }
-
- intptr_t RemainingSize() const { return end - top; }
- bool IsAbandoned() const { return top == 0 && end == 0; }
-
- TLAB BumpAllocate(intptr_t size) const {
- ASSERT(RemainingSize() >= size);
- return TLAB(top + size, end);
- }
-
- uword top;
- uword end;
-};
-
-} // namespace dart
-
-#endif // RUNTIME_VM_HEAP_TLAB_H_
diff --git a/runtime/vm/image_snapshot.cc b/runtime/vm/image_snapshot.cc
index ebdd6dd..566f596 100644
--- a/runtime/vm/image_snapshot.cc
+++ b/runtime/vm/image_snapshot.cc
@@ -1081,6 +1081,9 @@
intptr_t debug_segment_base = 0;
if (debug_dwarf_ != nullptr) {
debug_segment_base = debug_dwarf_->elf()->NextMemoryOffset();
+ // If we're also generating an ELF snapshot, we want the virtual addresses
+ // in it and the separately saved DWARF information to match.
+ ASSERT(elf_ == nullptr || segment_base == debug_segment_base);
}
#endif
@@ -1309,9 +1312,9 @@
ASSERT(segment_base == segment_base2);
}
if (debug_dwarf_ != nullptr) {
- auto const debug_segment_base2 = debug_dwarf_->elf()->AddText(
- instructions_symbol, instructions_blob_stream_.buffer(),
- instructions_blob_stream_.bytes_written());
+ auto const debug_segment_base2 =
+ debug_dwarf_->elf()->AddText(instructions_symbol, nullptr,
+ instructions_blob_stream_.bytes_written());
ASSERT(debug_segment_base == debug_segment_base2);
}
#endif
diff --git a/runtime/vm/interpreter.cc b/runtime/vm/interpreter.cc
index c31b7da..a48d019 100644
--- a/runtime/vm/interpreter.cc
+++ b/runtime/vm/interpreter.cc
@@ -272,18 +272,17 @@
ASSERT(instance_size > 0);
ASSERT(Utils::IsAligned(instance_size, kObjectAlignment));
- const TLAB tlab = thread->tlab();
#ifndef PRODUCT
auto table = thread->isolate_group()->shared_class_table();
if (UNLIKELY(table->TraceAllocationFor(class_id))) {
return false;
}
#endif
- const intptr_t remaining = tlab.RemainingSize();
+ const uword top = thread->top();
+ const intptr_t remaining = thread->end() - top;
if (LIKELY(remaining >= instance_size)) {
- const uword old_top = tlab.top;
- thread->set_tlab(tlab.BumpAllocate(instance_size));
- *result = InitializeHeader(old_top, class_id, instance_size);
+ thread->set_top(top + instance_size);
+ *result = InitializeHeader(top, class_id, instance_size);
return true;
}
return false;
diff --git a/runtime/vm/intrusive_dlist.h b/runtime/vm/intrusive_dlist.h
index 421726d64..43acaee 100644
--- a/runtime/vm/intrusive_dlist.h
+++ b/runtime/vm/intrusive_dlist.h
@@ -227,6 +227,30 @@
return next;
}
+ bool ContainsForDebugging(const T* a) {
+ for (auto entry : *this) {
+ if (entry == a) return true;
+ }
+ return false;
+ }
+
+ void AppendList(IntrusiveDList<T, N>* other) {
+ if (other->IsEmpty()) return;
+
+ auto other_first = other->head_.Next();
+ auto other_last = other->head_.Prev();
+ other->head_.next_ = &other->head_;
+ other->head_.prev_ = &other->head_;
+
+ auto prev = head_.prev_;
+
+ prev->next_ = other_first;
+ other_first->prev_ = prev;
+
+ other_last->next_ = &head_;
+ head_.prev_ = other_last;
+ }
+
private:
Entry head_;
diff --git a/runtime/vm/intrusive_dlist_test.cc b/runtime/vm/intrusive_dlist_test.cc
index fdf72c0..041791b 100644
--- a/runtime/vm/intrusive_dlist_test.cc
+++ b/runtime/vm/intrusive_dlist_test.cc
@@ -152,4 +152,58 @@
EXPECT(all.IsEmpty());
}
+UNIT_TEST_CASE(IntrusiveDListAppendListTest) {
+ // Append to empty list.
+ {
+ IntrusiveDList<Item> all;
+ IntrusiveDList<Item> other;
+
+ Item a1(1, 11), a2(2, 12);
+ all.Append(&a1);
+ all.Append(&a2);
+
+ other.AppendList(&all);
+
+ EXPECT(all.IsEmpty());
+ EXPECT(!other.IsEmpty());
+ EXPECT_EQ(&a1, other.First());
+ EXPECT_EQ(&a2, other.Last());
+
+ auto it = other.Begin();
+ EXPECT_EQ(&a1, *it);
+ it = other.Erase(it);
+ EXPECT_EQ(&a2, *it);
+ it = other.Erase(it);
+ EXPECT(it == other.end());
+ }
+ // Append to non-empty list.
+ {
+ IntrusiveDList<Item> all;
+ IntrusiveDList<Item> other;
+
+ Item a1(1, 11), a2(2, 12);
+ all.Append(&a1);
+ all.Append(&a2);
+
+ Item o1(1, 11);
+ other.Append(&o1);
+
+ other.AppendList(&all);
+
+ EXPECT(all.IsEmpty());
+ EXPECT(!other.IsEmpty());
+ EXPECT_EQ(&o1, other.First());
+ EXPECT_EQ(&a2, other.Last());
+
+ auto it = other.Begin();
+ EXPECT_EQ(&o1, *it);
+ it = other.Erase(it);
+ EXPECT_EQ(&a1, *it);
+ it = other.Erase(it);
+ EXPECT_EQ(&a2, *it);
+ it = other.Erase(it);
+ EXPECT(it == other.end());
+ }
+}
+
} // namespace dart.
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index b8f886b..ccca676 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -88,6 +88,16 @@
deterministic,
"Enable deterministic mode.");
+int FLAG_null_safety = kNullSafetyOptionUnspecified;
+static void NullSafetyHandler(bool value) {
+ FLAG_null_safety = value ? kNullSafetyOptionStrong : kNullSafetyOptionWeak;
+}
+
+DEFINE_FLAG_HANDLER(
+ NullSafetyHandler,
+ null_safety,
+ "Respect the nullability of types in casts and instance checks.");
+
// Quick access to the locally defined thread() and isolate() methods.
#define T (thread())
#define I (isolate())
@@ -422,8 +432,6 @@
os_thread->set_thread(thread);
Thread::SetCurrent(thread);
os_thread->EnableThreadInterrupts();
-
- thread->heap()->new_space()->TryAcquireCachedTLAB(thread);
}
return thread;
}
@@ -432,7 +440,7 @@
Thread* thread,
bool is_mutator,
bool bypass_safepoint) {
- thread->heap()->new_space()->ReleaseAndCacheTLAB(thread);
+ thread->heap()->new_space()->AbandonRemainingTLAB(thread);
// Clear since GC will not visit the thread once it is unscheduled. Do this
// under the thread lock to prevent races with the GC visiting thread roots.
@@ -1600,13 +1608,27 @@
isolate_group->RegisterIsolate(result);
if (ServiceIsolate::NameEquals(name_prefix)) {
+ // For now the service isolate always runs in weak mode.
+ result->set_null_safety(false);
ASSERT(!ServiceIsolate::Exists());
ServiceIsolate::SetServiceIsolate(result);
#if !defined(DART_PRECOMPILED_RUNTIME)
} else if (KernelIsolate::NameEquals(name_prefix)) {
+ // For now the kernel isolate always runs in weak mode.
+ result->set_null_safety(false);
ASSERT(!KernelIsolate::Exists());
KernelIsolate::SetKernelIsolate(result);
#endif // !defined(DART_PRECOMPILED_RUNTIME)
+ } else if (FLAG_null_safety != kNullSafetyOptionUnspecified) {
+ // If the null-safety option is specified on the command line then
+ // use the value specified on the command line, if the dill file being
+ // loaded is in a different mode than that specified on the command line
+ // we will get an error during kernel file loading.
+ result->set_null_safety(FLAG_null_safety == kNullSafetyOptionStrong);
+#if !defined(DART_PRECOMPILED_RUNTIME)
+ } else if (!KernelIsolate::GetExperimentalFlag("non-nullable")) {
+ result->set_null_safety(false);
+#endif // !defined(DART_PRECOMPILED_RUNTIME)
}
#if !defined(PRODUCT)
diff --git a/runtime/vm/isolate.h b/runtime/vm/isolate.h
index 3516672..0487039 100644
--- a/runtime/vm/isolate.h
+++ b/runtime/vm/isolate.h
@@ -89,6 +89,17 @@
class UserTag;
class WeakTable;
+/*
+ * Possible values of null safety flag
+ 0 - not specified
+ 1 - weak mode
+ 2 - strong mode)
+*/
+constexpr int kNullSafetyOptionUnspecified = 0;
+constexpr int kNullSafetyOptionWeak = 1;
+constexpr int kNullSafetyOptionStrong = 2;
+extern int FLAG_null_safety;
+
class PendingLazyDeopt {
public:
PendingLazyDeopt(uword fp, uword pc) : fp_(fp), pc_(pc) {}
@@ -152,7 +163,6 @@
V(NONPRODUCT, use_field_guards, UseFieldGuards, use_field_guards, \
FLAG_use_field_guards) \
V(NONPRODUCT, use_osr, UseOsr, use_osr, FLAG_use_osr) \
- V(PRODUCT, null_safety, NullSafety, null_safety, FLAG_null_safety) \
V(PRECOMPILER, obfuscate, Obfuscate, obfuscate, false_by_default) \
V(PRODUCT, unsafe_trust_strong_mode_types, UnsafeTrustStrongModeTypes, \
unsafe_trust_strong_mode_types, \
@@ -1180,6 +1190,24 @@
}
#endif // defined(PRODUCT)
+ bool null_safety_not_set() const {
+ return !NullSafetySetBit::decode(isolate_flags_);
+ }
+
+ bool null_safety() const {
+ // TODO(asiva) : We return false when the null safety mode is not yet set
+ // instead of just asserting as some code runs during bootstrapping that
+ // requires the mode to be set. Once all of that is resolved this could
+ // turn into just an assert.
+ if (null_safety_not_set()) return false;
+ ASSERT(!null_safety_not_set());
+ return NullSafetyBit::decode(isolate_flags_);
+ }
+ void set_null_safety(bool null_safety) {
+ isolate_flags_ = NullSafetySetBit::update(true, isolate_flags_);
+ isolate_flags_ = NullSafetyBit::update(null_safety, isolate_flags_);
+ }
+
// Convenience flag tester indicating whether incoming function arguments
// should be type checked.
bool argument_type_checks() const { return should_emit_strong_mode_checks(); }
@@ -1351,6 +1379,7 @@
V(Obfuscate) \
V(ShouldLoadVmService) \
V(NullSafety) \
+ V(NullSafetySet) \
V(UnsafeTrustStrongModeTypes)
// Isolate specific flags.
diff --git a/runtime/vm/kernel.h b/runtime/vm/kernel.h
index a0edfe7..f612540 100644
--- a/runtime/vm/kernel.h
+++ b/runtime/vm/kernel.h
@@ -60,13 +60,6 @@
enum LogicalOperator { kAnd, kOr };
-enum NonNullableByDefaultCompiledMode {
- kNNBDDisabled,
- kNNBDWeak,
- kNNBDStrong,
- kNNBDAgnostic
-};
-
class Program {
public:
// Read a kernel Program from the given Reader. Note the returned Program
@@ -100,6 +93,7 @@
const uint8_t* kernel_data() { return kernel_data_; }
intptr_t kernel_data_size() { return kernel_data_size_; }
intptr_t library_count() { return library_count_; }
+ NNBDCompiledMode compilation_mode() const { return compilation_mode_; }
private:
Program() : typed_data_(NULL), kernel_data_(NULL), kernel_data_size_(-1) {}
@@ -107,7 +101,7 @@
bool single_program_;
uint32_t binary_version_;
NameIndex main_method_reference_; // Procedure.
- NonNullableByDefaultCompiledMode compilation_mode_;
+ NNBDCompiledMode compilation_mode_;
intptr_t library_count_;
// The offset from the start of the binary to the start of the source table.
diff --git a/runtime/vm/kernel_binary.cc b/runtime/vm/kernel_binary.cc
index de75ae3..d0431aa 100644
--- a/runtime/vm/kernel_binary.cc
+++ b/runtime/vm/kernel_binary.cc
@@ -3,15 +3,17 @@
// BSD-style license that can be found in the LICENSE file.
#if !defined(DART_PRECOMPILED_RUNTIME)
+#include "vm/kernel_binary.h"
+
#include <memory>
-#include "vm/kernel_binary.h"
#include "platform/globals.h"
#include "vm/compiler/frontend/kernel_to_il.h"
#include "vm/dart_api_impl.h"
#include "vm/flags.h"
#include "vm/growable_array.h"
#include "vm/kernel.h"
+#include "vm/object.h"
#include "vm/os.h"
namespace dart {
@@ -170,11 +172,11 @@
program->main_method_reference_ = NameIndex(reader->ReadUInt32() - 1);
if (formatVersion >= 41) {
- NonNullableByDefaultCompiledMode compilation_mode =
- static_cast<NonNullableByDefaultCompiledMode>(reader->ReadUInt32());
+ NNBDCompiledMode compilation_mode =
+ static_cast<NNBDCompiledMode>(reader->ReadUInt32());
program->compilation_mode_ = compilation_mode;
} else {
- program->compilation_mode_ = kNNBDDisabled;
+ program->compilation_mode_ = NNBDCompiledMode::kDisabled;
}
return program;
diff --git a/runtime/vm/kernel_isolate.cc b/runtime/vm/kernel_isolate.cc
index a326820..a67d70a 100644
--- a/runtime/vm/kernel_isolate.cc
+++ b/runtime/vm/kernel_isolate.cc
@@ -93,7 +93,6 @@
#if !defined(DART_PRECOMPILER)
api_flags.use_osr = true;
#endif
- api_flags.null_safety = false;
isolate = reinterpret_cast<Isolate*>(
create_group_callback(KernelIsolate::kName, KernelIsolate::kName, NULL,
@@ -759,9 +758,8 @@
isolate != NULL ? isolate->asserts() : FLAG_enable_asserts;
Dart_CObject null_safety;
- null_safety.type = Dart_CObject_kBool;
- null_safety.value.as_bool =
- isolate != NULL ? isolate->null_safety() : FLAG_null_safety;
+ null_safety.type = Dart_CObject_kInt32;
+ null_safety.value.as_int32 = FLAG_null_safety;
intptr_t num_experimental_flags = experimental_flags->length();
Dart_CObject** experimental_flags_array =
diff --git a/runtime/vm/lockers.h b/runtime/vm/lockers.h
index 16c6d93..df163dc 100644
--- a/runtime/vm/lockers.h
+++ b/runtime/vm/lockers.h
@@ -191,6 +191,22 @@
DISALLOW_COPY_AND_ASSIGN(MonitorLocker);
};
+// Leaves the given monitor during the scope of the object.
+class MonitorLeaveScope : public ValueObject {
+ public:
+ explicit MonitorLeaveScope(MonitorLocker* monitor)
+ : monitor_locker_(monitor) {
+ monitor_locker_->Exit();
+ }
+
+ virtual ~MonitorLeaveScope() { monitor_locker_->Enter(); }
+
+ private:
+ MonitorLocker* const monitor_locker_;
+
+ DISALLOW_COPY_AND_ASSIGN(MonitorLeaveScope);
+};
+
/*
* Safepoint mutex locker :
* This locker abstraction should be used when the enclosing code could
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 73a21be..7bac01c 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -1713,10 +1713,9 @@
// declared number of type parameters is still 0. It will become 1 after
// patching. The array type allocated below represents the raw type _List
// and not _List<E> as we could expect. Use with caution.
- type = Type::New(Class::Handle(zone, cls.raw()),
- TypeArguments::Handle(zone), TokenPosition::kNoSource,
- Dart::non_nullable_flag() ? Nullability::kNonNullable
- : Nullability::kLegacy);
+ type =
+ Type::New(Class::Handle(zone, cls.raw()), TypeArguments::Handle(zone),
+ TokenPosition::kNoSource, Nullability::kNonNullable);
type.SetIsFinalized();
type ^= type.Canonicalize();
object_store->set_array_type(type);
@@ -2782,8 +2781,7 @@
ASSERT(is_declaration_loaded());
const Type& type = Type::Handle(
Type::New(*this, Object::null_type_arguments(), TokenPosition::kNoSource,
- Dart::non_nullable_flag() ? Nullability::kNonNullable
- : Nullability::kLegacy));
+ Nullability::kNonNullable));
return ClassFinalizer::FinalizeType(*this, type);
}
@@ -4850,9 +4848,7 @@
// non-generic class, the nullability is set to kNonNullable instead of
// kLegacy when the non-nullable experiment is enabled.
ASSERT(value.type_class_id() != kNullCid || value.IsNullable());
- ASSERT(
- value.type_class_id() == kNullCid ||
- (Dart::non_nullable_flag() ? value.IsNonNullable() : value.IsLegacy()));
+ ASSERT(value.type_class_id() == kNullCid || value.IsNonNullable());
StorePointer(&raw_ptr()->declaration_type_, value.raw());
}
@@ -4875,10 +4871,9 @@
// consistently cache the kLegacy version of a type, unless the non-nullable
// experiment is enabled, in which case we store the kNonNullable version.
// In either cases, the exception is type Null which is stored as kNullable.
- Type& type = Type::Handle(
- Type::New(*this, TypeArguments::Handle(type_parameters()), token_pos(),
- Dart::non_nullable_flag() ? Nullability::kNonNullable
- : Nullability::kLegacy));
+ Type& type =
+ Type::Handle(Type::New(*this, TypeArguments::Handle(type_parameters()),
+ token_pos(), Nullability::kNonNullable));
type ^= ClassFinalizer::FinalizeType(*this, type);
set_declaration_type(type);
return type.raw();
@@ -7994,7 +7989,7 @@
ASSERT(bound.IsFinalized());
other_bound = other_type_param.bound();
ASSERT(other_bound.IsFinalized());
- if (Dart::non_nullable_flag() && kind == TypeEquality::kInSubtypeTest) {
+ if (kind == TypeEquality::kInSubtypeTest) {
// Bounds that are mutual subtypes are considered equal.
if (!bound.IsSubtypeOf(other_bound, Heap::kOld) ||
!other_bound.IsSubtypeOf(bound, Heap::kOld)) {
@@ -8385,12 +8380,10 @@
&is_generic_covariant_impl);
Type& object_type = Type::Handle(zone, Type::ObjectType());
- if (Dart::non_nullable_flag()) {
- ObjectStore* object_store = Isolate::Current()->object_store();
- object_type = nnbd_mode() == NNBDMode::kOptedInLib
- ? object_store->nullable_object_type()
- : object_store->legacy_object_type();
- }
+ ObjectStore* object_store = Isolate::Current()->object_store();
+ object_type = nnbd_mode() == NNBDMode::kOptedInLib
+ ? object_store->nullable_object_type()
+ : object_store->legacy_object_type();
for (intptr_t i = kClosure; i < num_params; ++i) {
const intptr_t original_param_index = has_receiver - kClosure + i;
if (is_covariant.Contains(original_param_index) ||
@@ -9020,12 +9013,12 @@
return true;
}
- if (Dart::non_nullable_flag()) {
- // The non-nullable experiment changes the fingerprints, and we only track
- // one fingerprint set.
- return true;
- }
-
+#if 1
+ // The non-nullable experiment changes the fingerprints, we only track
+ // one fingerprint set, until we unfork and settle on a single snapshot
+ // version this check has to be bypassed.
+ // TODO(36376) - Restore checking fingerprints of recognized methods.
+#else
if (SourceFingerprint() != fp) {
const bool recalculatingFingerprints = false;
if (recalculatingFingerprints) {
@@ -9044,6 +9037,7 @@
return false;
}
}
+#endif
return true;
}
@@ -17738,9 +17732,7 @@
type_arguments = GetTypeArguments();
}
type = Type::New(cls, type_arguments, TokenPosition::kNoSource,
- Dart::non_nullable_flag() ? Nullability::kNonNullable
- : Nullability::kLegacy,
- space);
+ Nullability::kNonNullable, space);
type.SetIsFinalized();
type ^= type.Canonicalize();
}
@@ -18278,65 +18270,61 @@
}
AbstractTypePtr AbstractType::NormalizeFutureOrType(Heap::Space space) const {
- if (Dart::non_nullable_flag()) {
- if (IsFutureOrType()) {
- const AbstractType& unwrapped_type =
- AbstractType::Handle(UnwrapFutureOr());
- const classid_t cid = unwrapped_type.type_class_id();
- if (cid == kDynamicCid || cid == kVoidCid) {
+ if (IsFutureOrType()) {
+ const AbstractType& unwrapped_type = AbstractType::Handle(UnwrapFutureOr());
+ const classid_t cid = unwrapped_type.type_class_id();
+ if (cid == kDynamicCid || cid == kVoidCid) {
+ return unwrapped_type.raw();
+ }
+ if (cid == kInstanceCid) {
+ if (IsNonNullable()) {
return unwrapped_type.raw();
}
- if (cid == kInstanceCid) {
- if (IsNonNullable()) {
- return unwrapped_type.raw();
- }
- if (IsNullable() || unwrapped_type.IsNullable()) {
- return Type::Cast(unwrapped_type)
- .ToNullability(Nullability::kNullable, space);
- }
+ if (IsNullable() || unwrapped_type.IsNullable()) {
return Type::Cast(unwrapped_type)
- .ToNullability(Nullability::kLegacy, space);
+ .ToNullability(Nullability::kNullable, space);
}
- if (cid == kNeverCid && unwrapped_type.IsNonNullable()) {
- ObjectStore* object_store = Isolate::Current()->object_store();
- if (object_store->non_nullable_future_never_type() == Type::null()) {
- const Class& cls = Class::Handle(object_store->future_class());
- ASSERT(!cls.IsNull());
- const TypeArguments& type_args =
- TypeArguments::Handle(TypeArguments::New(1));
- type_args.SetTypeAt(0, Type::Handle(object_store->never_type()));
- Type& type =
- Type::Handle(Type::New(cls, type_args, TokenPosition::kNoSource,
- Nullability::kNonNullable));
- type.SetIsFinalized();
- type ^= type.Canonicalize();
- object_store->set_non_nullable_future_never_type(type);
- }
- const Type& future_never_type =
- Type::Handle(object_store->non_nullable_future_never_type());
- return future_never_type.ToNullability(nullability(), space);
+ return Type::Cast(unwrapped_type)
+ .ToNullability(Nullability::kLegacy, space);
+ }
+ if (cid == kNeverCid && unwrapped_type.IsNonNullable()) {
+ ObjectStore* object_store = Isolate::Current()->object_store();
+ if (object_store->non_nullable_future_never_type() == Type::null()) {
+ const Class& cls = Class::Handle(object_store->future_class());
+ ASSERT(!cls.IsNull());
+ const TypeArguments& type_args =
+ TypeArguments::Handle(TypeArguments::New(1));
+ type_args.SetTypeAt(0, Type::Handle(object_store->never_type()));
+ Type& type =
+ Type::Handle(Type::New(cls, type_args, TokenPosition::kNoSource,
+ Nullability::kNonNullable));
+ type.SetIsFinalized();
+ type ^= type.Canonicalize();
+ object_store->set_non_nullable_future_never_type(type);
}
- if (cid == kNullCid) {
- ObjectStore* object_store = Isolate::Current()->object_store();
- if (object_store->nullable_future_null_type() == Type::null()) {
- const Class& cls = Class::Handle(object_store->future_class());
- ASSERT(!cls.IsNull());
- const TypeArguments& type_args =
- TypeArguments::Handle(TypeArguments::New(1));
- Type& type = Type::Handle(object_store->null_type());
- type_args.SetTypeAt(0, type);
- type = Type::New(cls, type_args, TokenPosition::kNoSource,
- Nullability::kNullable);
- type.SetIsFinalized();
- type ^= type.Canonicalize();
- object_store->set_nullable_future_null_type(type);
- }
- return object_store->nullable_future_null_type();
+ const Type& future_never_type =
+ Type::Handle(object_store->non_nullable_future_never_type());
+ return future_never_type.ToNullability(nullability(), space);
+ }
+ if (cid == kNullCid) {
+ ObjectStore* object_store = Isolate::Current()->object_store();
+ if (object_store->nullable_future_null_type() == Type::null()) {
+ const Class& cls = Class::Handle(object_store->future_class());
+ ASSERT(!cls.IsNull());
+ const TypeArguments& type_args =
+ TypeArguments::Handle(TypeArguments::New(1));
+ Type& type = Type::Handle(object_store->null_type());
+ type_args.SetTypeAt(0, type);
+ type = Type::New(cls, type_args, TokenPosition::kNoSource,
+ Nullability::kNullable);
+ type.SetIsFinalized();
+ type ^= type.Canonicalize();
+ object_store->set_nullable_future_null_type(type);
}
- if (IsNullable() && unwrapped_type.IsNullable()) {
- return Type::Cast(*this).ToNullability(Nullability::kNonNullable,
- space);
- }
+ return object_store->nullable_future_null_type();
+ }
+ if (IsNullable() && unwrapped_type.IsNullable()) {
+ return Type::Cast(*this).ToNullability(Nullability::kNonNullable, space);
}
}
return raw();
@@ -19017,8 +19005,7 @@
if (type.IsNull()) {
type = Type::New(Class::Handle(type_class.raw()),
Object::null_type_arguments(), TokenPosition::kNoSource,
- Dart::non_nullable_flag() ? Nullability::kNonNullable
- : Nullability::kLegacy);
+ Nullability::kNonNullable);
type.SetIsFinalized();
type ^= type.Canonicalize();
type_class.set_declaration_type(type);
@@ -19403,10 +19390,7 @@
if (cls.IsGeneric() || cls.IsClosureClass() || cls.IsTypedefClass()) {
return false;
}
- const Nullability declaration_nullability = Dart::non_nullable_flag()
- ? Nullability::kNonNullable
- : Nullability::kLegacy;
- return nullability() == declaration_nullability;
+ return nullability() == Nullability::kNonNullable;
}
AbstractTypePtr Type::Canonicalize(TrailPtr trail) const {
diff --git a/runtime/vm/service.h b/runtime/vm/service.h
index 4eedb96..ffdc290 100644
--- a/runtime/vm/service.h
+++ b/runtime/vm/service.h
@@ -15,7 +15,7 @@
namespace dart {
#define SERVICE_PROTOCOL_MAJOR_VERSION 3
-#define SERVICE_PROTOCOL_MINOR_VERSION 32
+#define SERVICE_PROTOCOL_MINOR_VERSION 33
class Array;
class EmbedderServiceHandler;
diff --git a/runtime/vm/service/service.md b/runtime/vm/service/service.md
index 4f6fcb0..457832a 100644
--- a/runtime/vm/service/service.md
+++ b/runtime/vm/service/service.md
@@ -1,8 +1,8 @@
-# Dart VM Service Protocol 3.32
+# Dart VM Service Protocol 3.33
> Please post feedback to the [observatory-discuss group][discuss-list]
-This document describes of _version 3.32_ of the Dart VM Service Protocol. This
+This document describes of _version 3.33_ of the Dart VM Service Protocol. This
protocol is used to communicate with a running Dart Virtual Machine.
To use the Service Protocol, start the VM with the *--observe* flag.
@@ -726,6 +726,9 @@
### getClientName
+_**Note**: This method is deprecated and will be removed in v4.0 of the protocol.
+An equivalent can be found in the Dart Development Service (DDS) protocol._
+
```
ClientName getClientName()
```
@@ -1201,6 +1204,9 @@
### requirePermissionToResume
+_**Note**: This method is deprecated and will be removed in v4.0 of the protocol.
+An equivalent can be found in the Dart Development Service (DDS) protocol._
+
```
Success requirePermissionToResume(bool onPauseStart [optional],
bool onPauseReload[optional],
@@ -1234,7 +1240,6 @@
approval for the current pause event, the isolate will be resumed if at
least one other client has attempted to [resume](#resume) the isolate.
-
### resume
```
@@ -1271,6 +1276,9 @@
### setClientName
+_**Note**: This method is deprecated and will be removed in v4.0 of the protocol.
+An equivalent can be found in the Dart Development Service (DDS) protocol._
+
```
Success setClientName(string name)
```
@@ -1416,7 +1424,7 @@
streamId | event types provided
-------- | -----------
VM | VMUpdate, VMFlagUpdate
-Isolate | IsolateStart, IsolateRunnable, IsolateExit, IsolateUpdate, IsolateReload, ServiceExtensionAdded
+Isolate | IsolateStart, IsolateRunnable, IsolateExit, IsolateUpdate, IsolateReload, IsolateSpawn, ServiceExtensionAdded
Debug | PauseStart, PauseExit, PauseBreakpoint, PauseInterrupted, PauseException, PausePostRequest, Resume, BreakpointAdded, BreakpointResolved, BreakpointRemoved, Inspect, None
GC | GC
Extension | Extension
@@ -1716,6 +1724,9 @@
### ClientName
+_**Note**: This class is deprecated and will be removed in v4.0 of the protocol.
+An equivalent can be found in the Dart Development Service (DDS) protocol._
+
```
class ClientName extends Response {
// The name of the currently connected VM service client.
@@ -3756,5 +3767,6 @@
3.31 | Added single client mode, which allows for the Dart Development Service (DDS) to become the sole client of
the VM service.
3.32 | Added `getClassList` RPC and `ClassList` object.
+3.33 | Added deprecation notice for `getClientName`, `setClientName`, `requireResumeApproval`, and `ClientName`. These RPCs are moving to the DDS protocol and will be removed in v4.0 of the VM service protocol.
[discuss-list]: https://groups.google.com/a/dartlang.org/forum/#!forum/observatory-discuss
diff --git a/runtime/vm/service_isolate.cc b/runtime/vm/service_isolate.cc
index 8b6e61a..5b2aadfe 100644
--- a/runtime/vm/service_isolate.cc
+++ b/runtime/vm/service_isolate.cc
@@ -346,7 +346,6 @@
Dart_IsolateFlags api_flags;
Isolate::FlagsInitialize(&api_flags);
- api_flags.null_safety = false;
isolate = reinterpret_cast<Isolate*>(
create_group_callback(ServiceIsolate::kName, ServiceIsolate::kName,
diff --git a/runtime/vm/thread.h b/runtime/vm/thread.h
index 708916f..d7cde8f 100644
--- a/runtime/vm/thread.h
+++ b/runtime/vm/thread.h
@@ -19,7 +19,6 @@
#include "vm/globals.h"
#include "vm/handles.h"
#include "vm/heap/pointer_block.h"
-#include "vm/heap/tlab.h"
#include "vm/os_thread.h"
#include "vm/random.h"
#include "vm/runtime_entry_list.h"
@@ -495,13 +494,10 @@
Heap* heap() const { return heap_; }
static intptr_t heap_offset() { return OFFSET_OF(Thread, heap_); }
- void set_tlab(TLAB tlab) {
- top_ = tlab.top;
- end_ = tlab.end;
- }
-
- TLAB tlab() { return TLAB(top_, end_); }
-
+ uword top() const { return top_; }
+ uword end() const { return end_; }
+ void set_top(uword top) { top_ = top; }
+ void set_end(uword end) { end_ = end; }
static intptr_t top_offset() { return OFFSET_OF(Thread, top_); }
static intptr_t end_offset() { return OFFSET_OF(Thread, end_); }
diff --git a/runtime/vm/thread_pool.cc b/runtime/vm/thread_pool.cc
index 22f62ca..d307f5f 100644
--- a/runtime/vm/thread_pool.cc
+++ b/runtime/vm/thread_pool.cc
@@ -15,341 +15,6 @@
5000,
"Free workers when they have been idle for this amount of time.");
-ThreadPool::ThreadPool()
- : shutting_down_(false),
- all_workers_(NULL),
- idle_workers_(NULL),
- count_started_(0),
- count_stopped_(0),
- count_running_(0),
- count_idle_(0),
- shutting_down_workers_(NULL),
- join_list_(NULL) {}
-
-ThreadPool::~ThreadPool() {
- Shutdown();
-}
-
-bool ThreadPool::RunImpl(std::unique_ptr<Task> task) {
- Worker* worker = NULL;
- bool new_worker = false;
- {
- // We need ThreadPool::mutex_ to access worker lists and other
- // ThreadPool state.
- MutexLocker ml(&mutex_);
- if (shutting_down_) {
- return false;
- }
- if (idle_workers_ == NULL) {
- worker = new Worker(this);
- ASSERT(worker != NULL);
- new_worker = true;
- count_started_++;
-
- // Add worker to the all_workers_ list.
- worker->all_next_ = all_workers_;
- all_workers_ = worker;
- worker->owned_ = true;
- count_running_++;
- } else {
- // Get the first worker from the idle worker list.
- worker = idle_workers_;
- idle_workers_ = worker->idle_next_;
- worker->idle_next_ = NULL;
- count_idle_--;
- count_running_++;
- }
- }
-
- // Release ThreadPool::mutex_ before calling Worker functions.
- ASSERT(worker != NULL);
- worker->SetTask(std::move(task));
- if (new_worker) {
- // Call StartThread after we've assigned the first task.
- worker->StartThread();
- }
- return true;
-}
-
-void ThreadPool::Shutdown() {
- Worker* saved = NULL;
- {
- MutexLocker ml(&mutex_);
- shutting_down_ = true;
- saved = all_workers_;
- all_workers_ = NULL;
- idle_workers_ = NULL;
-
- Worker* current = saved;
- while (current != NULL) {
- Worker* next = current->all_next_;
- current->idle_next_ = NULL;
- current->owned_ = false;
- current = next;
- count_stopped_++;
- }
-
- count_idle_ = 0;
- count_running_ = 0;
- ASSERT(count_started_ == count_stopped_);
- }
- // Release ThreadPool::mutex_ before calling Worker functions.
-
- {
- MonitorLocker eml(&exit_monitor_);
-
- // First tell all the workers to shut down.
- Worker* current = saved;
- OSThread* os_thread = OSThread::Current();
- ASSERT(os_thread != NULL);
- ThreadId id = os_thread->id();
- while (current != NULL) {
- Worker* next = current->all_next_;
- ThreadId currentId = current->id();
- if (currentId != id) {
- AddWorkerToShutdownList(current);
- }
- current->Shutdown();
- current = next;
- }
- saved = NULL;
-
- // Wait until all workers will exit.
- while (shutting_down_workers_ != NULL) {
- // Here, we are waiting for workers to exit. When a worker exits we will
- // be notified.
- eml.Wait();
- }
- }
-
- // Extract the join list, and join on the threads.
- JoinList* list = NULL;
- {
- MutexLocker ml(&mutex_);
- list = join_list_;
- join_list_ = NULL;
- }
-
- // Join non-idle threads.
- JoinList::Join(&list);
-
-#if defined(DEBUG)
- {
- MutexLocker ml(&mutex_);
- ASSERT(join_list_ == NULL);
- }
-#endif
-}
-
-bool ThreadPool::IsIdle(Worker* worker) {
- ASSERT(worker != NULL && worker->owned_);
- for (Worker* current = idle_workers_; current != NULL;
- current = current->idle_next_) {
- if (current == worker) {
- return true;
- }
- }
- return false;
-}
-
-bool ThreadPool::RemoveWorkerFromIdleList(Worker* worker) {
- ASSERT(worker != NULL && worker->owned_);
- if (idle_workers_ == NULL) {
- return false;
- }
-
- // Special case head of list.
- if (idle_workers_ == worker) {
- idle_workers_ = worker->idle_next_;
- worker->idle_next_ = NULL;
- return true;
- }
-
- for (Worker* current = idle_workers_; current->idle_next_ != NULL;
- current = current->idle_next_) {
- if (current->idle_next_ == worker) {
- current->idle_next_ = worker->idle_next_;
- worker->idle_next_ = NULL;
- return true;
- }
- }
- return false;
-}
-
-bool ThreadPool::RemoveWorkerFromAllList(Worker* worker) {
- ASSERT(worker != NULL && worker->owned_);
- if (all_workers_ == NULL) {
- return false;
- }
-
- // Special case head of list.
- if (all_workers_ == worker) {
- all_workers_ = worker->all_next_;
- worker->all_next_ = NULL;
- worker->owned_ = false;
- worker->done_ = true;
- return true;
- }
-
- for (Worker* current = all_workers_; current->all_next_ != NULL;
- current = current->all_next_) {
- if (current->all_next_ == worker) {
- current->all_next_ = worker->all_next_;
- worker->all_next_ = NULL;
- worker->owned_ = false;
- return true;
- }
- }
- return false;
-}
-
-void ThreadPool::SetIdleLocked(Worker* worker) {
- ASSERT(mutex_.IsOwnedByCurrentThread());
- ASSERT(worker->owned_ && !IsIdle(worker));
- worker->idle_next_ = idle_workers_;
- idle_workers_ = worker;
- count_idle_++;
- count_running_--;
-}
-
-void ThreadPool::SetIdleAndReapExited(Worker* worker) {
- JoinList* list = NULL;
- {
- MutexLocker ml(&mutex_);
- if (shutting_down_) {
- return;
- }
- if (join_list_ == NULL) {
- // Nothing to join, add to the idle list and return.
- SetIdleLocked(worker);
- return;
- }
- // There is something to join. Grab the join list, drop the lock, do the
- // join, then grab the lock again and add to the idle list.
- list = join_list_;
- join_list_ = NULL;
- }
- JoinList::Join(&list);
-
- {
- MutexLocker ml(&mutex_);
- if (shutting_down_) {
- return;
- }
- SetIdleLocked(worker);
- }
-}
-
-bool ThreadPool::ReleaseIdleWorker(Worker* worker) {
- MutexLocker ml(&mutex_);
- if (shutting_down_) {
- return false;
- }
- // Remove from idle list.
- if (!RemoveWorkerFromIdleList(worker)) {
- return false;
- }
- // Remove from all list.
- bool found = RemoveWorkerFromAllList(worker);
- ASSERT(found);
-
- // The thread for worker will exit. Add its ThreadId to the join_list_
- // so that we can join on it at the next opportunity.
- OSThread* os_thread = OSThread::Current();
- ASSERT(os_thread != NULL);
- ThreadJoinId join_id = OSThread::GetCurrentThreadJoinId(os_thread);
- JoinList::AddLocked(join_id, &join_list_);
- count_stopped_++;
- count_idle_--;
- return true;
-}
-
-// Only call while holding the exit_monitor_
-void ThreadPool::AddWorkerToShutdownList(Worker* worker) {
- ASSERT(exit_monitor_.IsOwnedByCurrentThread());
- worker->shutdown_next_ = shutting_down_workers_;
- shutting_down_workers_ = worker;
-}
-
-// Only call while holding the exit_monitor_
-bool ThreadPool::RemoveWorkerFromShutdownList(Worker* worker) {
- ASSERT(worker != NULL);
- ASSERT(shutting_down_workers_ != NULL);
- ASSERT(exit_monitor_.IsOwnedByCurrentThread());
-
- // Special case head of list.
- if (shutting_down_workers_ == worker) {
- shutting_down_workers_ = worker->shutdown_next_;
- worker->shutdown_next_ = NULL;
- return true;
- }
-
- for (Worker* current = shutting_down_workers_;
- current->shutdown_next_ != NULL; current = current->shutdown_next_) {
- if (current->shutdown_next_ == worker) {
- current->shutdown_next_ = worker->shutdown_next_;
- worker->shutdown_next_ = NULL;
- return true;
- }
- }
- return false;
-}
-
-void ThreadPool::JoinList::AddLocked(ThreadJoinId id, JoinList** list) {
- *list = new JoinList(id, *list);
-}
-
-void ThreadPool::JoinList::Join(JoinList** list) {
- while (*list != NULL) {
- JoinList* current = *list;
- *list = current->next();
- OSThread::Join(current->id());
- delete current;
- }
-}
-
-ThreadPool::Task::Task() {}
-
-ThreadPool::Task::~Task() {}
-
-ThreadPool::Worker::Worker(ThreadPool* pool)
- : pool_(pool),
- task_(nullptr),
- id_(OSThread::kInvalidThreadId),
- done_(false),
- owned_(false),
- all_next_(NULL),
- idle_next_(NULL),
- shutdown_next_(NULL) {}
-
-ThreadId ThreadPool::Worker::id() {
- MonitorLocker ml(&monitor_);
- return id_;
-}
-
-void ThreadPool::Worker::StartThread() {
-#if defined(DEBUG)
- // Must call SetTask before StartThread.
- { // NOLINT
- MonitorLocker ml(&monitor_);
- ASSERT(task_ != nullptr);
- }
-#endif
- int result = OSThread::Start("DartWorker", &Worker::Main,
- reinterpret_cast<uword>(this));
- if (result != 0) {
- FATAL1("Could not start worker thread: result = %d.", result);
- }
-}
-
-void ThreadPool::Worker::SetTask(std::unique_ptr<Task> task) {
- std::atomic_thread_fence(std::memory_order_release);
- MonitorLocker ml(&monitor_);
- ASSERT(task_ == nullptr);
- task_ = std::move(task);
- ml.Notify();
-}
-
static int64_t ComputeTimeout(int64_t idle_start) {
int64_t worker_timeout_micros =
FLAG_worker_timeout_millis * kMicrosecondsPerMillisecond;
@@ -369,110 +34,217 @@
}
}
-bool ThreadPool::Worker::Loop() {
- MonitorLocker ml(&monitor_);
- int64_t idle_start;
- while (true) {
- ASSERT(task_ != nullptr);
- std::unique_ptr<Task> task = std::move(task_);
+ThreadPool::ThreadPool() : all_workers_dead_(false) {}
- // Release monitor while handling the task.
- ml.Exit();
- std::atomic_thread_fence(std::memory_order_acquire);
- task->Run();
- ASSERT(Isolate::Current() == NULL);
- task.reset();
- ml.Enter();
+ThreadPool::~ThreadPool() {
+ TriggerShutdown();
- ASSERT(task_ == nullptr);
- if (IsDone()) {
+ // Wait until all workers are dead. Any new death will notify the exit
+ // monitor.
+ {
+ MonitorLocker eml(&exit_monitor_);
+ while (!all_workers_dead_) {
+ eml.Wait();
+ }
+ }
+
+ // Join all dead workers.
+ WorkerList dead_workers_to_join;
+ {
+ MonitorLocker ml(&pool_monitor_);
+ ObtainDeadWorkersLocked(&dead_workers_to_join);
+ }
+ JoinDeadWorkersLocked(&dead_workers_to_join);
+}
+
+bool ThreadPool::RunImpl(std::unique_ptr<Task> task) {
+ Worker* new_worker = nullptr;
+ {
+ MonitorLocker ml(&pool_monitor_);
+ if (shutting_down_) {
return false;
}
- ASSERT(!done_);
- pool_->SetIdleAndReapExited(this);
- idle_start = OS::GetCurrentMonotonicMicros();
- while (true) {
- Monitor::WaitResult result = ml.WaitMicros(ComputeTimeout(idle_start));
- if (task_ != nullptr) {
- // We've found a task. Process it, regardless of whether the
- // worker is done_.
+ new_worker = ScheduleTaskLocked(&ml, std::move(task));
+ }
+ if (new_worker != nullptr) {
+ new_worker->StartThread();
+ }
+ return true;
+}
+
+void ThreadPool::WorkerLoop(Worker* worker) {
+ WorkerList dead_workers_to_join;
+
+ while (true) {
+ MonitorLocker ml(&pool_monitor_);
+
+ if (!tasks_.IsEmpty()) {
+ IdleToRunningLocked(worker);
+ while (!tasks_.IsEmpty()) {
+ std::unique_ptr<Task> task(tasks_.RemoveFirst());
+ pending_tasks_--;
+ MonitorLeaveScope mls(&ml);
+ task->Run();
+ ASSERT(Isolate::Current() == nullptr);
+ task.reset();
+ }
+ RunningToIdleLocked(worker);
+ }
+
+ if (shutting_down_) {
+ ObtainDeadWorkersLocked(&dead_workers_to_join);
+ IdleToDeadLocked(worker);
+ break;
+ }
+
+ // Sleep until we get a new task, we time out or we're shutdown.
+ const int64_t idle_start = OS::GetCurrentMonotonicMicros();
+ bool done = false;
+ while (!done) {
+ const auto result = ml.WaitMicros(ComputeTimeout(idle_start));
+
+ // We have to drain all pending tasks.
+ if (!tasks_.IsEmpty()) break;
+
+ if (shutting_down_ || result == Monitor::kTimedOut) {
+ done = true;
break;
}
- if (IsDone()) {
- return false;
- }
- if ((result == Monitor::kTimedOut) && pool_->ReleaseIdleWorker(this)) {
- return true;
- }
+ }
+ if (done) {
+ ObtainDeadWorkersLocked(&dead_workers_to_join);
+ IdleToDeadLocked(worker);
+ break;
}
}
- UNREACHABLE();
- return false;
+
+ // Before we transitioned to dead we obtained the list of previously died dead
+ // workers, which we join here. Since every death of a worker will join
+ // previously died workers, we keep the pending non-joined [dead_workers_] to
+ // effectively 1.
+ JoinDeadWorkersLocked(&dead_workers_to_join);
}
-void ThreadPool::Worker::Shutdown() {
- MonitorLocker ml(&monitor_);
- done_ = true;
- ml.Notify();
-}
+void ThreadPool::TriggerShutdown() {
+ MonitorLocker ml(&pool_monitor_);
-// static
-void ThreadPool::Worker::Main(uword args) {
- Worker* worker = reinterpret_cast<Worker*>(args);
- OSThread* os_thread = OSThread::Current();
- ASSERT(os_thread != NULL);
- ThreadId id = os_thread->id();
- ThreadPool* pool;
+ // Prevent scheduling of new tasks.
+ shutting_down_ = true;
- {
- MonitorLocker ml(&worker->monitor_);
- ASSERT(worker->task_);
- worker->id_ = id;
- pool = worker->pool_;
+ if (running_workers_.IsEmpty() && idle_workers_.IsEmpty()) {
+ // All workers have already died.
+ all_workers_dead_ = true;
+ } else {
+ // Tell workers to drain remaining work and then shut down.
+ ml.NotifyAll();
}
+}
- bool released = worker->Loop();
+void ThreadPool::IdleToRunningLocked(Worker* worker) {
+ ASSERT(idle_workers_.ContainsForDebugging(worker));
+ idle_workers_.Remove(worker);
+ running_workers_.Append(worker);
+ count_idle_--;
+ count_running_++;
+}
- // It should be okay to access these unlocked here in this assert.
- // worker->all_next_ is retained by the pool for shutdown monitoring.
- ASSERT(!worker->owned_ && (worker->idle_next_ == NULL));
+void ThreadPool::RunningToIdleLocked(Worker* worker) {
+ ASSERT(tasks_.IsEmpty());
- if (!released) {
- // This worker is exiting because the thread pool is being shut down.
- // Inform the thread pool that we are exiting. We remove this worker from
- // shutting_down_workers_ list because there will be no need for the
- // ThreadPool to take action for this worker.
- ThreadJoinId join_id = OSThread::GetCurrentThreadJoinId(os_thread);
- {
- MutexLocker ml(&pool->mutex_);
- JoinList::AddLocked(join_id, &pool->join_list_);
- }
+ ASSERT(running_workers_.ContainsForDebugging(worker));
+ running_workers_.Remove(worker);
+ idle_workers_.Append(worker);
+ count_running_--;
+ count_idle_++;
+}
-// worker->id_ should never be read again, so set to invalid in debug mode
-// for asserts.
-#if defined(DEBUG)
- {
- MonitorLocker ml(&worker->monitor_);
- worker->id_ = OSThread::kInvalidThreadId;
- }
-#endif
+void ThreadPool::IdleToDeadLocked(Worker* worker) {
+ ASSERT(tasks_.IsEmpty());
- // Remove from the shutdown list, delete, and notify the thread pool.
- {
- MonitorLocker eml(&pool->exit_monitor_);
- pool->RemoveWorkerFromShutdownList(worker);
- delete worker;
+ ASSERT(idle_workers_.ContainsForDebugging(worker));
+ idle_workers_.Remove(worker);
+ dead_workers_.Append(worker);
+ count_idle_--;
+ count_dead_++;
+
+ // Notify shutdown thread that the worker thread is about to finish.
+ if (shutting_down_) {
+ if (running_workers_.IsEmpty() && idle_workers_.IsEmpty()) {
+ all_workers_dead_ = true;
+ MonitorLocker eml(&exit_monitor_);
eml.Notify();
}
- } else {
- // This worker is going down because it was idle for too long. This case
- // is not due to a ThreadPool Shutdown. Thus, we simply delete the worker.
- // The worker's id is added to the thread pool's join list by
- // ReleaseIdleWorker, so in the case that the thread pool begins shutting
- // down immediately after returning from worker->Loop() above, we still
- // wait for the thread to exit by joining on it in Shutdown().
+ }
+}
+
+void ThreadPool::ObtainDeadWorkersLocked(WorkerList* dead_workers_to_join) {
+ dead_workers_to_join->AppendList(&dead_workers_);
+ ASSERT(dead_workers_.IsEmpty());
+ count_dead_ = 0;
+}
+
+void ThreadPool::JoinDeadWorkersLocked(WorkerList* dead_workers_to_join) {
+ auto it = dead_workers_to_join->begin();
+ while (it != dead_workers_to_join->end()) {
+ Worker* worker = *it;
+ it = dead_workers_to_join->Erase(it);
+
+ OSThread::Join(worker->join_id_);
delete worker;
}
+ ASSERT(dead_workers_to_join->IsEmpty());
+}
+
+ThreadPool::Worker* ThreadPool::ScheduleTaskLocked(MonitorLocker* ml,
+ std::unique_ptr<Task> task) {
+ // Enqueue the new task.
+ tasks_.Append(task.release());
+ pending_tasks_++;
+ ASSERT(pending_tasks_ >= 1);
+
+ // Notify existing idle worker (if available).
+ if (count_idle_ >= pending_tasks_) {
+ ASSERT(!idle_workers_.IsEmpty());
+ ml->Notify();
+ return nullptr;
+ }
+
+ // Otherwise start a new worker.
+ auto new_worker = new Worker(this);
+ idle_workers_.Append(new_worker);
+ count_idle_++;
+ return new_worker;
+}
+
+ThreadPool::Worker::Worker(ThreadPool* pool)
+ : pool_(pool), join_id_(OSThread::kInvalidThreadJoinId) {}
+
+void ThreadPool::Worker::StartThread() {
+ int result = OSThread::Start("DartWorker", &Worker::Main,
+ reinterpret_cast<uword>(this));
+ if (result != 0) {
+ FATAL1("Could not start worker thread: result = %d.", result);
+ }
+}
+
+void ThreadPool::Worker::Main(uword args) {
+ OSThread* os_thread = OSThread::Current();
+ ASSERT(os_thread != nullptr);
+
+ Worker* worker = reinterpret_cast<Worker*>(args);
+ ThreadPool* pool = worker->pool_;
+
+ // Once the worker quits it needs to be joined.
+ worker->join_id_ = OSThread::GetCurrentThreadJoinId(os_thread);
+
+#if defined(DEBUG)
+ {
+ MonitorLocker ml(&pool->pool_monitor_);
+ ASSERT(pool->idle_workers_.ContainsForDebugging(worker));
+ }
+#endif
+
+ pool->WorkerLoop(worker);
// Call the thread exit hook here to notify the embedder that the
// thread pool thread is exiting.
diff --git a/runtime/vm/thread_pool.h b/runtime/vm/thread_pool.h
index 5a1ff54..08fc19d 100644
--- a/runtime/vm/thread_pool.h
+++ b/runtime/vm/thread_pool.h
@@ -10,19 +10,22 @@
#include "vm/allocation.h"
#include "vm/globals.h"
+#include "vm/intrusive_dlist.h"
#include "vm/os_thread.h"
namespace dart {
+class MonitorLocker;
+
class ThreadPool {
public:
// Subclasses of Task are able to run on a ThreadPool.
- class Task {
+ class Task : public IntrusiveDListEntry<Task> {
protected:
- Task();
+ Task() {}
public:
- virtual ~Task();
+ virtual ~Task() {}
// Override this to provide task-specific behavior.
virtual void Run() = 0;
@@ -32,10 +35,7 @@
};
ThreadPool();
-
- // Shuts down this thread pool. Causes workers to terminate
- // themselves when they are active again.
- ~ThreadPool();
+ virtual ~ThreadPool();
// Runs a task on the thread pool.
template <typename T, typename... Args>
@@ -43,110 +43,65 @@
return RunImpl(std::unique_ptr<Task>(new T(std::forward<Args>(args)...)));
}
- // Some simple stats.
- uint64_t workers_running() const { return count_running_; }
- uint64_t workers_idle() const { return count_idle_; }
- uint64_t workers_started() const { return count_started_; }
- uint64_t workers_stopped() const { return count_stopped_; }
+ // Trigger shutdown, prevents scheduling of new tasks.
+ void TriggerShutdown();
+
+ // Exposed for unit test in thread_pool_test.cc
+ uint64_t workers_started() const { return count_idle_ + count_running_; }
+ // Exposed for unit test in thread_pool_test.cc
+ uint64_t workers_stopped() const { return count_dead_; }
private:
- class Worker {
+ class Worker : public IntrusiveDListEntry<Worker> {
public:
explicit Worker(ThreadPool* pool);
- // Sets a task on the worker.
- void SetTask(std::unique_ptr<Task> task);
-
// Starts the thread for the worker. This should only be called
// after a task has been set by the initial call to SetTask().
void StartThread();
- // Main loop for a worker. Returns true if worker is removed from thread
- // lists, false otherwise.
- bool Loop();
-
- // Causes worker to terminate eventually.
- void Shutdown();
-
- // Get the Worker's thread id.
- ThreadId id();
-
private:
friend class ThreadPool;
// The main entry point for new worker threads.
static void Main(uword args);
- bool IsDone() const { return done_; }
-
- // Fields owned by Worker.
- Monitor monitor_;
+ // Fields initialized during construction or in start of main function of
+ // thread.
ThreadPool* pool_;
- std::unique_ptr<Task> task_;
- ThreadId id_;
- bool done_;
-
- // Fields owned by ThreadPool. Workers should not look at these
- // directly. It's like looking at the sun.
- bool owned_; // Protected by ThreadPool::mutex_
- Worker* all_next_; // Protected by ThreadPool::mutex_
- Worker* idle_next_; // Protected by ThreadPool::mutex_
-
- Worker* shutdown_next_; // Protected by ThreadPool::exit_monitor
+ ThreadJoinId join_id_;
DISALLOW_COPY_AND_ASSIGN(Worker);
};
- class JoinList {
- public:
- explicit JoinList(ThreadJoinId id, JoinList* next) : id_(id), next_(next) {}
-
- // The thread pool's mutex_ must be held when calling this.
- static void AddLocked(ThreadJoinId id, JoinList** list);
-
- static void Join(JoinList** list);
-
- ThreadJoinId id() const { return id_; }
- JoinList* next() const { return next_; }
-
- private:
- ThreadJoinId id_;
- JoinList* next_;
-
- DISALLOW_COPY_AND_ASSIGN(JoinList);
- };
+ private:
+ using TaskList = IntrusiveDList<Task>;
+ using WorkerList = IntrusiveDList<Worker>;
bool RunImpl(std::unique_ptr<Task> task);
- void Shutdown();
+ void WorkerLoop(Worker* worker);
- // Expensive. Use only in assertions.
- bool IsIdle(Worker* worker);
+ Worker* ScheduleTaskLocked(MonitorLocker* ml, std::unique_ptr<Task> task);
- bool RemoveWorkerFromIdleList(Worker* worker);
- bool RemoveWorkerFromAllList(Worker* worker);
+ void IdleToRunningLocked(Worker* worker);
+ void RunningToIdleLocked(Worker* worker);
+ void IdleToDeadLocked(Worker* worker);
+ void ObtainDeadWorkersLocked(WorkerList* dead_workers_to_join);
+ void JoinDeadWorkersLocked(WorkerList* dead_workers_to_join);
- void AddWorkerToShutdownList(Worker* worker);
- bool RemoveWorkerFromShutdownList(Worker* worker);
-
- void ReapExitedIdleThreads();
-
- // Worker operations.
- void SetIdleLocked(Worker* worker); // Assumes mutex_ is held.
- void SetIdleAndReapExited(Worker* worker);
- bool ReleaseIdleWorker(Worker* worker);
-
- Mutex mutex_;
- bool shutting_down_;
- Worker* all_workers_;
- Worker* idle_workers_;
- uint64_t count_started_;
- uint64_t count_stopped_;
- uint64_t count_running_;
- uint64_t count_idle_;
+ Monitor pool_monitor_;
+ bool shutting_down_ = false;
+ uint64_t count_running_ = 0;
+ uint64_t count_idle_ = 0;
+ uint64_t count_dead_ = 0;
+ WorkerList running_workers_;
+ WorkerList idle_workers_;
+ WorkerList dead_workers_;
+ uint64_t pending_tasks_ = 0;
+ TaskList tasks_;
Monitor exit_monitor_;
- Worker* shutting_down_workers_;
- JoinList* join_list_;
+ std::atomic<bool> all_workers_dead_;
DISALLOW_COPY_AND_ASSIGN(ThreadPool);
};
diff --git a/sdk/lib/_internal/vm/bin/builtin.dart b/sdk/lib/_internal/vm/bin/builtin.dart
index 3c7f591..b79755e 100644
--- a/sdk/lib/_internal/vm/bin/builtin.dart
+++ b/sdk/lib/_internal/vm/bin/builtin.dart
@@ -11,7 +11,6 @@
import 'dart:collection' hide LinkedList, LinkedListEntry;
import 'dart:_internal' hide Symbol;
import 'dart:io';
-import 'dart:convert';
import 'dart:isolate';
import 'dart:typed_data';
@@ -131,12 +130,11 @@
_log('Resolving package with uri path: ${uri.path}');
}
var resolvedUri;
- final error = _packageError;
- if (error != null) {
+ if (_packageError != null) {
if (_traceLoading) {
- _log("Resolving package with pending resolution error: $error");
+ _log("Resolving package with pending resolution error: $_packageError");
}
- throw error;
+ throw _packageError;
} else {
if (packageNameEnd < 0) {
// Package URIs must have a path after the package name, even if it's
@@ -432,67 +430,9 @@
return result;
}
-_loadPackageConfigFile(bool traceLoading, Uri packageConfig) {
- try {
- final Uint8List data = File.fromUri(packageConfig).readAsBytesSync();
- if (traceLoading) {
- _log("Loaded package config file from $packageConfig.");
- }
- return _parsePackageConfig(traceLoading, packageConfig, data);
- } catch (e, s) {
- if (traceLoading) {
- _log("Error loading packages: $e\n$s");
- }
- return "Uncaught error ($e) loading packages file.";
- }
-}
-
-// The .dart_tool/package_config.json format is described in
-//
-// https://github.com/dart-lang/language/blob/master/accepted/future-releases/language-versioning/package-config-file-v2.md
-//
-// The returned list has the format:
-//
-// [0] Location of package_config.json file.
-// [1] null
-// [n*2] Name of n-th package
-// [n*2 + 1] Location of n-th package's sources (as a String)
-//
-List _parsePackageConfig(
- bool traceLoading, Uri packageConfig, Uint8List bytes) {
- final Map packageJson = json.decode(utf8.decode(bytes));
- final version = packageJson['configVersion'];
- if (version != 2) {
- throw 'The package configuration file has an unsupported version.';
- }
- // The first entry contains the location of the identified
- // .dart_tool/package_config.json file instead of a mapping.
- final result = <dynamic>[packageConfig.toString(), null];
- final List packages = packageJson['packages'] ?? [];
- for (final Map package in packages) {
- final String name = package['name'];
- final String rootUri = package['rootUri'];
- final String packageUri = package['packageUri'];
- final Uri resolvedRootUri = packageConfig.resolve(rootUri);
- final Uri resolvedPackageUri = packageUri != null
- ? resolvedRootUri.resolve(packageUri)
- : resolvedRootUri;
- if (packageUri != null &&
- !'$resolvedPackageUri'.contains('$resolvedRootUri')) {
- throw 'The resolved "packageUri" is not a subdirectory of the "rootUri".';
- }
- result.add(name);
- result.add(resolvedPackageUri.toString());
- if (traceLoading) {
- _log('Resolved package $name to be at $resolvedPackageUri');
- }
- }
- return result;
-}
-
_loadPackagesFile(bool traceLoading, Uri packagesFile) {
try {
- final Uint8List data = File.fromUri(packagesFile).readAsBytesSync();
+ var data = new File.fromUri(packagesFile).readAsBytesSync();
if (traceLoading) {
_log("Loaded packages file from $packagesFile:\n"
"${new String.fromCharCodes(data)}");
@@ -506,49 +446,39 @@
}
}
-_findPackagesConfiguration(bool traceLoading, Uri base) {
+_findPackagesFile(bool traceLoading, Uri base) {
try {
- // Walk up the directory hierarchy to check for the existence of either one
- // of
- // - .dart_tool/package_config.json
- // - .packages
- var currentDir = new File.fromUri(base).parent;
- while (true) {
- final dirUri = currentDir.uri;
-
- // We prefer using `.dart_tool/package_config.json` over `.packages`.
- final packageConfig = dirUri.resolve(".dart_tool/package_config.json");
- if (traceLoading) {
- _log("Checking for $packageConfig file.");
- }
- bool exists = File.fromUri(packageConfig).existsSync();
- if (traceLoading) {
- _log("$packageConfig exists: $exists");
- }
- if (exists) {
- return _loadPackageConfigFile(traceLoading, packageConfig);
- }
-
- final packagesFile = dirUri.resolve(".packages");
+ // Walk up the directory hierarchy to check for the existence of
+ // .packages files in parent directories and for the existence of a
+ // packages/ directory on the first iteration.
+ var dir = new File.fromUri(base).parent;
+ var prev = null;
+ // Keep searching until we reach the root.
+ while ((prev == null) || (prev.path != dir.path)) {
+ // Check for the existence of a .packages file and if it exists try to
+ // load and parse it.
+ var dirUri = dir.uri;
+ var packagesFile = dirUri.resolve(".packages");
if (traceLoading) {
_log("Checking for $packagesFile file.");
}
- exists = File.fromUri(packagesFile).existsSync();
+ var exists = new File.fromUri(packagesFile).existsSync();
if (traceLoading) {
_log("$packagesFile exists: $exists");
}
if (exists) {
return _loadPackagesFile(traceLoading, packagesFile);
}
- final parentDir = currentDir.parent;
- if (dirUri == parentDir.uri) break;
- currentDir = parentDir;
+ // Move up one level.
+ prev = dir;
+ dir = dir.parent;
}
+ // No .packages file was found.
if (traceLoading) {
- _log("Could not resolve a package configuration from $base");
+ _log("Could not resolve a package location from $base");
}
- return "Could not resolve a package configuration for base at $base";
+ return "Could not resolve a package location for base at $base";
} catch (e, s) {
if (traceLoading) {
_log("Error loading packages: $e\n$s");
@@ -579,7 +509,7 @@
try {
if (tag == -1) {
if (resource.scheme == '' || resource.scheme == 'file') {
- return _findPackagesConfiguration(traceLoading, resource);
+ return _findPackagesFile(traceLoading, resource);
} else {
return "Unsupported scheme used to locate .packages file:'$resource'.";
}
@@ -650,9 +580,6 @@
}
// Embedder Entrypoint:
-// The embedder calls this method with the value of the --packages command line
-// option. It can point to a ".packages" or a ".dart_tool/package_config.json"
-// file.
@pragma("vm:entry-point")
String _setPackagesMap(String packagesParam) {
if (!_setupCompleted) {
diff --git a/sdk/lib/_internal/vm/lib/internal_patch.dart b/sdk/lib/_internal/vm/lib/internal_patch.dart
index 76a8a88..6accfc3 100644
--- a/sdk/lib/_internal/vm/lib/internal_patch.dart
+++ b/sdk/lib/_internal/vm/lib/internal_patch.dart
@@ -48,6 +48,7 @@
// Implementation of package root/map provision.
static var packageRootString;
static var packageConfigString;
+ static var packageRootUriFuture;
static var packageConfigUriFuture;
static var resolvePackageUriFuture;
diff --git a/sdk/lib/_internal/vm/lib/isolate_patch.dart b/sdk/lib/_internal/vm/lib/isolate_patch.dart
index e357b8a..e17c1de 100644
--- a/sdk/lib/_internal/vm/lib/isolate_patch.dart
+++ b/sdk/lib/_internal/vm/lib/isolate_patch.dart
@@ -267,21 +267,21 @@
// The control port (aka the main isolate port) does not handle any messages.
if (controlPort != null) {
controlPort.handler = (_) {}; // Nobody home on the control port.
+ }
- if (parentPort != null) {
- // Build a message to our parent isolate providing access to the
- // current isolate's control port and capabilities.
- //
- // TODO(floitsch): Send an error message if we can't find the entry point.
- final readyMessage = List(2);
- readyMessage[0] = controlPort.sendPort;
- readyMessage[1] = capabilities;
+ if (parentPort != null) {
+ // Build a message to our parent isolate providing access to the
+ // current isolate's control port and capabilities.
+ //
+ // TODO(floitsch): Send an error message if we can't find the entry point.
+ var readyMessage = new List(2);
+ readyMessage[0] = controlPort.sendPort;
+ readyMessage[1] = capabilities;
- // Out of an excess of paranoia we clear the capabilities from the
- // stack. Not really necessary.
- capabilities = null;
- parentPort.send(readyMessage);
- }
+ // Out of an excess of paranoia we clear the capabilities from the
+ // stack. Not really necessary.
+ capabilities = null;
+ parentPort.send(readyMessage);
}
assert(capabilities == null);
@@ -343,6 +343,7 @@
}
static bool _packageSupported() =>
+ (VMLibraryHooks.packageRootUriFuture != null) &&
(VMLibraryHooks.packageConfigUriFuture != null) &&
(VMLibraryHooks.resolvePackageUriFuture != null);
@@ -354,33 +355,46 @@
SendPort onError,
String debugName}) async {
// `paused` isn't handled yet.
- // Check for the type of `entryPoint` on the spawning isolate to make
- // error-handling easier.
- if (entryPoint is! _UnaryFunction) {
- throw new ArgumentError(entryPoint);
- }
- // The VM will invoke [_startIsolate] with entryPoint as argument.
-
- // We do not inherit the package config settings from the parent isolate,
- // instead we use the values that were set on the command line.
- var packageConfig = VMLibraryHooks.packageConfigString;
- var script = VMLibraryHooks.platformScript;
- if (script == null) {
- // We do not have enough information to support spawning the new
- // isolate.
- throw new UnsupportedError("Isolate.spawn");
- }
- if (script.isScheme("package")) {
- script = await Isolate.resolvePackageUri(script);
- }
-
- final RawReceivePort readyPort = new RawReceivePort();
+ RawReceivePort readyPort;
try {
- _spawnFunction(readyPort.sendPort, script.toString(), entryPoint, message,
- paused, errorsAreFatal, onExit, onError, packageConfig, debugName);
+ // Check for the type of `entryPoint` on the spawning isolate to make
+ // error-handling easier.
+ if (entryPoint is! _UnaryFunction) {
+ throw new ArgumentError(entryPoint);
+ }
+ // The VM will invoke [_startIsolate] with entryPoint as argument.
+ readyPort = new RawReceivePort();
+
+ // We do not inherit the package config settings from the parent isolate,
+ // instead we use the values that were set on the command line.
+ var packageConfig = VMLibraryHooks.packageConfigString;
+ var script = VMLibraryHooks.platformScript;
+ if (script == null) {
+ // We do not have enough information to support spawning the new
+ // isolate.
+ throw new UnsupportedError("Isolate.spawn");
+ }
+ if (script.scheme == "package") {
+ script = await Isolate.resolvePackageUri(script);
+ }
+
+ _spawnFunction(
+ readyPort.sendPort,
+ script.toString(),
+ entryPoint,
+ message,
+ paused,
+ errorsAreFatal,
+ onExit,
+ onError,
+ null,
+ packageConfig,
+ debugName);
return await _spawnCommon(readyPort);
} catch (e, st) {
- readyPort.close();
+ if (readyPort != null) {
+ readyPort.close();
+ }
return await new Future<Isolate>.error(e, st);
}
}
@@ -397,6 +411,7 @@
Uri packageConfig,
bool automaticPackageResolution: false,
String debugName}) async {
+ RawReceivePort readyPort;
if (environment != null) {
throw new UnimplementedError("environment");
}
@@ -419,30 +434,38 @@
"packageRoot and a packageConfig.");
}
}
- // Resolve the uri against the current isolate's root Uri first.
- final Uri spawnedUri = _rootUri.resolveUri(uri);
-
- // Inherit this isolate's package resolution setup if not overridden.
- if (!automaticPackageResolution && packageConfig == null) {
- if (Isolate._packageSupported()) {
- packageConfig = await Isolate.packageConfig;
- }
- }
-
- // Ensure to resolve package: URIs being handed in as parameters.
- if (packageConfig != null) {
- // Avoid calling resolvePackageUri if not strictly necessary in case
- // the API is not supported.
- if (packageConfig.isScheme("package")) {
- packageConfig = await Isolate.resolvePackageUri(packageConfig);
- }
- }
-
- // The VM will invoke [_startIsolate] and not `main`.
- final packageConfigString = packageConfig?.toString();
-
- final RawReceivePort readyPort = new RawReceivePort();
try {
+ // Resolve the uri against the current isolate's root Uri first.
+ var spawnedUri = _rootUri.resolveUri(uri);
+
+ // Inherit this isolate's package resolution setup if not overridden.
+ if (!automaticPackageResolution &&
+ (packageRoot == null) &&
+ (packageConfig == null)) {
+ if (Isolate._packageSupported()) {
+ packageRoot = await Isolate.packageRoot;
+ packageConfig = await Isolate.packageConfig;
+ }
+ }
+
+ // Ensure to resolve package: URIs being handed in as parameters.
+ if (packageRoot != null) {
+ // `packages/` directory is no longer supported. Force it null.
+ // TODO(mfairhurst) Should this throw an exception?
+ packageRoot = null;
+ } else if (packageConfig != null) {
+ // Avoid calling resolvePackageUri if not strictly necessary in case
+ // the API is not supported.
+ if (packageConfig.scheme == "package") {
+ packageConfig = await Isolate.resolvePackageUri(packageConfig);
+ }
+ }
+
+ // The VM will invoke [_startIsolate] and not `main`.
+ readyPort = new RawReceivePort();
+ var packageRootString = packageRoot?.toString();
+ var packageConfigString = packageConfig?.toString();
+
_spawnUri(
readyPort.sendPort,
spawnedUri.toString(),
@@ -455,17 +478,20 @@
checked,
null,
/* environment */
+ packageRootString,
packageConfigString,
debugName);
return await _spawnCommon(readyPort);
} catch (e) {
- readyPort.close();
+ if (readyPort != null) {
+ readyPort.close();
+ }
rethrow;
}
}
static Future<Isolate> _spawnCommon(RawReceivePort readyPort) {
- final completer = new Completer<Isolate>.sync();
+ Completer completer = new Completer<Isolate>.sync();
readyPort.handler = (readyMessage) {
readyPort.close();
if (readyMessage is List && readyMessage.length == 2) {
@@ -510,6 +536,7 @@
bool errorsAreFatal,
SendPort onExit,
SendPort onError,
+ String packageRoot,
String packageConfig,
String debugName) native "Isolate_spawnFunction";
@@ -524,6 +551,7 @@
bool errorsAreFatal,
bool checked,
List environment,
+ String packageRoot,
String packageConfig,
String debugName) native "Isolate_spawnUri";
diff --git a/sdk_nnbd/lib/_internal/vm/bin/builtin.dart b/sdk_nnbd/lib/_internal/vm/bin/builtin.dart
index 711abb0..e186a81 100644
--- a/sdk_nnbd/lib/_internal/vm/bin/builtin.dart
+++ b/sdk_nnbd/lib/_internal/vm/bin/builtin.dart
@@ -9,7 +9,6 @@
import 'dart:collection' hide LinkedList, LinkedListEntry;
import 'dart:_internal' hide Symbol;
import 'dart:io';
-import 'dart:convert';
import 'dart:isolate';
import 'dart:typed_data';
@@ -431,67 +430,9 @@
return result;
}
-_loadPackageConfigFile(bool traceLoading, Uri packageConfig) {
- try {
- final Uint8List data = File.fromUri(packageConfig).readAsBytesSync();
- if (traceLoading) {
- _log("Loaded package config file from $packageConfig.");
- }
- return _parsePackageConfig(traceLoading, packageConfig, data);
- } catch (e, s) {
- if (traceLoading) {
- _log("Error loading packages: $e\n$s");
- }
- return "Uncaught error ($e) loading packages file.";
- }
-}
-
-// The .dart_tool/package_config.json format is described in
-//
-// https://github.com/dart-lang/language/blob/master/accepted/future-releases/language-versioning/package-config-file-v2.md
-//
-// The returned list has the format:
-//
-// [0] Location of package_config.json file.
-// [1] null
-// [n*2] Name of n-th package
-// [n*2 + 1] Location of n-th package's sources (as a String)
-//
-List _parsePackageConfig(
- bool traceLoading, Uri packageConfig, Uint8List bytes) {
- final Map packageJson = json.decode(utf8.decode(bytes));
- final version = packageJson['configVersion'];
- if (version != 2) {
- throw 'The package configuration file has an unsupported version.';
- }
- // The first entry contains the location of the identified
- // .dart_tool/package_config.json file instead of a mapping.
- final result = <dynamic>[packageConfig.toString(), null];
- final List packages = packageJson['packages'] ?? [];
- for (final Map package in packages) {
- final String name = package['name'];
- final String rootUri = package['rootUri'];
- final String? packageUri = package['packageUri'];
- final Uri resolvedRootUri = packageConfig.resolve(rootUri);
- final Uri resolvedPackageUri = packageUri != null
- ? resolvedRootUri.resolve(packageUri)
- : resolvedRootUri;
- if (packageUri != null &&
- !'$resolvedPackageUri'.contains('$resolvedRootUri')) {
- throw 'The resolved "packageUri" is not a subdirectory of the "rootUri".';
- }
- result.add(name);
- result.add(resolvedPackageUri.toString());
- if (traceLoading) {
- _log('Resolved package $name to be at $resolvedPackageUri');
- }
- }
- return result;
-}
-
_loadPackagesFile(bool traceLoading, Uri packagesFile) {
try {
- final Uint8List data = File.fromUri(packagesFile).readAsBytesSync();
+ var data = new File.fromUri(packagesFile).readAsBytesSync();
if (traceLoading) {
_log("Loaded packages file from $packagesFile:\n"
"${new String.fromCharCodes(data)}");
@@ -505,49 +446,39 @@
}
}
-_findPackagesConfiguration(bool traceLoading, Uri base) {
+_findPackagesFile(bool traceLoading, Uri base) {
try {
- // Walk up the directory hierarchy to check for the existence of either one
- // of
- // - .dart_tool/package_config.json
- // - .packages
- var currentDir = new File.fromUri(base).parent;
- while (true) {
- final dirUri = currentDir.uri;
-
- // We prefer using `.dart_tool/package_config.json` over `.packages`.
- final packageConfig = dirUri.resolve(".dart_tool/package_config.json");
- if (traceLoading) {
- _log("Checking for $packageConfig file.");
- }
- bool exists = File.fromUri(packageConfig).existsSync();
- if (traceLoading) {
- _log("$packageConfig exists: $exists");
- }
- if (exists) {
- return _loadPackageConfigFile(traceLoading, packageConfig);
- }
-
- final packagesFile = dirUri.resolve(".packages");
+ // Walk up the directory hierarchy to check for the existence of
+ // .packages files in parent directories and for the existence of a
+ // packages/ directory on the first iteration.
+ var dir = new File.fromUri(base).parent;
+ var prev = null;
+ // Keep searching until we reach the root.
+ while ((prev == null) || (prev.path != dir.path)) {
+ // Check for the existence of a .packages file and if it exists try to
+ // load and parse it.
+ var dirUri = dir.uri;
+ var packagesFile = dirUri.resolve(".packages");
if (traceLoading) {
_log("Checking for $packagesFile file.");
}
- exists = File.fromUri(packagesFile).existsSync();
+ var exists = new File.fromUri(packagesFile).existsSync();
if (traceLoading) {
_log("$packagesFile exists: $exists");
}
if (exists) {
return _loadPackagesFile(traceLoading, packagesFile);
}
- final parentDir = currentDir.parent;
- if (dirUri == parentDir.uri) break;
- currentDir = parentDir;
+ // Move up one level.
+ prev = dir;
+ dir = dir.parent;
}
+ // No .packages file was found.
if (traceLoading) {
- _log("Could not resolve a package configuration from $base");
+ _log("Could not resolve a package location from $base");
}
- return "Could not resolve a package configuration for base at $base";
+ return "Could not resolve a package location for base at $base";
} catch (e, s) {
if (traceLoading) {
_log("Error loading packages: $e\n$s");
@@ -578,7 +509,7 @@
try {
if (tag == -1) {
if (resource.scheme == '' || resource.scheme == 'file') {
- return _findPackagesConfiguration(traceLoading, resource);
+ return _findPackagesFile(traceLoading, resource);
} else {
return "Unsupported scheme used to locate .packages file:'$resource'.";
}
@@ -649,9 +580,6 @@
}
// Embedder Entrypoint:
-// The embedder calls this method with the value of the --packages command line
-// option. It can point to a ".packages" or a ".dart_tool/package_config.json"
-// file.
@pragma("vm:entry-point")
String _setPackagesMap(String packagesParam) {
if (!_setupCompleted) {
@@ -713,7 +641,7 @@
VMLibraryHooks.resolvePackageUriFuture = _resolvePackageUriFuture;
}
-Future<Uri> _getPackageConfigFuture() {
+Future<Uri?> _getPackageConfigFuture() {
if (_traceLoading) {
_log("Request for package config from user code.");
}
diff --git a/sdk_nnbd/lib/_internal/vm/lib/internal_patch.dart b/sdk_nnbd/lib/_internal/vm/lib/internal_patch.dart
index 2faf799..b484a2c 100644
--- a/sdk_nnbd/lib/_internal/vm/lib/internal_patch.dart
+++ b/sdk_nnbd/lib/_internal/vm/lib/internal_patch.dart
@@ -52,6 +52,7 @@
// Implementation of package root/map provision.
static var packageRootString;
static var packageConfigString;
+ static var packageRootUriFuture;
static var packageConfigUriFuture;
static var resolvePackageUriFuture;
diff --git a/sdk_nnbd/lib/_internal/vm/lib/isolate_patch.dart b/sdk_nnbd/lib/_internal/vm/lib/isolate_patch.dart
index 7658010..dca8156 100644
--- a/sdk_nnbd/lib/_internal/vm/lib/isolate_patch.dart
+++ b/sdk_nnbd/lib/_internal/vm/lib/isolate_patch.dart
@@ -272,7 +272,7 @@
// current isolate's control port and capabilities.
//
// TODO(floitsch): Send an error message if we can't find the entry point.
- final readyMessage = List<Object?>.filled(2, null);
+ var readyMessage = new List<Object?>.filled(2, null);
readyMessage[0] = controlPort.sendPort;
readyMessage[1] = capabilities;
@@ -319,12 +319,12 @@
String get debugName => _getDebugName(controlPort);
@patch
- static Future<Uri> get packageRoot {
+ static Future<Uri?> get packageRoot {
return Future.value(null);
}
@patch
- static Future<Uri> get packageConfig {
+ static Future<Uri?> get packageConfig {
var hook = VMLibraryHooks.packageConfigUriFuture;
if (hook == null) {
throw new UnsupportedError("Isolate.packageConfig");
@@ -342,6 +342,7 @@
}
static bool _packageSupported() =>
+ (VMLibraryHooks.packageRootUriFuture != null) &&
(VMLibraryHooks.packageConfigUriFuture != null) &&
(VMLibraryHooks.resolvePackageUriFuture != null);
@@ -375,8 +376,18 @@
final RawReceivePort readyPort = new RawReceivePort();
try {
- _spawnFunction(readyPort.sendPort, script.toString(), entryPoint, message,
- paused, errorsAreFatal, onExit, onError, packageConfig, debugName);
+ _spawnFunction(
+ readyPort.sendPort,
+ script.toString(),
+ entryPoint,
+ message,
+ paused,
+ errorsAreFatal,
+ onExit,
+ onError,
+ null,
+ packageConfig,
+ debugName);
return await _spawnCommon(readyPort);
} catch (e, st) {
readyPort.close();
@@ -419,17 +430,24 @@
}
}
// Resolve the uri against the current isolate's root Uri first.
- final Uri spawnedUri = _rootUri!.resolveUri(uri);
+ var spawnedUri = _rootUri!.resolveUri(uri);
// Inherit this isolate's package resolution setup if not overridden.
- if (!automaticPackageResolution && packageConfig == null) {
+ if (!automaticPackageResolution &&
+ (packageRoot == null) &&
+ (packageConfig == null)) {
if (Isolate._packageSupported()) {
+ packageRoot = await Isolate.packageRoot;
packageConfig = await Isolate.packageConfig;
}
}
// Ensure to resolve package: URIs being handed in as parameters.
- if (packageConfig != null) {
+ if (packageRoot != null) {
+ // `packages/` directory is no longer supported. Force it null.
+ // TODO(mfairhurst) Should this throw an exception?
+ packageRoot = null;
+ } else if (packageConfig != null) {
// Avoid calling resolvePackageUri if not strictly necessary in case
// the API is not supported.
if (packageConfig.isScheme("package")) {
@@ -438,7 +456,8 @@
}
// The VM will invoke [_startIsolate] and not `main`.
- final packageConfigString = packageConfig?.toString();
+ var packageRootString = packageRoot?.toString();
+ var packageConfigString = packageConfig?.toString();
final RawReceivePort readyPort = new RawReceivePort();
try {
@@ -454,6 +473,7 @@
checked,
null,
/* environment */
+ packageRootString,
packageConfigString,
debugName);
return await _spawnCommon(readyPort);
@@ -509,6 +529,7 @@
bool errorsAreFatal,
SendPort? onExit,
SendPort? onError,
+ String? packageRoot,
String? packageConfig,
String? debugName) native "Isolate_spawnFunction";
@@ -523,6 +544,7 @@
bool errorsAreFatal,
bool? checked,
List? environment,
+ String? packageRoot,
String? packageConfig,
String? debugName) native "Isolate_spawnUri";
diff --git a/tests/compiler/dart2js/model/cfe_annotations_test.dart b/tests/compiler/dart2js/model/cfe_annotations_test.dart
index 2dde603..3c5dbd4 100644
--- a/tests/compiler/dart2js/model/cfe_annotations_test.dart
+++ b/tests/compiler/dart2js/model/cfe_annotations_test.dart
@@ -11,6 +11,7 @@
import 'package:compiler/src/ir/annotations.dart';
import 'package:compiler/src/js_backend/native_data.dart';
import 'package:compiler/src/kernel/kernel_strategy.dart';
+import 'package:compiler/src/kernel/element_map.dart';
import 'package:compiler/src/kernel/element_map_impl.dart';
import 'package:expect/expect.dart';
import 'package:kernel/ast.dart' as ir;
@@ -204,6 +205,7 @@
void testAll(NativeData nativeData) {
void testMember(String idPrefix, ir.Member member,
{bool implicitJsInteropMember, bool implicitNativeMember}) {
+ if (memberIsIgnorable(member)) return;
String memberId = '$idPrefix::${member.name.name}';
MemberEntity memberEntity = elementMap.getMember(member);
diff --git a/tests/corelib/cast_strong_test.dart b/tests/corelib/cast_strong_test.dart
index b935ac3..22d5248 100644
--- a/tests/corelib/cast_strong_test.dart
+++ b/tests/corelib/cast_strong_test.dart
@@ -17,18 +17,17 @@
testIterable() {
var iterable = new Iterable<C?>.generate(elements.length, (n) => elements[n]);
- var iterableNonNull = Iterable.castFrom<C?, C>(iterable);
// Downcast non-nullable.
// An iterable that (likely) can do direct access.
- var dIterableDirect = Iterable.castFrom<C, D>(iterableNonNull);
+ var dIterableDirect = Iterable.castFrom<C?, D>(iterable);
Expect.equals(d, dIterableDirect.elementAt(1));
// null is not D.
Expect.throws(() => dIterableDirect.skip(3).elementAt(1));
// An iterable that cannot do direct access.
var dIterableNonDirect =
- Iterable.castFrom<C, D>(iterableNonNull.where((_) => true));
+ Iterable.castFrom<C?, D>(iterable.where((_) => true));
Expect.equals(d, dIterableNonDirect.elementAt(1));
// null is not D.
Expect.throws(() => dIterableNonDirect.skip(3).elementAt(1));
@@ -36,38 +35,35 @@
// Iterable that definitely won't survive accessing element 3.
var iterableLimited = new Iterable<C?>.generate(
elements.length, (n) => n == 3 ? throw "untouchable" : elements[n]);
- var iterableLimitedNonNull = Iterable.castFrom<C?, C>(iterableLimited);
- var dIterableLimited = Iterable.castFrom<C, D>(iterableLimitedNonNull);
+ var dIterableLimited = Iterable.castFrom<C?, D>(iterableLimited);
Expect.equals(d, dIterableLimited.elementAt(1));
// null is not D.
Expect.throws(() => dIterableLimited.skip(3).elementAt(1));
// Upcast non-nullable.
- var objectIterable = Iterable.castFrom<C, Object>(iterableNonNull);
+ var objectIterable = Iterable.castFrom<C?, Object>(iterable);
// null is not Object.
Expect.throws(() => objectIterable.skip(3).elementAt(1));
}
testList() {
var list = new List<C?>.from(elements);
- var listNonNull = List.castFrom<C?, C>(list);
// Downcast non-nullable.
- var dList = List.castFrom<C, D>(listNonNull);
+ var dList = List.castFrom<C?, D>(list);
Expect.equals(d, dList[1]);
Expect.throws(() => dList.last); // null is not D.
// Upcast non-nullable.
- var objectList = List.castFrom<C, Object>(listNonNull);
+ var objectList = List.castFrom<C?, Object>(list);
Expect.throws(() => objectList.last); // null is not Object.
}
testMap() {
var map = new Map.fromIterables(elements, elements);
- var mapNonNull = Map.castFrom<C?, C?, C, C>(map);
// Downcast non-nullable.
- var dMap = Map.castFrom<C, C, D, D>(mapNonNull);
+ var dMap = Map.castFrom<C?, C?, D, D>(map);
Expect.equals(d, dMap[d]);
Expect.isTrue(dMap.containsKey(null));
Expect.equals(null, dMap[null]);
@@ -79,7 +75,7 @@
Expect.throws(() => dMap.values.toList());
// Upcast non-nullable.
- var objectMap = Map.castFrom<C, C, Object, Object>(mapNonNull);
+ var objectMap = Map.castFrom<C?, C?, Object, Object>(map);
Expect.isTrue(objectMap.containsKey(null));
Expect.equals(null, objectMap[null]);
@@ -93,14 +89,13 @@
testSet() {
var setEls = new Set<C?>.from(elements);
- var setNonNull = Set.castFrom<C?, C>(setEls);
// Downcast non-nullable.
- var dSet = Set.castFrom<C, D>(setNonNull);
+ var dSet = Set.castFrom<C?, D>(setEls);
Expect.equals(d, dSet.elementAt(1));
Expect.throws(() => dSet.last); // null is not D.
// Upcast non-nullable.
- var objectSet = Set.castFrom<C, Object>(setNonNull);
+ var objectSet = Set.castFrom<C?, Object>(setEls);
Expect.throws(() => objectSet.last); // null is not Object.
}
diff --git a/tests/corelib/cast_weak_test.dart b/tests/corelib/cast_weak_test.dart
index 72b1231..571b8c7 100644
--- a/tests/corelib/cast_weak_test.dart
+++ b/tests/corelib/cast_weak_test.dart
@@ -17,53 +17,49 @@
testIterable() {
var iterable = new Iterable<C?>.generate(elements.length, (n) => elements[n]);
- var iterableNonNull = Iterable.castFrom<C?, C>(iterable);
// Downcast non-nullable.
// An iterable that (likely) can do direct access.
- var dIterableDirect = Iterable.castFrom<C, D>(iterableNonNull);
+ var dIterableDirect = Iterable.castFrom<C?, D>(iterable);
Expect.equals(d, dIterableDirect.elementAt(1));
Expect.equals(null, dIterableDirect.skip(3).elementAt(1));
// An iterable that cannot do direct access.
var dIterableNonDirect =
- Iterable.castFrom<C, D>(iterableNonNull.where((_) => true));
+ Iterable.castFrom<C?, D>(iterable.where((_) => true));
Expect.equals(d, dIterableNonDirect.elementAt(1));
Expect.equals(null, dIterableNonDirect.skip(3).elementAt(1));
// Iterable that definitely won't survive accessing element 3.
var iterableLimited = new Iterable<C?>.generate(
elements.length, (n) => n == 3 ? throw "untouchable" : elements[n]);
- var iterableLimitedNonNull = Iterable.castFrom<C?, C>(iterableLimited);
- var dIterableLimited = Iterable.castFrom<C, D>(iterableLimitedNonNull);
+ var dIterableLimited = Iterable.castFrom<C?, D>(iterableLimited);
Expect.equals(d, dIterableLimited.elementAt(1));
Expect.equals(null, dIterableLimited.skip(3).elementAt(1));
// Upcast non-nullable.
- var objectIterable = Iterable.castFrom<C, Object>(iterableNonNull);
+ var objectIterable = Iterable.castFrom<C?, Object>(iterable);
Expect.equals(null, objectIterable.skip(3).elementAt(1));
}
testList() {
var list = new List<C?>.from(elements);
- var listNonNull = List.castFrom<C?, C>(list);
// Downcast non-nullable.
- var dList = List.castFrom<C, D>(listNonNull);
+ var dList = List.castFrom<C?, D>(list);
Expect.equals(d, dList[1]);
Expect.equals(null, dList.last);
// Upcast non-nullable.
- var objectList = List.castFrom<C, Object>(listNonNull);
+ var objectList = List.castFrom<C?, Object>(list);
Expect.equals(null, objectList.last);
}
testMap() {
var map = new Map.fromIterables(elements, elements);
- var mapNonNull = Map.castFrom<C?, C?, C, C>(map);
// Downcast non-nullable.
- var dMap = Map.castFrom<C, C, D, D>(mapNonNull);
+ var dMap = Map.castFrom<C?, C?, D, D>(map);
Expect.equals(d, dMap[d]);
Expect.isTrue(dMap.containsKey(null));
Expect.equals(null, dMap[null]);
@@ -75,7 +71,7 @@
Expect.throws(() => dMap.values.toList());
// Upcast non-nullable.
- var objectMap = Map.castFrom<C, C, Object, Object>(mapNonNull);
+ var objectMap = Map.castFrom<C?, C?, Object, Object>(map);
Expect.isTrue(objectMap.containsKey(null));
Expect.equals(null, objectMap[null]);
@@ -88,14 +84,13 @@
testSet() {
var setEls = new Set<C?>.from(elements);
- var setNonNull = Set.castFrom<C?, C>(setEls);
// Downcast non-nullable.
- var dSet = Set.castFrom<C, D>(setNonNull);
+ var dSet = Set.castFrom<C?, D>(setEls);
Expect.equals(d, dSet.elementAt(1));
Expect.equals(null, dSet.last);
// Upcast non-nullable.
- var objectSet = Set.castFrom<C, Object>(setNonNull);
+ var objectSet = Set.castFrom<C?, Object>(setEls);
Expect.equals(null, objectSet.last);
}
diff --git a/tests/language_2/interface/interface_test.dart b/tests/language_2/interface/interface_test.dart
index 5ffd3d4..b05e0a6 100644
--- a/tests/language_2/interface/interface_test.dart
+++ b/tests/language_2/interface/interface_test.dart
@@ -11,6 +11,8 @@
factory Bi() = InterfaceTest;
// ^
// [cfe] Factory redirects to class 'InterfaceTest', which is abstract and can't be instantiated.
+ // ^^^^^^^^^^^^^
+ // [analyzer] COMPILE_TIME_ERROR.REDIRECT_TO_ABSTRACT_CLASS_CONSTRUCTOR
}
abstract class Simple implements Ai {}
diff --git a/tests/lib/isolate/no_package_test.dart b/tests/lib/isolate/nnbd_spawn_autodetect_test.dart
similarity index 66%
rename from tests/lib/isolate/no_package_test.dart
rename to tests/lib/isolate/nnbd_spawn_autodetect_test.dart
index 833e56b..3e9c617 100644
--- a/tests/lib/isolate/no_package_test.dart
+++ b/tests/lib/isolate/nnbd_spawn_autodetect_test.dart
@@ -5,13 +5,23 @@
import "dart:io";
import "package:async_helper/async_minitest.dart";
-void testNoPackages(String filePath, String uri, String expected) {
+void testNullSafetyMode(String filePath, String version, String expected) {
File mainIsolate = new File(filePath);
mainIsolate.writeAsStringSync('''
- library spawn_tests;
-
+ // $version
import \'dart:isolate\';
+ spawnFunc(List args) {
+ var data = args[0];
+ var replyTo = args[1];
+ try {
+ int x = null as int;
+ replyTo.send(\'re: weak\');
+ } catch (ex) {
+ replyTo.send(\'re: strong\');
+ }
+ }
+
void main() async {
const String debugName = \'spawnedIsolate\';
final exitPort = ReceivePort();
@@ -21,10 +31,9 @@
port.close();
});
- final isolate = await Isolate.spawnUri(
- Uri.parse(\'$uri\'),
- [\'$expected\'],
- port.sendPort,
+ final isolate = await Isolate.spawn(
+ spawnFunc,
+ [\'re: hi\', port.sendPort],
paused: false,
debugName: debugName,
onExit: exitPort.sendPort);
@@ -37,6 +46,7 @@
''');
var exec = Platform.resolvedExecutable;
var args = <String>[];
+ args.add("--enable-experiment=non-nullable");
args.add(mainIsolate.path);
var result = Process.runSync(exec, args);
expect(result.stdout.contains('$expected'), true);
@@ -47,20 +57,12 @@
var tmpDir = Directory.systemTemp.createTempSync();
var tmpDirPath = tmpDir.path;
- // Generate code for an isolate to run without any package specification.
- File noPackageIsolate = new File("$tmpDirPath/no_package.dart");
- noPackageIsolate.writeAsStringSync('''
- library SpawnUriIsolate;
- main(List<String> args, replyTo) {
- var data = args[0];
- replyTo.send(data);
- }
- ''');
-
try {
- // Isolate Spawning another Isolate without any package specification.
- testNoPackages("$tmpDirPath/no_package_isolate.dart", noPackageIsolate.path,
- 're: no package');
+ // Strong Isolate Spawning another Strong Isolate using spawn.
+ testNullSafetyMode("$tmpDirPath/strong.dart", '', 're: strong');
+
+ // Weak Isolate Spawning a Weak Isolate using spawn.
+ testNullSafetyMode("$tmpDirPath/weak.dart", '@dart=2.6', 're: weak');
} finally {
tmpDir.deleteSync(recursive: true);
}
diff --git a/tests/lib/isolate/nnbd_spawnuri_autodetect_test.dart b/tests/lib/isolate/nnbd_spawnuri_autodetect_test.dart
new file mode 100644
index 0000000..49afc571
--- /dev/null
+++ b/tests/lib/isolate/nnbd_spawnuri_autodetect_test.dart
@@ -0,0 +1,101 @@
+// Copyright (c) 2020, 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:io";
+import "package:async_helper/async_minitest.dart";
+
+void testNullSafetyMode(String filePath, String uri, String expected) {
+ File mainIsolate = new File(filePath);
+ mainIsolate.writeAsStringSync('''
+ library spawn_tests;
+
+ import \'dart:isolate\';
+
+ void main() async {
+ const String debugName = \'spawnedIsolate\';
+ final exitPort = ReceivePort();
+ final port = new ReceivePort();
+ port.listen((msg) {
+ print(msg);
+ port.close();
+ });
+
+ final isolate = await Isolate.spawnUri(
+ Uri.parse(\'$uri\'),
+ [\'re: hi\'],
+ port.sendPort,
+ paused: false,
+ debugName: debugName,
+ onExit: exitPort.sendPort);
+
+ // Explicitly await spawned isolate exit to enforce main isolate not
+ // completing (and the stand-alone runtime exiting) before the spawned
+ // isolate is done.
+ await exitPort.first;
+ }
+ ''');
+ var exec = Platform.resolvedExecutable;
+ var args = <String>[];
+ args.add("--enable-experiment=non-nullable");
+ args.add(mainIsolate.path);
+ var result = Process.runSync(exec, args);
+ expect(result.stdout.contains('$expected'), true);
+}
+
+void main() {
+ // Create temporary directory.
+ var tmpDir = Directory.systemTemp.createTempSync();
+ var tmpDirPath = tmpDir.path;
+
+ // Generate code for an isolate to run in strong mode.
+ File strongIsolate = new File("$tmpDirPath/strong_isolate.dart");
+ strongIsolate.writeAsStringSync('''
+ library SpawnUriStrongIsolate;
+ main(List<String> args, replyTo) {
+ var data = args[0];
+ try {
+ int x = null as int;
+ replyTo.send(\'re: weak\');
+ } catch (ex) {
+ replyTo.send(\'re: strong\');
+ }
+ }
+ ''');
+
+ // Generate code for an isolate to run in weak mode.
+ File weakIsolate = new File("$tmpDirPath/weak_isolate.dart");
+ weakIsolate.writeAsStringSync('''
+ // @dart=2.7
+ library SpawnUriStrongIsolate;
+ main(List<String> args, replyTo) {
+ var data = args[0];
+ try {
+ int x = null as int;
+ replyTo.send(\'re: weak\');
+ } catch (ex) {
+ replyTo.send(\'re: strong\');
+ }
+ }
+ ''');
+
+ try {
+ // Strong Isolate Spawning another Strong Isolate using spawnUri.
+ testNullSafetyMode(
+ "$tmpDirPath/strong_strong.dart", strongIsolate.path, 're: strong');
+
+ // Strong Isolate Spawning a Weak Isolate using spawnUri.
+ testNullSafetyMode(
+ "$tmpDirPath/strong_weak.dart", weakIsolate.path, 're: weak');
+
+ // Weak Isolate Spawning a Strong Isolate using spawnUri.
+ testNullSafetyMode(
+ "$tmpDirPath/weak_strong.dart", strongIsolate.path, 're: strong');
+
+ // Weak Isolate Spawning a Weak Isolate using spawnUri.
+ testNullSafetyMode(
+ "$tmpDirPath/weak_weak.dart", weakIsolate.path, 're: weak');
+ } finally {
+ tmpDir.deleteSync(recursive: true);
+ }
+}
diff --git a/tests/lib/isolate/spawn_uri__package_uri__test.dart b/tests/lib/isolate/spawn_uri__package_uri__test.dart
deleted file mode 100644
index 313a55b..0000000
--- a/tests/lib/isolate/spawn_uri__package_uri__test.dart
+++ /dev/null
@@ -1,164 +0,0 @@
-// Copyright (c) 2020, 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:io';
-
-import 'package:expect/expect.dart';
-import 'package:path/path.dart' as path;
-
-final executable = Platform.executable;
-
-main() async {
- // Run the Dart VM with or without:
- // --packages=<packages|package_config>
- for (final runWithPackagesArg in const [true, false]) {
- // Run the isolate with or without
- // Isolate.spawnUri(..., packageConfig: <packages|package_config>)
- print('TEST runWithPackagesArg = $runWithPackagesArg ');
- for (final spawnWithPackageConfig in const [true, false]) {
- print('TEST spawnWithPackageConfig = $spawnWithPackageConfig ');
- await runDotPackagesTest(runWithPackagesArg, spawnWithPackageConfig);
- for (final optionalPackageUri in const [true, false]) {
- print('TEST optionalPackageUri = $optionalPackageUri');
- await runPackageConfigTest(
- runWithPackagesArg, spawnWithPackageConfig, optionalPackageUri);
- }
- }
- }
-}
-
-Future runPackageConfigTest(
- bool withPackagesArg, bool spawnWithArg, bool optionalPackageUri) async {
- await withApplicationDirAndDotDartToolPackageConfig(
- (String tempDir, String packageJson, String mainFile) async {
- final args = [if (withPackagesArg) '--packages=$packageJson', mainFile];
- await run(executable, args);
- }, spawnWithArg, optionalPackageUri);
-}
-
-Future runDotPackagesTest(bool withPackagesArg, bool spawnWithArg) async {
- await withApplicationDirAndDotPackages(
- (String tempDir, String dotPackagesFile, String mainFile) async {
- final args = [
- if (withPackagesArg) '--packages=$dotPackagesFile',
- mainFile,
- ];
- await run(executable, args);
- }, spawnWithArg);
-}
-
-Future withApplicationDirAndDotPackages(
- Future fn(String tempDir, String packagesDir, String mainFile),
- bool spawnWithArg) async {
- await withTempDir((String tempDir) async {
- // Setup ".packages"
- final dotPackagesFile =
- path.join(tempDir, spawnWithArg ? 'baz.packages' : '.packages');
- await File(dotPackagesFile).writeAsString(buildDotPackages('foo'));
-
- final mainFile = path.join(tempDir, 'main.dart');
- final childIsolateFile = path.join(tempDir, 'child_isolate.dart');
- final importUri = 'package:foo/child_isolate.dart';
- await File(childIsolateFile).writeAsString(buildChildIsolate());
- await File(mainFile).writeAsString(
- buildMainIsolate(importUri, spawnWithArg ? dotPackagesFile : null));
-
- await fn(tempDir, dotPackagesFile, mainFile);
- });
-}
-
-Future withApplicationDirAndDotDartToolPackageConfig(
- Future fn(String tempDir, String packageJson, String mainFile),
- bool spawnWithArg,
- bool optionalPackageUri) async {
- await withTempDir((String tempDir) async {
- // Setup ".dart_tool/package_config.json"
- final dotDartToolDir = path.join(tempDir, '.dart_tool');
- await Directory(dotDartToolDir).create();
- final packageConfigJsonFile = path.join(
- dotDartToolDir, spawnWithArg ? 'baz.packages' : 'package_config.json');
- await File(packageConfigJsonFile)
- .writeAsString(buildPackageConfig('foo', optionalPackageUri));
-
- // Setup actual application
- final mainFile = path.join(tempDir, 'main.dart');
- final childIsolateFile = path.join(tempDir, 'child_isolate.dart');
- final importUri = 'package:foo/child_isolate.dart';
- await File(childIsolateFile).writeAsString(buildChildIsolate());
- await File(mainFile).writeAsString(buildMainIsolate(
- importUri, spawnWithArg ? packageConfigJsonFile : null));
-
- await fn(tempDir, packageConfigJsonFile, mainFile);
- });
-}
-
-Future withTempDir(Future fn(String dir)) async {
- final dir = await Directory.systemTemp.createTemp('spawn_uri');
- try {
- await fn(dir.absolute.path);
- } finally {
- await dir.delete(recursive: true);
- }
-}
-
-Future<ProcessResult> run(String executable, List<String> args,
- {String? cwd}) async {
- print('Running $executable ${args.join(' ')}');
- final String workingDirectory = cwd ?? Directory.current.absolute.path;
- final result = await Process.run(executable, ['--trace-loading', ...args],
- workingDirectory: workingDirectory);
- print('exitCode:\n${result.exitCode}');
- print('stdout:\n${result.stdout}');
- print('stdout:\n${result.stderr}');
- Expect.equals(0, result.exitCode);
- return result;
-}
-
-String buildDotPackages(String packageName) => '$packageName:.';
-
-String buildPackageConfig(String packageName, bool optionalPackageUri) => '''
-{
- "configVersion": 2,
- "packages": [
- {
- "name": "$packageName",
- "rootUri": "../"
- ${optionalPackageUri ? ', "packageUri": "./"' : ''}
- }
- ]
-}
-''';
-
-String buildChildIsolate() => '''
- import 'dart:isolate';
-
- main(List<String> args, SendPort message) {
- message.send('child isolate is done');
- }
-''';
-
-String buildMainIsolate(String spawnUri, String? packageConfigUri) => '''
- import 'dart:isolate';
- import 'dart:io' as io;
-
- main(List<String> args) async {
- io.exitCode = 1;
-
- final rp = ReceivePort();
- final uri = Uri.parse('$spawnUri');
- final isolateArgs = <String>['a'];
- await Isolate.spawnUri(
- uri,
- isolateArgs,
- rp.sendPort,
- packageConfig: ${packageConfigUri != null ? 'Uri.file(r"$packageConfigUri")' : 'null'});
- final childIsolateMessage = await rp.first;
- if (childIsolateMessage != 'child isolate is done') {
- throw 'Did not receive correct message from child isolate.';
- }
-
- // Test was successful.
- io.exitCode = 0;
- }
-''';
diff --git a/tests/lib/lib.status b/tests/lib/lib.status
index 4523ec5..f3cd0bd 100644
--- a/tests/lib/lib.status
+++ b/tests/lib/lib.status
@@ -24,9 +24,6 @@
html/indexeddb_3_test: Skip # Times out 1 out of 10.
html/worker_api_test: Skip # Issue 13221
-[ $runtime != vm ]
-isolate/spawn_uri__package_uri__test: SkipByDesign # This test uses Isolate.spawnUri and only works in JIT mode.
-
[ $system == windows ]
html/xhr_test/xhr: Skip # Times out. Issue 21527
@@ -94,7 +91,8 @@
isolate/mint_maker_test: Skip # Isolate.spawnUri
isolate/nested_spawn2_test: Skip # Isolate.spawnUri
isolate/nested_spawn_test: Skip # Isolate.spawnUri
-isolate/no_package_test: Skip # Isolate.spawnUri
+isolate/nnbd_spawn_autodetect_test: Skip # Auto detect not for precompiled.
+isolate/nnbd_spawnuri_autodetect_test: Skip # Auto detect not for precompiled.
isolate/raw_port_test: Skip # Isolate.spawnUri
isolate/request_reply_test: Skip # Isolate.spawnUri
isolate/spawn_function_custom_class_test: Skip # Isolate.spawnUri
diff --git a/tests/lib/lib_vm.status b/tests/lib/lib_vm.status
index 9465a91..92cc427 100644
--- a/tests/lib/lib_vm.status
+++ b/tests/lib/lib_vm.status
@@ -152,7 +152,6 @@
isolate/spawn_function_custom_class_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
isolate/spawn_function_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
isolate/spawn_generic_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
-isolate/spawn_uri__package_uri__test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
isolate/spawn_uri_exported_main_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
isolate/spawn_uri_missing_from_isolate_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
isolate/spawn_uri_missing_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
diff --git a/tests/lib_2/isolate/spawn_uri__package_uri__test.dart b/tests/lib_2/isolate/spawn_uri__package_uri__test.dart
deleted file mode 100644
index f34eb46..0000000
--- a/tests/lib_2/isolate/spawn_uri__package_uri__test.dart
+++ /dev/null
@@ -1,164 +0,0 @@
-// Copyright (c) 2020, 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:io';
-
-import 'package:expect/expect.dart';
-import 'package:path/path.dart' as path;
-
-final executable = Platform.executable;
-
-main() async {
- // Run the Dart VM with or without:
- // --packages=<packages|package_config>
- for (final runWithPackagesArg in const [true, false]) {
- // Run the isolate with or without
- // Isolate.spawnUri(..., packageConfig: <packages|package_config>)
- print('TEST runWithPackagesArg = $runWithPackagesArg ');
- for (final spawnWithPackageConfig in const [true, false]) {
- print('TEST spawnWithPackageConfig = $spawnWithPackageConfig ');
- await runDotPackagesTest(runWithPackagesArg, spawnWithPackageConfig);
- for (final optionalPackageUri in const [true, false]) {
- print('TEST optionalPackageUri = $optionalPackageUri');
- await runPackageConfigTest(
- runWithPackagesArg, spawnWithPackageConfig, optionalPackageUri);
- }
- }
- }
-}
-
-Future runPackageConfigTest(
- bool withPackagesArg, bool spawnWithArg, bool optionalPackageUri) async {
- await withApplicationDirAndDotDartToolPackageConfig(
- (String tempDir, String packageJson, String mainFile) async {
- final args = [if (withPackagesArg) '--packages=$packageJson', mainFile];
- await run(executable, args);
- }, spawnWithArg, optionalPackageUri);
-}
-
-Future runDotPackagesTest(bool withPackagesArg, bool spawnWithArg) async {
- await withApplicationDirAndDotPackages(
- (String tempDir, String dotPackagesFile, String mainFile) async {
- final args = [
- if (withPackagesArg) '--packages=$dotPackagesFile',
- mainFile,
- ];
- await run(executable, args);
- }, spawnWithArg);
-}
-
-Future withApplicationDirAndDotPackages(
- Future fn(String tempDir, String packagesDir, String mainFile),
- bool spawnWithArg) async {
- await withTempDir((String tempDir) async {
- // Setup ".packages"
- final dotPackagesFile =
- path.join(tempDir, spawnWithArg ? 'baz.packages' : '.packages');
- await File(dotPackagesFile).writeAsString(buildDotPackages('foo'));
-
- final mainFile = path.join(tempDir, 'main.dart');
- final childIsolateFile = path.join(tempDir, 'child_isolate.dart');
- final importUri = 'package:foo/child_isolate.dart';
- await File(childIsolateFile).writeAsString(buildChildIsolate());
- await File(mainFile).writeAsString(
- buildMainIsolate(importUri, spawnWithArg ? dotPackagesFile : null));
-
- await fn(tempDir, dotPackagesFile, mainFile);
- });
-}
-
-Future withApplicationDirAndDotDartToolPackageConfig(
- Future fn(String tempDir, String packageJson, String mainFile),
- bool spawnWithArg,
- bool optionalPackageUri) async {
- await withTempDir((String tempDir) async {
- // Setup ".dart_tool/package_config.json"
- final dotDartToolDir = path.join(tempDir, '.dart_tool');
- await Directory(dotDartToolDir).create();
- final packageConfigJsonFile = path.join(
- dotDartToolDir, spawnWithArg ? 'baz.packages' : 'package_config.json');
- await File(packageConfigJsonFile)
- .writeAsString(buildPackageConfig('foo', optionalPackageUri));
-
- // Setup actual application
- final mainFile = path.join(tempDir, 'main.dart');
- final childIsolateFile = path.join(tempDir, 'child_isolate.dart');
- final importUri = 'package:foo/child_isolate.dart';
- await File(childIsolateFile).writeAsString(buildChildIsolate());
- await File(mainFile).writeAsString(buildMainIsolate(
- importUri, spawnWithArg ? packageConfigJsonFile : null));
-
- await fn(tempDir, packageConfigJsonFile, mainFile);
- });
-}
-
-Future withTempDir(Future fn(String dir)) async {
- final dir = await Directory.systemTemp.createTemp('spawn_uri');
- try {
- await fn(dir.absolute.path);
- } finally {
- await dir.delete(recursive: true);
- }
-}
-
-Future<ProcessResult> run(String executable, List<String> args,
- {String cwd}) async {
- print('Running $executable ${args.join(' ')}');
- final String workingDirectory = cwd ?? Directory.current.absolute.path;
- final result = await Process.run(executable, ['--trace-loading', ...args],
- workingDirectory: workingDirectory);
- print('exitCode:\n${result.exitCode}');
- print('stdout:\n${result.stdout}');
- print('stdout:\n${result.stderr}');
- Expect.equals(0, result.exitCode);
- return result;
-}
-
-String buildDotPackages(String packageName) => '$packageName:.';
-
-String buildPackageConfig(String packageName, bool optionalPackageUri) => '''
-{
- "configVersion": 2,
- "packages": [
- {
- "name": "$packageName",
- "rootUri": "../"
- ${optionalPackageUri ? ', "packageUri": "./"' : ''}
- }
- ]
-}
-''';
-
-String buildChildIsolate() => '''
- import 'dart:isolate';
-
- main(List<String> args, SendPort message) {
- message.send('child isolate is done');
- }
-''';
-
-String buildMainIsolate(String spawnUri, String packageConfigUri) => '''
- import 'dart:isolate';
- import 'dart:io' as io;
-
- main(List<String> args) async {
- io.exitCode = 1;
-
- final rp = ReceivePort();
- final uri = Uri.parse('$spawnUri');
- final isolateArgs = <String>['a'];
- await Isolate.spawnUri(
- uri,
- isolateArgs,
- rp.sendPort,
- packageConfig: ${packageConfigUri != null ? 'Uri.file(r"$packageConfigUri")' : 'null'});
- final childIsolateMessage = await rp.first;
- if (childIsolateMessage != 'child isolate is done') {
- throw 'Did not receive correct message from child isolate.';
- }
-
- // Test was successful.
- io.exitCode = 0;
- }
-''';
diff --git a/tests/lib_2/lib_2.status b/tests/lib_2/lib_2.status
index 855ab43..432516a 100644
--- a/tests/lib_2/lib_2.status
+++ b/tests/lib_2/lib_2.status
@@ -24,9 +24,6 @@
html/indexeddb_3_test: Skip # Times out 1 out of 10.
html/worker_api_test: Skip # Issue 13221
-[ $runtime != vm ]
-isolate/spawn_uri__package_uri__test: SkipByDesign # This test uses Isolate.spawnUri and only works in JIT mode.
-
[ $system == windows ]
html/xhr_test/xhr: Skip # Times out. Issue 21527
diff --git a/tests/lib_2/lib_2_vm.status b/tests/lib_2/lib_2_vm.status
index 77c441a..78b9986 100644
--- a/tests/lib_2/lib_2_vm.status
+++ b/tests/lib_2/lib_2_vm.status
@@ -137,7 +137,6 @@
isolate/spawn_function_custom_class_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
isolate/spawn_function_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
isolate/spawn_generic_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
-isolate/spawn_uri__package_uri__test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
isolate/spawn_uri_exported_main_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
isolate/spawn_uri_missing_from_isolate_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
isolate/spawn_uri_missing_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
diff --git a/tools/VERSION b/tools/VERSION
index 1de73ea..14923ef 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -33,7 +33,7 @@
MAJOR 2
MINOR 9
PATCH 0
-PRERELEASE 6
+PRERELEASE 7
PRERELEASE_PATCH 0
ABI_VERSION 32
OLDEST_SUPPORTED_ABI_VERSION 32
diff --git a/tools/bots/test_matrix.json b/tools/bots/test_matrix.json
index 92dd685..7536b70 100644
--- a/tools/bots/test_matrix.json
+++ b/tools/bots/test_matrix.json
@@ -837,7 +837,13 @@
"enable-experiment": [
"non-nullable"
],
- "enable-asserts": true
+ "gen-kernel-options": [
+ "--no-null-safety"
+ ],
+ "enable-asserts": true,
+ "vm-options": [
+ "--no-null-safety"
+ ]
}
},
"dartkp-weak-asserts-win-(debug|product|release)-x64": {
@@ -845,8 +851,14 @@
"enable-experiment": [
"non-nullable"
],
+ "gen-kernel-options": [
+ "--no-null-safety"
+ ],
"enable-asserts": true,
- "use-elf": true
+ "use-elf": true,
+ "vm-options": [
+ "--no-null-safety"
+ ]
}
},
"dartk-weak-asserts-(linux|mac|win)-(debug|product|release)-x64": {
@@ -854,7 +866,10 @@
"enable-experiment": [
"non-nullable"
],
- "enable-asserts": true
+ "enable-asserts": true,
+ "vm-options": [
+ "--no-null-safety"
+ ]
}
},
"dartk-strong-(linux|mac|win)-(debug|product|release)-x64": {
@@ -862,9 +877,6 @@
"enable-experiment": [
"non-nullable"
],
- "gen-kernel-options": [
- "--null-safety"
- ],
"vm-options": [
"--null-safety"
]
@@ -3044,6 +3056,15 @@
]
},
{
+ "name": "nnbd_migration unit tests",
+ "arguments": [
+ "-nanalyzer-unittest-asserts-${mode}-${system}",
+ "pkg/nnbd_migration"
+ ],
+ "shards": 2,
+ "fileset": "analyzer_unit_tests"
+ },
+ {
"name": "analyze tests co19_2",
"arguments": [
"-nanalyzer-asserts-${system}",
@@ -3125,6 +3146,13 @@
"-nanalyzer-asserts-strong-${system}",
"co19/LanguageFeatures/nnbd"
]
+ },
+ {
+ "name": "analyze nnbd weak co19 tests",
+ "arguments": [
+ "-nanalyzer-asserts-weak-${system}",
+ "co19/LanguageFeatures/nnbd"
+ ]
}
]
},
@@ -3429,7 +3457,7 @@
"name": "package unit tests",
"arguments": [
"-nunittest-asserts-${mode}-${system}",
- "pkg/pkg/(?!(analyzer*|analysis_server|front_end|kernel)/)"
+ "pkg/pkg/(?!(analyzer*|analysis_server|front_end|kernel|nnbd_migration)/)"
]
},
{
@@ -3467,7 +3495,7 @@
"name": "package unit tests",
"arguments": [
"-nunittest-asserts-${mode}-${system}",
- "pkg/pkg/(?!(analyzer*|analysis_server|front_end|kernel)/)"
+ "pkg/pkg/(?!(analyzer*|analysis_server|front_end|kernel|nnbd_migration)/)"
]
},
{