Version 2.15.0-43.0.dev

Merge commit 'b977476ca044d23807c7342245158ea335124bdf' into 'dev'
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
index 71472cc..a729a82 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
@@ -668,8 +668,9 @@
       listener.handleImportPrefix(/* deferredKeyword = */ null, asKeyword);
     } else {
       listener.handleImportPrefix(
-          /* deferredKeyword = */ null,
-          /* asKeyword = */ null);
+        /* deferredKeyword = */ null,
+        /* asKeyword = */ null,
+      );
     }
     return token;
   }
@@ -1447,9 +1448,10 @@
       }
       // Parse the (potential) new type.
       TypeInfo typeInfoAlternative = computeType(
-          token,
-          /* required = */ false,
-          /* inDeclaration = */ true);
+        token,
+        /* required = */ false,
+        /* inDeclaration = */ true,
+      );
       token = typeInfoAlternative.skipType(token);
       next = token.next!;
 
@@ -2115,8 +2117,9 @@
     } else {
       listener.handleNoType(token);
       listener.handleClassExtends(
-          /* extendsKeyword = */ null,
-          /* typeCount = */ 1);
+        /* extendsKeyword = */ null,
+        /* typeCount = */ 1,
+      );
     }
     return token;
   }
@@ -2524,9 +2527,10 @@
       }
       // Parse the (potential) new type.
       TypeInfo typeInfoAlternative = computeType(
-          token,
-          /* required = */ false,
-          /* inDeclaration = */ true);
+        token,
+        /* required = */ false,
+        /* inDeclaration = */ true,
+      );
       token = typeInfoAlternative.skipType(token);
       next = token.next!;
 
@@ -2643,9 +2647,10 @@
         indicatesMethodOrField(next.next!.next!)) {
       // Recovery: Use the reserved keyword despite that not being legal.
       typeInfo = computeType(
-          token,
-          /*required = */ true,
-          /* inDeclaration = */ true);
+        token,
+        /* required = */ true,
+        /* inDeclaration = */ true,
+      );
       token = typeInfo.skipType(token);
       next = token.next!;
       nameIsRecovered = true;
@@ -3610,9 +3615,10 @@
 
     Token beforeType = token;
     TypeInfo typeInfo = computeType(
-        token,
-        /*required = */ false,
-        /* inDeclaration = */ true);
+      token,
+      /* required = */ false,
+      /* inDeclaration = */ true,
+    );
     token = typeInfo.skipType(token);
     next = token.next!;
 
@@ -3757,9 +3763,10 @@
           indicatesMethodOrField(next2.next!)) {
         // Recovery: Use the reserved keyword despite that not being legal.
         typeInfo = computeType(
-            token,
-            /*required = */ true,
-            /* inDeclaration = */ true);
+          token,
+          /* required = */ true,
+          /* inDeclaration = */ true,
+        );
         token = typeInfo.skipType(token);
         next = token.next!;
         nameIsRecovered = true;
@@ -3962,8 +3969,11 @@
       reportRecoverableError(bodyStart, codes.messageRedirectionInNonFactory);
       token = parseRedirectingFactoryBody(token);
     } else {
-      token = parseFunctionBody(token, /* ofFunctionExpression = */ false,
-          (staticToken == null || externalToken != null) && inPlainSync);
+      token = parseFunctionBody(
+        token,
+        /* ofFunctionExpression = */ false,
+        (staticToken == null || externalToken != null) && inPlainSync,
+      );
     }
     asyncState = savedAsyncModifier;
 
@@ -4112,9 +4122,10 @@
         reportRecoverableError(next, codes.messageExternalFactoryWithBody);
       }
       token = parseFunctionBody(
-          token,
-          /* ofFunctionExpression = */ false,
-          /* allowAbstract = */ true);
+        token,
+        /* ofFunctionExpression = */ false,
+        /* allowAbstract = */ true,
+      );
     } else {
       if (varFinalOrConst != null && !optional('native', next)) {
         if (optional('const', varFinalOrConst)) {
@@ -4122,9 +4133,10 @@
         }
       }
       token = parseFunctionBody(
-          token,
-          /* ofFunctionExpression = */ false,
-          /* allowAbstract = */ false);
+        token,
+        /* ofFunctionExpression = */ false,
+        /* allowAbstract = */ false,
+      );
     }
     switch (kind) {
       case DeclarationKind.Class:
@@ -4418,9 +4430,7 @@
         begin = next = token.next!;
         // Fall through to parse the block.
       } else {
-        token = ensureBlock(
-            token,
-            codes.templateExpectedFunctionBody,
+        token = ensureBlock(token, codes.templateExpectedFunctionBody,
             /* missingBlockName = */ null);
         listener.handleInvalidFunctionBody(token);
         return token.endGroup!;
@@ -5528,10 +5538,11 @@
     if (optional('[]', token)) {
       token = rewriteSquareBrackets(beforeToken).next!;
       listener.handleLiteralList(
-          /* count = */ 0,
-          token,
-          constKeyword,
-          token.next!);
+        /* count = */ 0,
+        token,
+        constKeyword,
+        token.next!,
+      );
       return token.next!;
     }
     bool old = mayParseFunctionExpressions;
@@ -6584,10 +6595,11 @@
         listener.beginLocalFunctionDeclaration(start.next!);
         token = typeInfo.parseType(beforeType, this);
         return parseNamedFunctionRest(
-            token,
-            start.next!,
-            beforeFormals,
-            /* isFunctionExpression = */ false);
+          token,
+          start.next!,
+          beforeFormals,
+          /* isFunctionExpression = */ false,
+        );
       }
     }
 
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/quote.dart b/pkg/_fe_analyzer_shared/lib/src/parser/quote.dart
index 0d5b048..c9ec28a 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/quote.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/quote.dart
@@ -181,7 +181,7 @@
 String unescapeCodeUnits(List<int> codeUnits, bool isRaw, Object location,
     UnescapeErrorListener listener) {
   // Can't use Uint8List or Uint16List here, the code units may be larger.
-  List<int> result = new List<int>.filled(codeUnits.length, 0);
+  List<int> result = new List<int>.filled(codeUnits.length, /* fill = */ 0);
   int resultOffset = 0;
 
   for (int i = 0; i < codeUnits.length; i++) {
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/stack_listener.dart b/pkg/_fe_analyzer_shared/lib/src/parser/stack_listener.dart
index 455dfdf..96a61a4 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/stack_listener.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/stack_listener.dart
@@ -526,7 +526,8 @@
 }
 
 class StackImpl implements Stack {
-  List<Object?> array = new List<Object?>.filled(/* length = */ 8, null);
+  List<Object?> array =
+      new List<Object?>.filled(/* length = */ 8, /* fill = */ null);
   int arrayLength = 0;
 
   bool get isNotEmpty => arrayLength > 0;
@@ -610,14 +611,16 @@
 
   List<Object?> get values {
     final int length = arrayLength;
-    final List<Object?> list = new List<Object?>.filled(length, null);
+    final List<Object?> list =
+        new List<Object?>.filled(length, /* fill = */ null);
     list.setRange(/* start = */ 0, length, array);
     return list;
   }
 
   void _grow() {
     final int length = array.length;
-    final List<Object?> newArray = new List<Object?>.filled(length * 2, null);
+    final List<Object?> newArray =
+        new List<Object?>.filled(length * 2, /* fill = */ null);
     newArray.setRange(/* start = */ 0, length, array, /* skipCount = */ 0);
     array = newArray;
   }
@@ -692,7 +695,8 @@
 
   List<T?>? pop(Stack stack, int count, [NullValue? nullValue]) {
     if (count == 0) return null;
-    return stack.popList(count, new List<T?>.filled(count, null), nullValue);
+    return stack.popList(
+        count, new List<T?>.filled(count, /* fill = */ null), nullValue);
   }
 
   List<T>? popNonNullable(Stack stack, int count, T dummyValue) {
@@ -704,8 +708,8 @@
   List<T?>? popPadded(Stack stack, int count, int padding,
       [NullValue? nullValue]) {
     if (count + padding == 0) return null;
-    return stack.popList(
-        count, new List<T?>.filled(count + padding, null), nullValue);
+    return stack.popList(count,
+        new List<T?>.filled(count + padding, /* fill = */ null), nullValue);
   }
 
   List<T>? popPaddedNonNullable(
diff --git a/pkg/_fe_analyzer_shared/lib/src/scanner/keyword_state.dart b/pkg/_fe_analyzer_shared/lib/src/scanner/keyword_state.dart
index 51a9520..29e59dc 100644
--- a/pkg/_fe_analyzer_shared/lib/src/scanner/keyword_state.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/scanner/keyword_state.dart
@@ -25,10 +25,11 @@
           .toList(growable: false);
       strings.sort((a, b) => a.compareTo(b));
       _KEYWORD_STATE = computeKeywordStateTable(
-          /* start = */ 0,
-          strings,
-          /* offset = */ 0,
-          strings.length);
+        /* start = */ 0,
+        strings,
+        /* offset = */ 0,
+        strings.length,
+      );
     }
     return _KEYWORD_STATE!;
   }
@@ -38,7 +39,7 @@
     bool isLowercase = true;
 
     List<KeywordState?> table =
-        new List<KeywordState?>.filled($z - $A + 1, null);
+        new List<KeywordState?>.filled($z - $A + 1, /* fill = */ null);
     assert(length != 0);
     int chunk = 0;
     int chunkStart = -1;
diff --git a/pkg/_fe_analyzer_shared/lib/src/scanner/string_canonicalizer.dart b/pkg/_fe_analyzer_shared/lib/src/scanner/string_canonicalizer.dart
index a43887f..966e811 100644
--- a/pkg/_fe_analyzer_shared/lib/src/scanner/string_canonicalizer.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/scanner/string_canonicalizer.dart
@@ -34,7 +34,7 @@
   int _count = 0;
 
   /// The table itself.
-  List<Node?> _nodes = new List<Node?>.filled(INITIAL_SIZE, null);
+  List<Node?> _nodes = new List<Node?>.filled(INITIAL_SIZE, /* fill = */ null);
 
   static String decode(List<int> data, int start, int end, bool asciiOnly) {
     String s;
@@ -64,7 +64,7 @@
 
   rehash() {
     int newSize = _size * 2;
-    List<Node?> newNodes = new List<Node?>.filled(newSize, null);
+    List<Node?> newNodes = new List<Node?>.filled(newSize, /* fill = */ null);
     for (int i = 0; i < _size; i++) {
       Node? t = _nodes[i];
       while (t != null) {
@@ -117,7 +117,7 @@
 
   clear() {
     _size = INITIAL_SIZE;
-    _nodes = new List<Node?>.filled(_size, null);
+    _nodes = new List<Node?>.filled(_size, /* fill = */ null);
     _count = 0;
   }
 }
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart
new file mode 100644
index 0000000..6924c9d
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart
@@ -0,0 +1,69 @@
+void test(int abstract) {}
+void test(int as) {}
+void test(int assert) {}
+void test(int async) {}
+void test(int await) {}
+void test(int break) {}
+void test(int case) {}
+void test(int catch) {}
+void test(int class) {}
+void test(int const) {}
+void test(int continue) {}
+void test(int covariant) {}
+void test(int default) {}
+void test(int deferred) {}
+void test(int do) {}
+void test(int dynamic) {}
+void test(int else) {}
+void test(int enum) {}
+void test(int export) {}
+void test(int extends) {}
+void test(int extension) {}
+void test(int external) {}
+void test(int factory) {}
+void test(int false) {}
+void test(int final) {}
+void test(int finally) {}
+void test(int for) {}
+void test(int Function) {}
+void test(int get) {}
+void test(int hide) {}
+void test(int if) {}
+void test(int implements) {}
+void test(int import) {}
+void test(int in) {}
+void test(int inout) {}
+void test(int interface) {}
+void test(int is) {}
+void test(int late) {}
+void test(int library) {}
+void test(int mixin) {}
+void test(int native) {}
+void test(int new) {}
+void test(int null) {}
+void test(int of) {}
+void test(int on) {}
+void test(int operator) {}
+void test(int out) {}
+void test(int part) {}
+void test(int patch) {}
+void test(int required) {}
+void test(int rethrow) {}
+void test(int return) {}
+void test(int set) {}
+void test(int show) {}
+void test(int source) {}
+void test(int static) {}
+void test(int super) {}
+void test(int switch) {}
+void test(int sync) {}
+void test(int this) {}
+void test(int throw) {}
+void test(int true) {}
+void test(int try) {}
+void test(int typedef) {}
+void test(int var) {}
+void test(int void) {}
+void test(int while) {}
+void test(int with) {}
+void test(int yield) {}
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.expect
new file mode 100644
index 0000000..8734963
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.expect
@@ -0,0 +1,1697 @@
+Problems reported:
+
+parser/error_recovery/keyword_named_formal_parameter:3:15: Expected ')' before this.
+void test(int assert) {}
+              ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:6:15: Expected ')' before this.
+void test(int break) {}
+              ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:7:15: Expected ')' before this.
+void test(int case) {}
+              ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:8:15: Expected ')' before this.
+void test(int catch) {}
+              ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:9:15: Expected ')' before this.
+void test(int class) {}
+              ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:10:15: Expected ')' before this.
+void test(int const) {}
+              ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:11:15: Expected ')' before this.
+void test(int continue) {}
+              ^^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:13:15: Expected ')' before this.
+void test(int default) {}
+              ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:15:15: Expected ')' before this.
+void test(int do) {}
+              ^^
+
+parser/error_recovery/keyword_named_formal_parameter:17:15: Expected ')' before this.
+void test(int else) {}
+              ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:18:15: Expected ')' before this.
+void test(int enum) {}
+              ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:20:15: Expected ')' before this.
+void test(int extends) {}
+              ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:24:15: Expected ')' before this.
+void test(int false) {}
+              ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:25:15: Expected ')' before this.
+void test(int final) {}
+              ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:26:15: Expected ')' before this.
+void test(int finally) {}
+              ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:27:15: Expected ')' before this.
+void test(int for) {}
+              ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:31:15: Expected ')' before this.
+void test(int if) {}
+              ^^
+
+parser/error_recovery/keyword_named_formal_parameter:34:15: Expected ')' before this.
+void test(int in) {}
+              ^^
+
+parser/error_recovery/keyword_named_formal_parameter:37:15: Expected ')' before this.
+void test(int is) {}
+              ^^
+
+parser/error_recovery/keyword_named_formal_parameter:42:15: Expected ')' before this.
+void test(int new) {}
+              ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:43:15: Expected ')' before this.
+void test(int null) {}
+              ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:51:15: Expected ')' before this.
+void test(int rethrow) {}
+              ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:52:15: Expected ')' before this.
+void test(int return) {}
+              ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:57:15: Expected ')' before this.
+void test(int super) {}
+              ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:58:15: Expected ')' before this.
+void test(int switch) {}
+              ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:60:19: Expected '.' before this.
+void test(int this) {}
+                  ^
+
+parser/error_recovery/keyword_named_formal_parameter:60:19: Expected an identifier, but got ')'.
+void test(int this) {}
+                  ^
+
+parser/error_recovery/keyword_named_formal_parameter:61:15: Expected ')' before this.
+void test(int throw) {}
+              ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:62:15: Expected ')' before this.
+void test(int true) {}
+              ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:63:15: Expected ')' before this.
+void test(int try) {}
+              ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:65:15: Expected ')' before this.
+void test(int var) {}
+              ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:66:15: Expected ')' before this.
+void test(int void) {}
+              ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:67:15: Expected ')' before this.
+void test(int while) {}
+              ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:68:15: Expected ')' before this.
+void test(int with) {}
+              ^^^^
+
+beginCompilationUnit(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(abstract)
+          handleType(int, null)
+          handleIdentifier(abstract, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, abstract, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(as)
+          handleType(int, null)
+          handleIdentifier(as, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, as, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(assert)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], assert, assert)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(async)
+          handleType(int, null)
+          handleIdentifier(async, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, async, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(await)
+          handleType(int, null)
+          handleIdentifier(await, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, await, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(break)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], break, break)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(case)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], case, case)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(catch)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], catch, catch)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(class)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], class, class)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(const)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], const, const)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(continue)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], continue, continue)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(covariant)
+          handleType(int, null)
+          handleIdentifier(covariant, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, covariant, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(default)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], default, default)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(deferred)
+          handleType(int, null)
+          handleIdentifier(deferred, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, deferred, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(do)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], do, do)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(dynamic)
+          handleType(int, null)
+          handleIdentifier(dynamic, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, dynamic, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(else)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], else, else)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(enum)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], enum, enum)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(export)
+          handleType(int, null)
+          handleIdentifier(export, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, export, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(extends)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], extends, extends)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(extension)
+          handleType(int, null)
+          handleIdentifier(extension, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, extension, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(external)
+          handleType(int, null)
+          handleIdentifier(external, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, external, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(factory)
+          handleType(int, null)
+          handleIdentifier(factory, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, factory, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(false)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], false, false)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(final)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], final, final)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(finally)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], finally, finally)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(for)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], for, for)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(Function)
+          handleType(int, null)
+          handleIdentifier(Function, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, Function, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(get)
+          handleType(int, null)
+          handleIdentifier(get, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, get, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(hide)
+          handleType(int, null)
+          handleIdentifier(hide, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, hide, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(if)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], if, if)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(implements)
+          handleType(int, null)
+          handleIdentifier(implements, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, implements, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(import)
+          handleType(int, null)
+          handleIdentifier(import, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, import, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(in)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], in, in)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(inout)
+          handleType(int, null)
+          handleIdentifier(inout, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, inout, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(interface)
+          handleType(int, null)
+          handleIdentifier(interface, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, interface, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(is)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], is, is)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(late)
+          handleType(int, null)
+          handleIdentifier(late, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, late, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(library)
+          handleType(int, null)
+          handleIdentifier(library, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, library, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(mixin)
+          handleType(int, null)
+          handleIdentifier(mixin, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, mixin, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(native)
+          handleType(int, null)
+          handleIdentifier(native, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, native, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(new)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], new, new)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(null)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], null, null)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(of)
+          handleType(int, null)
+          handleIdentifier(of, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, of, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(on)
+          handleType(int, null)
+          handleIdentifier(on, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, on, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(operator)
+          handleType(int, null)
+          handleIdentifier(operator, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, operator, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(out)
+          handleType(int, null)
+          handleIdentifier(out, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, out, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(part)
+          handleType(int, null)
+          handleIdentifier(part, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, part, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(patch)
+          handleType(int, null)
+          handleIdentifier(patch, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, patch, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(required)
+          handleType(int, null)
+          handleIdentifier(required, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, required, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(rethrow)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], rethrow, rethrow)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(return)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], return, return)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(set)
+          handleType(int, null)
+          handleIdentifier(set, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, set, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(show)
+          handleType(int, null)
+          handleIdentifier(show, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, show, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(source)
+          handleType(int, null)
+          handleIdentifier(source, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, source, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(static)
+          handleType(int, null)
+          handleIdentifier(static, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, static, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(super)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], super, super)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(switch)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], switch, switch)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(sync)
+          handleType(int, null)
+          handleIdentifier(sync, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, sync, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleRecoverableError(Message[ExpectedButGot, Expected '.' before this., null, {string: .}], ), ))
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(this)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
+          handleIdentifier(, fieldInitializer)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(this, ., , null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(throw)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], throw, throw)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(true)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], true, true)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(try)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], try, try)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(typedef)
+          handleType(int, null)
+          handleIdentifier(typedef, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, typedef, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(var)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], var, var)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(void)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], void, void)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(while)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], while, while)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(int, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(with)
+        endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], with, with)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(}, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(yield)
+          handleType(int, null)
+          handleIdentifier(yield, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, yield, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration()
+endCompilationUnit(69, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.intertwined.expect
new file mode 100644
index 0000000..7723b5e
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.intertwined.expect
@@ -0,0 +1,2772 @@
+parseUnit(void)
+  skipErrorTokens(void)
+  listener: beginCompilationUnit(void)
+  syntheticPreviousToken(void)
+  parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+    parseMetadataStar()
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl()
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(, null, , Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(abstract)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(abstract, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, abstract, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(as)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(as, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, as, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(assert)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(assert, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], assert, assert)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(async)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(async, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, async, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(await)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(await, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, await, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(break)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(break, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], break, break)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(case)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(case, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], case, case)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(catch)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(catch, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], catch, catch)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(class)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(class, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], class, class)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(const)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(const, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], const, const)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(continue)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(continue, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], continue, continue)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(covariant)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(covariant, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, covariant, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(default)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(default, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], default, default)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(deferred)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(deferred, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, deferred, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(do)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(do, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], do, do)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(dynamic)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(dynamic, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, dynamic, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(else)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(else, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], else, else)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(enum)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(enum, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], enum, enum)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(export)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(export, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, export, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(extends)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(extends, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], extends, extends)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(extension)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(extension, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, extension, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(external)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(external, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, external, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(factory)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(factory, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, factory, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(false)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(false, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], false, false)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(final)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(final, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], final, final)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(finally)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(finally, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], finally, finally)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(for)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(for, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], for, for)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(Function)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(Function, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, Function, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(get)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(get, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, get, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(hide)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(hide, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, hide, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(if)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(if, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], if, if)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(implements)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(implements, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, implements, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(import)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(import, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, import, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(in)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(in, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], in, in)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(inout)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(inout, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, inout, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(interface)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(interface, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, interface, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(is)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(is, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], is, is)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(late)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(late, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, late, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(library)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(library, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, library, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(mixin)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(mixin, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, mixin, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(native)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(native, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, native, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(new)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(new, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], new, new)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(null)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(null, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], null, null)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(of)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(of, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, of, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(on)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(on, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, on, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(operator)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(operator, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, operator, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(out)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(out, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, out, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(part)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(part, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, part, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(patch)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(patch, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, patch, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(required)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(required, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, required, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(rethrow)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(rethrow, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], rethrow, rethrow)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(return)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(return, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], return, return)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(set)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(set, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, set, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(show)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(show, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, show, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(source)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(source, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, source, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(static)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(static, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, static, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(super)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(super, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], super, super)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(switch)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(switch, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], switch, switch)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(sync)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(sync, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, sync, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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)
+                rewriteAndRecover(this, Message[ExpectedButGot, Expected '.' before this., null, {string: .}], .)
+                  reportRecoverableError(), Message[ExpectedButGot, Expected '.' before this., null, {string: .}])
+                    listener: handleRecoverableError(Message[ExpectedButGot, Expected '.' before this., null, {string: .}], ), ))
+                  rewriter()
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(this)
+                listener: handleType(int, null)
+                ensureIdentifier(., fieldInitializer)
+                  reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
+                  rewriter()
+                  listener: handleIdentifier(, fieldInitializer)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(this, ., , null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(throw)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(throw, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], throw, throw)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(true)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(true, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], true, true)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(try)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(try, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], try, try)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(typedef)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(typedef, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, typedef, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(var)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(var, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], var, var)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(void)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(void, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], void, void)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(while)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(while, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], while, while)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(int, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(with)
+                listener: endFormalParameter(null, null, int, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              ensureCloseParen(int, ()
+                reportRecoverableError(with, Message[ExpectedButGot, Expected ')' before this., null, {string: )}])
+                  listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], with, with)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration(void)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(void)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(void)
+      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(test, topLevelFunctionDeclaration)
+        parseMethodTypeVar(test)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(test, 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(yield)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  inPlainSync()
+                  listener: handleIdentifier(yield, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, yield, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(void, null, })
+  listener: endTopLevelDeclaration()
+  reportAllErrorTokens(void)
+  listener: endCompilationUnit(69, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.parser.expect
new file mode 100644
index 0000000..312326e
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.parser.expect
@@ -0,0 +1,143 @@
+NOTICE: Stream was rewritten by parser!
+
+void test(int abstract) {}
+void test(int as) {}
+void test(int assert) {}
+void test(int async) {}
+void test(int await) {}
+void test(int break) {}
+void test(int case) {}
+void test(int catch) {}
+void test(int class) {}
+void test(int const) {}
+void test(int continue) {}
+void test(int covariant) {}
+void test(int default) {}
+void test(int deferred) {}
+void test(int do) {}
+void test(int dynamic) {}
+void test(int else) {}
+void test(int enum) {}
+void test(int export) {}
+void test(int extends) {}
+void test(int extension) {}
+void test(int external) {}
+void test(int factory) {}
+void test(int false) {}
+void test(int final) {}
+void test(int finally) {}
+void test(int for) {}
+void test(int Function) {}
+void test(int get) {}
+void test(int hide) {}
+void test(int if) {}
+void test(int implements) {}
+void test(int import) {}
+void test(int in) {}
+void test(int inout) {}
+void test(int interface) {}
+void test(int is) {}
+void test(int late) {}
+void test(int library) {}
+void test(int mixin) {}
+void test(int native) {}
+void test(int new) {}
+void test(int null) {}
+void test(int of) {}
+void test(int on) {}
+void test(int operator) {}
+void test(int out) {}
+void test(int part) {}
+void test(int patch) {}
+void test(int required) {}
+void test(int rethrow) {}
+void test(int return) {}
+void test(int set) {}
+void test(int show) {}
+void test(int source) {}
+void test(int static) {}
+void test(int super) {}
+void test(int switch) {}
+void test(int sync) {}
+void test(int this.*synthetic*) {}
+void test(int throw) {}
+void test(int true) {}
+void test(int try) {}
+void test(int typedef) {}
+void test(int var) {}
+void test(int void) {}
+void test(int while) {}
+void test(int with) {}
+void test(int yield) {}
+
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] abstract[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] as[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] assert[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] async[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] await[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] break[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] case[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] catch[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] class[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] const[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] continue[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] covariant[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] default[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] deferred[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] do[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] dynamic[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] else[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] enum[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] export[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] extends[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] extension[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] external[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] factory[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] false[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] final[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] finally[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] for[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] Function[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] get[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] hide[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] if[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] implements[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] import[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] in[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] inout[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] interface[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] is[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] late[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] library[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] mixin[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] native[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] new[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] null[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] of[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] on[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] operator[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] out[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] part[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] patch[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] required[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] rethrow[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] return[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] set[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] show[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] source[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] static[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] super[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] switch[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] sync[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] this[KeywordToken].[SyntheticToken][SyntheticStringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] throw[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] true[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] try[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] typedef[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] var[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] void[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] while[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] with[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] yield[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.scanner.expect
new file mode 100644
index 0000000..56df147
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.scanner.expect
@@ -0,0 +1,141 @@
+void test(int abstract) {}
+void test(int as) {}
+void test(int assert) {}
+void test(int async) {}
+void test(int await) {}
+void test(int break) {}
+void test(int case) {}
+void test(int catch) {}
+void test(int class) {}
+void test(int const) {}
+void test(int continue) {}
+void test(int covariant) {}
+void test(int default) {}
+void test(int deferred) {}
+void test(int do) {}
+void test(int dynamic) {}
+void test(int else) {}
+void test(int enum) {}
+void test(int export) {}
+void test(int extends) {}
+void test(int extension) {}
+void test(int external) {}
+void test(int factory) {}
+void test(int false) {}
+void test(int final) {}
+void test(int finally) {}
+void test(int for) {}
+void test(int Function) {}
+void test(int get) {}
+void test(int hide) {}
+void test(int if) {}
+void test(int implements) {}
+void test(int import) {}
+void test(int in) {}
+void test(int inout) {}
+void test(int interface) {}
+void test(int is) {}
+void test(int late) {}
+void test(int library) {}
+void test(int mixin) {}
+void test(int native) {}
+void test(int new) {}
+void test(int null) {}
+void test(int of) {}
+void test(int on) {}
+void test(int operator) {}
+void test(int out) {}
+void test(int part) {}
+void test(int patch) {}
+void test(int required) {}
+void test(int rethrow) {}
+void test(int return) {}
+void test(int set) {}
+void test(int show) {}
+void test(int source) {}
+void test(int static) {}
+void test(int super) {}
+void test(int switch) {}
+void test(int sync) {}
+void test(int this) {}
+void test(int throw) {}
+void test(int true) {}
+void test(int try) {}
+void test(int typedef) {}
+void test(int var) {}
+void test(int void) {}
+void test(int while) {}
+void test(int with) {}
+void test(int yield) {}
+
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] abstract[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] as[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] assert[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] async[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] await[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] break[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] case[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] catch[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] class[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] const[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] continue[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] covariant[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] default[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] deferred[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] do[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] dynamic[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] else[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] enum[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] export[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] extends[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] extension[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] external[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] factory[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] false[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] final[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] finally[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] for[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] Function[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] get[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] hide[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] if[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] implements[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] import[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] in[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] inout[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] interface[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] is[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] late[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] library[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] mixin[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] native[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] new[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] null[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] of[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] on[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] operator[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] out[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] part[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] patch[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] required[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] rethrow[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] return[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] set[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] show[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] source[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] static[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] super[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] switch[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] sync[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] this[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] throw[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] true[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] try[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] typedef[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] var[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] void[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] while[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] with[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] yield[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/test/comments_on_certain_arguments_tool.dart b/pkg/front_end/test/comments_on_certain_arguments_tool.dart
index 4ad6562..8d69722 100644
--- a/pkg/front_end/test/comments_on_certain_arguments_tool.dart
+++ b/pkg/front_end/test/comments_on_certain_arguments_tool.dart
@@ -112,15 +112,25 @@
         if (update != "y" && update != "yes") continue;
 
         List<Edit> theseEdits = edits[uri];
-        theseEdits.sort((a, b) => a.offset - b.offset);
+        theseEdits.sort();
         String content = utf8.decode(component.uriToSource[uri].source,
             allowMalformed: true);
         StringBuffer sb = new StringBuffer();
         int latest = 0;
         for (Edit edit in theseEdits) {
           sb.write(content.substring(latest, edit.offset));
-          sb.write(edit.insertData);
-          latest = edit.offset;
+          switch (edit.editType) {
+            case EditType.Insert:
+              print(edit);
+              sb.write(edit.insertData);
+              latest = edit.offset;
+              break;
+            case EditType.Delete:
+              print(edit);
+              // We "delete" by skipping...
+              latest = edit.offset + edit.length;
+              break;
+          }
         }
         sb.write(content.substring(latest, content.length));
         new File.fromUri(uri).writeAsStringSync(sb.toString());
@@ -129,7 +139,7 @@
     }
     if (editsPerformed.isNotEmpty) {
       print("\n\nYou should now probably run something like\n\n");
-      stdout.write(r"tools/sdks/dart-sdk/bin/dartfmt -w");
+      stdout.write("dart format");
       for (Uri uri in editsPerformed) {
         File f = new File.fromUri(uri);
         Directory relative = new Directory.fromUri(Uri.base.resolve("."));
@@ -265,6 +275,7 @@
     }
   }
   bool foundComment = false;
+  List<CommentToken> badComments = [];
   CommentToken commentToken = token.precedingComments;
   while (commentToken != null) {
     if (commentToken.lexeme == expectedComment) {
@@ -272,14 +283,24 @@
       foundComment = true;
       break;
     }
-    if (commentToken.lexeme.replaceAll(" ", "") ==
-        expectedComment.replaceAll(" ", "")) {
-      // Close enough.
-      foundComment = true;
-      break;
+    if (commentToken.lexeme.startsWith("/*") &&
+        commentToken.lexeme.endsWith("= */")) {
+      badComments.add(commentToken);
     }
     commentToken = commentToken.next;
   }
+  if (badComments.isNotEmpty) {
+    for (CommentToken comment in badComments) {
+      Location calculatedLocation =
+          component.getLocation(location.file, comment.offset);
+      print("Please remove comment of length ${comment.lexeme.length} at "
+          "${comment.offset} => "
+          "${calculatedLocation}");
+      edits[location.file] ??= [];
+      edits[location.file]
+          .add(new Edit.delete(comment.offset, comment.lexeme.length));
+    }
+  }
   if (foundComment) {
     return;
   }
@@ -289,15 +310,36 @@
       "${token.offset} => "
       "${calculatedLocation}");
   edits[location.file] ??= [];
-  edits[location.file].add(new Edit(token.offset, expectedComment));
+  edits[location.file].add(new Edit.insert(token.offset, expectedComment));
 }
 
 Map<Uri, List<Edit>> edits = {};
 
-class Edit {
+enum EditType { Insert, Delete }
+
+class Edit implements Comparable<Edit> {
   final int offset;
+  final int length;
   final String insertData;
-  Edit(this.offset, this.insertData);
+  final EditType editType;
+  Edit.insert(this.offset, this.insertData)
+      : editType = EditType.Insert,
+        length = null;
+  Edit.delete(this.offset, this.length)
+      : editType = EditType.Delete,
+        insertData = null;
+
+  @override
+  int compareTo(Edit other) {
+    if (offset != other.offset) {
+      return offset - other.offset;
+    }
+    throw "Why did this happen?";
+  }
+
+  String toString() {
+    return "Edit[$editType @ $offset]";
+  }
 }
 
 class TestIncrementalCompiler extends IncrementalCompiler {
diff --git a/tools/VERSION b/tools/VERSION
index 7668db3..509fc40 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 15
 PATCH 0
-PRERELEASE 42
+PRERELEASE 43
 PRERELEASE_PATCH 0
\ No newline at end of file