Version 2.15.0-45.0.dev

Merge commit 'f274c793336cc68efc4a2a334930a8104d97e677' into 'dev'
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/identifier_context.dart b/pkg/_fe_analyzer_shared/lib/src/parser/identifier_context.dart
index c6de484..4615974 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/identifier_context.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/identifier_context.dart
@@ -343,3 +343,12 @@
 
 // TODO(ahe): Remove when analyzer supports generalized function syntax.
 typedef _MessageWithArgument<T> = Message Function(T);
+
+const List<String> okNextValueInFormalParameter = const [
+  '=',
+  ':',
+  ',',
+  ')',
+  ']',
+  '}',
+];
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/identifier_context_impl.dart b/pkg/_fe_analyzer_shared/lib/src/parser/identifier_context_impl.dart
index 432176b..68721e0 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/identifier_context_impl.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/identifier_context_impl.dart
@@ -14,7 +14,7 @@
 
 import 'type_info.dart' show isValidTypeReference;
 
-import 'util.dart' show isOneOfOrEof, optional;
+import 'util.dart' show isOneOf, isOneOfOrEof, optional;
 
 /// See [IdentifierContext.catchParameter].
 class CatchParameterIdentifierContext extends IdentifierContext {
@@ -472,10 +472,12 @@
       '[',
       ']',
       '{',
-      '}'
+      '}',
     ];
-    if (looksLikeStartOfNextClassMember(identifier) ||
-        looksLikeStatementStart(identifier) ||
+    if (((looksLikeStartOfNextTopLevelDeclaration(identifier) ||
+                looksLikeStartOfNextClassMember(identifier) ||
+                looksLikeStatementStart(identifier)) &&
+            !isOneOf(identifier.next!, okNextValueInFormalParameter)) ||
         isOneOfOrEof(identifier, followingValues)) {
       identifier = parser.insertSyntheticIdentifier(token, this,
           message: codes.templateExpectedIdentifier.withArguments(identifier));
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 a729a82..aa035a0 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
@@ -69,7 +69,10 @@
 import 'forwarding_listener.dart' show ForwardingListener, NullListener;
 
 import 'identifier_context.dart'
-    show IdentifierContext, looksLikeExpressionStart;
+    show
+        IdentifierContext,
+        looksLikeExpressionStart,
+        okNextValueInFormalParameter;
 
 import 'listener.dart' show Listener;
 
@@ -1571,7 +1574,12 @@
 
     // Type is required in a generalized function type, but optional otherwise.
     final Token beforeType = token;
-    TypeInfo typeInfo = computeType(token, inFunctionType);
+    TypeInfo typeInfo = computeType(
+      token,
+      inFunctionType,
+      /* inDeclaration = */ false,
+      /* acceptKeywordForSimpleType = */ true,
+    );
     token = typeInfo.skipType(token);
     next = token.next!;
     if (typeInfo == noType &&
@@ -1592,18 +1600,33 @@
         IdentifierContext.formalParameterDeclaration;
 
     if (!inFunctionType && optional('this', next)) {
+      Token originalToken = token;
       thisKeyword = token = next;
       next = token.next!;
       if (!optional('.', next)) {
-        // Recover from a missing period by inserting one.
-        next = rewriteAndRecover(
-            token,
-            codes.templateExpectedButGot.withArguments('.'),
-            new SyntheticToken(TokenType.PERIOD, next.charOffset));
+        if (isOneOf(next, okNextValueInFormalParameter)) {
+          // Recover by not parsing as 'this' --- an error will be given
+          // later that it's not an allowed identifier.
+          token = originalToken;
+          next = token.next!;
+          thisKeyword = null;
+        } else {
+          // Recover from a missing period by inserting one.
+          next = rewriteAndRecover(
+              token,
+              codes.templateExpectedButGot.withArguments('.'),
+              new SyntheticToken(TokenType.PERIOD, next.charOffset));
+          // These 3 lines are duplicated here and below.
+          periodAfterThis = token = next;
+          next = token.next!;
+          nameContext = IdentifierContext.fieldInitializer;
+        }
+      } else {
+        // These 3 lines are duplicated here and above.
+        periodAfterThis = token = next;
+        next = token.next!;
+        nameContext = IdentifierContext.fieldInitializer;
       }
-      periodAfterThis = token = next;
-      next = token.next!;
-      nameContext = IdentifierContext.fieldInitializer;
     }
 
     if (next.isIdentifier) {
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/type_info.dart b/pkg/_fe_analyzer_shared/lib/src/parser/type_info.dart
index 7aa5894..c1236e8 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/type_info.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/type_info.dart
@@ -8,6 +8,8 @@
 
 import '../scanner/token_constants.dart' show IDENTIFIER_TOKEN, KEYWORD_TOKEN;
 
+import 'identifier_context.dart';
+
 import 'parser_impl.dart' show Parser;
 
 import 'type_info_impl.dart';
@@ -142,7 +144,7 @@
 /// If [inDeclaration] is `true`, then this will more aggressively recover
 /// given unbalanced `<` `>` and invalid parameters or arguments.
 TypeInfo computeType(final Token token, bool required,
-    [bool inDeclaration = false]) {
+    [bool inDeclaration = false, bool acceptKeywordForSimpleType = false]) {
   Token next = token.next!;
   if (!isValidTypeReference(next)) {
     if (next.type.isBuiltIn) {
@@ -299,7 +301,11 @@
       // identifier `?`
       return simpleNullableType;
     }
-  } else if (required || looksLikeName(next)) {
+  } else if (required ||
+      looksLikeName(next) ||
+      (acceptKeywordForSimpleType &&
+          next.isKeywordOrIdentifier &&
+          isOneOf(next.next!, okNextValueInFormalParameter))) {
     // identifier identifier
     return simpleType;
   }
diff --git a/pkg/analyzer/lib/src/dart/ast/ast_factory.dart b/pkg/analyzer/lib/src/dart/ast/ast_factory.dart
index 029702e..cc2e492 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast_factory.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast_factory.dart
@@ -640,7 +640,7 @@
   FunctionReferenceImpl functionReference(
           {required Expression function, TypeArgumentList? typeArguments}) =>
       FunctionReferenceImpl(function as ExpressionImpl,
-          typeArguments: typeArguments as TypeArgumentListImpl);
+          typeArguments: typeArguments as TypeArgumentListImpl?);
 
   @override
   FunctionTypeAliasImpl functionTypeAlias(
diff --git a/pkg/analyzer/lib/src/dart/resolver/ast_rewrite.dart b/pkg/analyzer/lib/src/dart/resolver/ast_rewrite.dart
index b725ead2..651a980 100644
--- a/pkg/analyzer/lib/src/dart/resolver/ast_rewrite.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/ast_rewrite.dart
@@ -12,13 +12,76 @@
 import 'package:analyzer/src/dart/ast/utilities.dart';
 import 'package:analyzer/src/error/codes.dart';
 
-/// Helper for [MethodInvocation]s into [InstanceCreationExpression] to support
-/// the optional `new` and `const` feature, or [ExtensionOverride].
+/// Handles possible rewrites of AST.
+///
+/// When code is initially parsed, many assumptions are made which may be
+/// incorrect given newer Dart syntax. For example, `new a.b()` is parsed as an
+/// [InstanceCreationExpression], but `a.b()` (without `new`) is parsed as a
+/// [MethodInvocation]. The public methods of this class carry out the minimal
+/// amount of resolution in order to determine whether a node (and its
+/// descendants) should be replaced by another, and perform such replacements.
+///
+/// The public methods of this class form a complete accounting of possible
+/// node replacements.
 class AstRewriter {
   final ErrorReporter _errorReporter;
 
   AstRewriter(this._errorReporter);
 
+  /// Possibly rewrites [node] as a [MethodInvocation] with a
+  /// [FunctionReference] target.
+  ///
+  /// Code such as `a<...>.b(...);` (or with a prefix such as `p.a<...>.b(...)`)
+  /// is parsed as an [ExpressionStatement] with an [InstanceCreationExpression]
+  /// with `a<...>.b` as the [ConstructorName] (which has 'type' of `a<...>`
+  /// and 'name' of `b`). The [InstanceCreationExpression] is rewritten as a
+  /// [MethodInvocation] if `a` resolves to a function.
+  AstNode instanceCreationExpression(
+      Scope nameScope, InstanceCreationExpression node) {
+    if (node.keyword != null) {
+      // Either `new` or `const` has been specified.
+      return node;
+    }
+    var typeName = node.constructorName.type.name;
+    if (typeName is SimpleIdentifier) {
+      var element = nameScope.lookup(typeName.name).getter;
+      if (element is MethodElement) {
+        return _toMethodInvocationOfFunctionReference(
+            node: node, function: typeName);
+      }
+    } else if (typeName is PrefixedIdentifier) {
+      var prefixElement = nameScope.lookup(typeName.prefix.name).getter;
+      if (prefixElement is PrefixElement) {
+        var prefixedName = typeName.identifier.name;
+        var element = prefixElement.scope.lookup(prefixedName).getter;
+        if (element is FunctionElement) {
+          return _toMethodInvocationOfFunctionReference(
+              node: node, function: typeName);
+        }
+
+        // If `element` is a [ClassElement], or a [TypeAliasElement] aliasing
+        // an interface type, then this indeed looks like a constructor call; do
+        // not rewrite `node`.
+
+        // If `element` is a [TypeAliasElement] aliasing a function type, then
+        // this looks like an attempt type instantiate a function type alias
+        // (which is not a feature), and then call a method on the resulting
+        // [Type] object; no not rewrite `node`.
+
+        // If `typeName.identifier` cannot be resolved, do not rewrite `node`.
+        return node;
+      } else {
+        // In the case that `prefixElement` is not a [PrefixElement], then
+        // `typeName`, as a [PrefixedIdentifier], cannot refer to a class or an
+        // aliased type; rewrite `node` as a [MethodInvocation].
+        return _toMethodInvocationOfFunctionReference(
+            node: node, function: typeName);
+      }
+    }
+
+    return node;
+  }
+
   /// Possibly rewrites [node] as an [ExtensionOverride] or as an
   /// [InstanceCreationExpression].
   AstNode methodInvocation(Scope nameScope, MethodInvocation node) {
@@ -143,6 +206,11 @@
   }
 
   /// Possibly rewrites [node] as a [ConstructorReference].
+  ///
+  /// Code such as `List.filled;` is parsed as (an [ExpressionStatement] with) a
+  /// [PrefixedIdentifier] with 'prefix' of `List` and 'identifier' of `filled`.
+  /// The [PrefixedIdentifier] may need to be rewritten as a
+  /// [ConstructorReference].
   AstNode prefixedIdentifier(Scope nameScope, PrefixedIdentifier node) {
     if (node.parent is Annotation) {
       // An annotations which is a const constructor invocation can initially be
@@ -181,6 +249,13 @@
     return node;
   }
 
+  /// Possibly rewrites [node] as a [ConstructorReference].
+  ///
+  /// Code such as `async.Future.value;` is parsed as (an [ExpressionStatement]
+  /// with) a [PropertyAccess] with a 'target' of [PrefixedIdentifier] (with
+  /// 'prefix' of `List` and 'identifier' of `filled`) and a 'propertyName' of
+  /// `value`. The [PropertyAccess] may need to be rewritten as a
+  /// [ConstructorReference].
   AstNode propertyAccess(Scope nameScope, PropertyAccess node) {
     if (node.isCascaded) {
       // For example, `List..filled`: this is a property access on an instance
@@ -397,4 +472,23 @@
     NodeReplacer.replace(node, instanceCreationExpression);
     return instanceCreationExpression;
   }
+
+  MethodInvocation _toMethodInvocationOfFunctionReference({
+    required InstanceCreationExpression node,
+    required Identifier function,
+  }) {
+    var functionReference = astFactory.functionReference(
+      function: function,
+      typeArguments: node.constructorName.type.typeArguments,
+    );
+    var methodInvocation = astFactory.methodInvocation(
+      functionReference,
+      node.constructorName.period,
+      node.constructorName.name!,
+      null,
+      node.argumentList,
+    );
+    NodeReplacer.replace(node, methodInvocation);
+    return methodInvocation;
+  }
 }
diff --git a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
index b367f4a..63ea506 100644
--- a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
@@ -55,6 +55,7 @@
 /// 2. Create and set new elements for local declarations.
 /// 3. Resolve all [TypeName]s - set elements and types.
 /// 4. Resolve all [GenericFunctionType]s - set their types.
+/// 5. Rewrite AST where resolution provides a more accurate understanding.
 class ResolutionVisitor extends RecursiveAstVisitor<void> {
   LibraryElementImpl _libraryElement;
   final TypeProvider _typeProvider;
@@ -744,6 +745,16 @@
   }
 
   @override
+  void visitInstanceCreationExpression(InstanceCreationExpression node) {
+    var newNode = _astRewriter.instanceCreationExpression(_nameScope, node);
+    if (newNode != node) {
+      return newNode.accept(this);
+    }
+
+    super.visitInstanceCreationExpression(node);
+  }
+
+  @override
   void visitLabeledStatement(LabeledStatement node) {
     bool onSwitchStatement = node.statement is SwitchStatement;
     _buildLabelElements(node.labels, onSwitchStatement, false);
diff --git a/pkg/analyzer/test/src/dart/resolution/constructor_reference_test.dart b/pkg/analyzer/test/src/dart/resolution/constructor_reference_test.dart
index 5d29577..769396f 100644
--- a/pkg/analyzer/test/src/dart/resolution/constructor_reference_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/constructor_reference_test.dart
@@ -360,6 +360,35 @@
     );
   }
 
+  test_prefixedClass_generic_targetOfFunctionCall() async {
+    newFile('$testPackageLibPath/a.dart', content: '''
+class A<T> {
+  A();
+}
+''');
+    await assertNoErrorsInCode('''
+import 'a.dart' as a;
+extension on Function {
+  void m() {}
+}
+void bar() {
+  a.A<int>.new.m();
+}
+''');
+
+    var classElement =
+        findElement.importFind('package:test/a.dart').class_('A');
+    assertConstructorReference(
+      findNode.constructorReference('a.A<int>.new'),
+      elementMatcher(classElement.unnamedConstructor,
+          substitution: {'T': 'int'}),
+      classElement,
+      'A<int> Function()',
+      expectedTypeNameType: 'A<int>',
+      expectedPrefix: findElement.import('package:test/a.dart').prefix,
+    );
+  }
+
   test_prefixedClass_generic_unnamed() async {
     newFile('$testPackageLibPath/a.dart', content: '''
 class A<T> {
diff --git a/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart b/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart
index c39a339..3aca395 100644
--- a/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart
@@ -328,6 +328,25 @@
         findNode.functionReference('foo<int>;'), null, 'dynamic');
   }
 
+  test_instanceMethod_explicitReceiver_targetOfFunctionCall() async {
+    await assertNoErrorsInCode('''
+extension on Function {
+  void m() {}
+}
+class A {
+  void foo<T>(T a) {}
+}
+
+bar(A a) {
+  a.foo<int>.m();
+}
+''');
+
+    var reference = findNode.functionReference('foo<int>');
+    assertFunctionReference(
+        reference, findElement.method('foo'), 'void Function(int)');
+  }
+
   test_instanceMethod_explicitReceiver_this() async {
     await assertNoErrorsInCode('''
 class A {
@@ -470,6 +489,25 @@
         reference, findElement.method('foo'), 'void Function(int)');
   }
 
+  test_instanceMethod_targetOfFunctionCall() async {
+    await assertNoErrorsInCode('''
+extension on Function {
+  void m() {}
+}
+class A {
+  void foo<T>(T a) {}
+
+  bar() {
+    foo<int>.m();
+  }
+}
+''');
+
+    var reference = findNode.functionReference('foo<int>');
+    assertFunctionReference(
+        reference, findElement.method('foo'), 'void Function(int)');
+  }
+
   test_instanceMethod_unknown() async {
     await assertErrorsInCode('''
 class A {
@@ -792,6 +830,30 @@
     );
   }
 
+  test_topLevelFunction_importPrefix_asTargetOfFunctionCall() async {
+    newFile('$testPackageLibPath/a.dart', content: '''
+void foo<T>(T arg) {}
+''');
+    await assertNoErrorsInCode('''
+import 'a.dart' as a;
+
+extension on Function {
+  void m() {}
+}
+void bar() {
+  a.foo<int>.m();
+}
+''');
+
+    assertImportPrefix(findNode.simple('a.f'), findElement.prefix('a'));
+    var reference = findNode.functionReference('foo<int>');
+    assertFunctionReference(
+      reference,
+      findElement.importFind('package:test/a.dart').topFunction('foo'),
+      'void Function(int)',
+    );
+  }
+
   test_topLevelFunction_prefix_unknownPrefix() async {
     await assertErrorsInCode('''
 bar() {
diff --git a/pkg/analyzer/test/src/fasta/recovery/missing_code_test.dart b/pkg/analyzer/test/src/fasta/recovery/missing_code_test.dart
index cee7219..b0fcd73 100644
--- a/pkg/analyzer/test/src/fasta/recovery/missing_code_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/missing_code_test.dart
@@ -571,10 +571,10 @@
   int f;
   C(this);
 }
-''', [ParserErrorCode.EXPECTED_TOKEN, ParserErrorCode.MISSING_IDENTIFIER], '''
+''', [ParserErrorCode.EXPECTED_IDENTIFIER_BUT_GOT_KEYWORD], '''
 class C {
   int f;
-  C(this._s_);
+  C(_k_);
 }
 ''');
   }
@@ -585,10 +585,10 @@
   int f;
   C(this, p);
 }
-''', [ParserErrorCode.EXPECTED_TOKEN, ParserErrorCode.MISSING_IDENTIFIER], '''
+''', [ParserErrorCode.EXPECTED_IDENTIFIER_BUT_GOT_KEYWORD], '''
 class C {
   int f;
-  C(this._s_, p);
+  C(_k_, p);
 }
 ''');
   }
diff --git a/pkg/analyzer/test/src/fasta/recovery/recovery_test_support.dart b/pkg/analyzer/test/src/fasta/recovery/recovery_test_support.dart
index cad0dfb..5194dc4 100644
--- a/pkg/analyzer/test/src/fasta/recovery/recovery_test_support.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/recovery_test_support.dart
@@ -133,6 +133,9 @@
       if (first.isSynthetic && second.name == '_s_') {
         return true;
       }
+      if (first.token.isKeyword && second.name == '_k_') {
+        return true;
+      }
     }
     return super.isEqualNodes(first, second);
   }
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart
new file mode 100644
index 0000000..6fa39ee
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart
@@ -0,0 +1 @@
+void test(String default) { }
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.expect
new file mode 100644
index 0000000..afce261
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.expect
@@ -0,0 +1,32 @@
+Problems reported:
+
+parser/error_recovery/issue_46736:1:18: 'default' can't be used as an identifier because it's a keyword.
+void test(String default) { }
+                 ^^^^^^^
+
+beginCompilationUnit(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(String)
+        endMetadataStar(0)
+        beginFormalParameter(String, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(String, typeReference)
+          handleNoTypeArguments(default)
+          handleType(String, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+          handleIdentifier(default, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, default, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration()
+endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.intertwined.expect
new file mode 100644
index 0000000..e91c81f
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.intertwined.expect
@@ -0,0 +1,47 @@
+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(String)
+                  listener: endMetadataStar(0)
+                listener: beginFormalParameter(String, MemberKind.TopLevelMethod, null, null, null)
+                listener: handleIdentifier(String, typeReference)
+                listener: handleNoTypeArguments(default)
+                listener: handleType(String, null)
+                ensureIdentifier(String, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+                  listener: handleIdentifier(default, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, default, 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(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.parser.expect
new file mode 100644
index 0000000..912f36d2
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.parser.expect
@@ -0,0 +1,5 @@
+void test(String default) { }
+
+
+void[KeywordToken] test[StringToken]([BeginToken]String[StringToken] default[KeywordToken])[SimpleToken] {[BeginToken] }[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.scanner.expect
new file mode 100644
index 0000000..912f36d2
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.scanner.expect
@@ -0,0 +1,5 @@
+void test(String default) { }
+
+
+void[KeywordToken] test[StringToken]([BeginToken]String[StringToken] default[KeywordToken])[SimpleToken] {[BeginToken] }[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736.equivalence_info b/pkg/front_end/parser_testcases/error_recovery/issue_46736.equivalence_info
new file mode 100644
index 0000000..b560f65e
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736.equivalence_info
@@ -0,0 +1,7 @@
+files:
+  - issue_46736.dart
+  - issue_46736_prime.dart
+filters:
+  - ignoreListenerArguments
+ignored:
+  - handleRecoverableError
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart
new file mode 100644
index 0000000..f10f9e9
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart
@@ -0,0 +1 @@
+void test(String defaultX) {}
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.expect
new file mode 100644
index 0000000..ca8781c
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.expect
@@ -0,0 +1,25 @@
+beginCompilationUnit(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(, null)
+      handleVoidKeyword(void)
+      handleIdentifier(test, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(String)
+        endMetadataStar(0)
+        beginFormalParameter(String, MemberKind.TopLevelMethod, null, null, null)
+          handleIdentifier(String, typeReference)
+          handleNoTypeArguments(defaultX)
+          handleType(String, null)
+          handleIdentifier(defaultX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, defaultX, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration()
+endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.intertwined.expect
new file mode 100644
index 0000000..567a8fa
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.intertwined.expect
@@ -0,0 +1,45 @@
+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(String)
+                  listener: endMetadataStar(0)
+                listener: beginFormalParameter(String, MemberKind.TopLevelMethod, null, null, null)
+                listener: handleIdentifier(String, typeReference)
+                listener: handleNoTypeArguments(defaultX)
+                listener: handleType(String, null)
+                ensureIdentifier(String, formalParameterDeclaration)
+                  listener: handleIdentifier(defaultX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, defaultX, 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(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.parser.expect
new file mode 100644
index 0000000..da90948
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.parser.expect
@@ -0,0 +1,5 @@
+void test(String defaultX) {}
+
+
+void[KeywordToken] test[StringToken]([BeginToken]String[StringToken] defaultX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.scanner.expect
new file mode 100644
index 0000000..da90948
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.scanner.expect
@@ -0,0 +1,5 @@
+void test(String defaultX) {}
+
+
+void[KeywordToken] test[StringToken]([BeginToken]String[StringToken] defaultX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+[SimpleToken]
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
index 6924c9d..e1f402f 100644
--- 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
@@ -1,69 +1,482 @@
 void test(int abstract) {}
+void test([int abstract]) {}
+void test([int abstract = 42]) {}
+void test({int abstract}) {}
+void test({int abstract: 42}) {}
+void test({int abstract = 42}) {}
+
 void test(int as) {}
+void test([int as]) {}
+void test([int as = 42]) {}
+void test({int as}) {}
+void test({int as: 42}) {}
+void test({int as = 42}) {}
+
 void test(int assert) {}
+void test([int assert]) {}
+void test([int assert = 42]) {}
+void test({int assert}) {}
+void test({int assert: 42}) {}
+void test({int assert = 42}) {}
+
 void test(int async) {}
+void test([int async]) {}
+void test([int async = 42]) {}
+void test({int async}) {}
+void test({int async: 42}) {}
+void test({int async = 42}) {}
+
 void test(int await) {}
+void test([int await]) {}
+void test([int await = 42]) {}
+void test({int await}) {}
+void test({int await: 42}) {}
+void test({int await = 42}) {}
+
 void test(int break) {}
+void test([int break]) {}
+void test([int break = 42]) {}
+void test({int break}) {}
+void test({int break: 42}) {}
+void test({int break = 42}) {}
+
 void test(int case) {}
+void test([int case]) {}
+void test([int case = 42]) {}
+void test({int case}) {}
+void test({int case: 42}) {}
+void test({int case = 42}) {}
+
 void test(int catch) {}
+void test([int catch]) {}
+void test([int catch = 42]) {}
+void test({int catch}) {}
+void test({int catch: 42}) {}
+void test({int catch = 42}) {}
+
 void test(int class) {}
+void test([int class]) {}
+void test([int class = 42]) {}
+void test({int class}) {}
+void test({int class: 42}) {}
+void test({int class = 42}) {}
+
 void test(int const) {}
+void test([int const]) {}
+void test([int const = 42]) {}
+void test({int const}) {}
+void test({int const: 42}) {}
+void test({int const = 42}) {}
+
 void test(int continue) {}
+void test([int continue]) {}
+void test([int continue = 42]) {}
+void test({int continue}) {}
+void test({int continue: 42}) {}
+void test({int continue = 42}) {}
+
 void test(int covariant) {}
+void test([int covariant]) {}
+void test([int covariant = 42]) {}
+void test({int covariant}) {}
+void test({int covariant: 42}) {}
+void test({int covariant = 42}) {}
+
 void test(int default) {}
+void test([int default]) {}
+void test([int default = 42]) {}
+void test({int default}) {}
+void test({int default: 42}) {}
+void test({int default = 42}) {}
+
 void test(int deferred) {}
+void test([int deferred]) {}
+void test([int deferred = 42]) {}
+void test({int deferred}) {}
+void test({int deferred: 42}) {}
+void test({int deferred = 42}) {}
+
 void test(int do) {}
+void test([int do]) {}
+void test([int do = 42]) {}
+void test({int do}) {}
+void test({int do: 42}) {}
+void test({int do = 42}) {}
+
 void test(int dynamic) {}
+void test([int dynamic]) {}
+void test([int dynamic = 42]) {}
+void test({int dynamic}) {}
+void test({int dynamic: 42}) {}
+void test({int dynamic = 42}) {}
+
 void test(int else) {}
+void test([int else]) {}
+void test([int else = 42]) {}
+void test({int else}) {}
+void test({int else: 42}) {}
+void test({int else = 42}) {}
+
 void test(int enum) {}
+void test([int enum]) {}
+void test([int enum = 42]) {}
+void test({int enum}) {}
+void test({int enum: 42}) {}
+void test({int enum = 42}) {}
+
 void test(int export) {}
+void test([int export]) {}
+void test([int export = 42]) {}
+void test({int export}) {}
+void test({int export: 42}) {}
+void test({int export = 42}) {}
+
 void test(int extends) {}
+void test([int extends]) {}
+void test([int extends = 42]) {}
+void test({int extends}) {}
+void test({int extends: 42}) {}
+void test({int extends = 42}) {}
+
 void test(int extension) {}
+void test([int extension]) {}
+void test([int extension = 42]) {}
+void test({int extension}) {}
+void test({int extension: 42}) {}
+void test({int extension = 42}) {}
+
 void test(int external) {}
+void test([int external]) {}
+void test([int external = 42]) {}
+void test({int external}) {}
+void test({int external: 42}) {}
+void test({int external = 42}) {}
+
 void test(int factory) {}
+void test([int factory]) {}
+void test([int factory = 42]) {}
+void test({int factory}) {}
+void test({int factory: 42}) {}
+void test({int factory = 42}) {}
+
 void test(int false) {}
+void test([int false]) {}
+void test([int false = 42]) {}
+void test({int false}) {}
+void test({int false: 42}) {}
+void test({int false = 42}) {}
+
 void test(int final) {}
+void test([int final]) {}
+void test([int final = 42]) {}
+void test({int final}) {}
+void test({int final: 42}) {}
+void test({int final = 42}) {}
+
 void test(int finally) {}
+void test([int finally]) {}
+void test([int finally = 42]) {}
+void test({int finally}) {}
+void test({int finally: 42}) {}
+void test({int finally = 42}) {}
+
 void test(int for) {}
+void test([int for]) {}
+void test([int for = 42]) {}
+void test({int for}) {}
+void test({int for: 42}) {}
+void test({int for = 42}) {}
+
 void test(int Function) {}
+void test([int Function]) {}
+void test([int Function = 42]) {}
+void test({int Function}) {}
+void test({int Function: 42}) {}
+void test({int Function = 42}) {}
+
 void test(int get) {}
+void test([int get]) {}
+void test([int get = 42]) {}
+void test({int get}) {}
+void test({int get: 42}) {}
+void test({int get = 42}) {}
+
 void test(int hide) {}
+void test([int hide]) {}
+void test([int hide = 42]) {}
+void test({int hide}) {}
+void test({int hide: 42}) {}
+void test({int hide = 42}) {}
+
 void test(int if) {}
+void test([int if]) {}
+void test([int if = 42]) {}
+void test({int if}) {}
+void test({int if: 42}) {}
+void test({int if = 42}) {}
+
 void test(int implements) {}
+void test([int implements]) {}
+void test([int implements = 42]) {}
+void test({int implements}) {}
+void test({int implements: 42}) {}
+void test({int implements = 42}) {}
+
 void test(int import) {}
+void test([int import]) {}
+void test([int import = 42]) {}
+void test({int import}) {}
+void test({int import: 42}) {}
+void test({int import = 42}) {}
+
 void test(int in) {}
+void test([int in]) {}
+void test([int in = 42]) {}
+void test({int in}) {}
+void test({int in: 42}) {}
+void test({int in = 42}) {}
+
 void test(int inout) {}
+void test([int inout]) {}
+void test([int inout = 42]) {}
+void test({int inout}) {}
+void test({int inout: 42}) {}
+void test({int inout = 42}) {}
+
 void test(int interface) {}
+void test([int interface]) {}
+void test([int interface = 42]) {}
+void test({int interface}) {}
+void test({int interface: 42}) {}
+void test({int interface = 42}) {}
+
 void test(int is) {}
+void test([int is]) {}
+void test([int is = 42]) {}
+void test({int is}) {}
+void test({int is: 42}) {}
+void test({int is = 42}) {}
+
 void test(int late) {}
+void test([int late]) {}
+void test([int late = 42]) {}
+void test({int late}) {}
+void test({int late: 42}) {}
+void test({int late = 42}) {}
+
 void test(int library) {}
+void test([int library]) {}
+void test([int library = 42]) {}
+void test({int library}) {}
+void test({int library: 42}) {}
+void test({int library = 42}) {}
+
 void test(int mixin) {}
+void test([int mixin]) {}
+void test([int mixin = 42]) {}
+void test({int mixin}) {}
+void test({int mixin: 42}) {}
+void test({int mixin = 42}) {}
+
 void test(int native) {}
+void test([int native]) {}
+void test([int native = 42]) {}
+void test({int native}) {}
+void test({int native: 42}) {}
+void test({int native = 42}) {}
+
 void test(int new) {}
+void test([int new]) {}
+void test([int new = 42]) {}
+void test({int new}) {}
+void test({int new: 42}) {}
+void test({int new = 42}) {}
+
 void test(int null) {}
+void test([int null]) {}
+void test([int null = 42]) {}
+void test({int null}) {}
+void test({int null: 42}) {}
+void test({int null = 42}) {}
+
 void test(int of) {}
+void test([int of]) {}
+void test([int of = 42]) {}
+void test({int of}) {}
+void test({int of: 42}) {}
+void test({int of = 42}) {}
+
 void test(int on) {}
+void test([int on]) {}
+void test([int on = 42]) {}
+void test({int on}) {}
+void test({int on: 42}) {}
+void test({int on = 42}) {}
+
 void test(int operator) {}
+void test([int operator]) {}
+void test([int operator = 42]) {}
+void test({int operator}) {}
+void test({int operator: 42}) {}
+void test({int operator = 42}) {}
+
 void test(int out) {}
+void test([int out]) {}
+void test([int out = 42]) {}
+void test({int out}) {}
+void test({int out: 42}) {}
+void test({int out = 42}) {}
+
 void test(int part) {}
+void test([int part]) {}
+void test([int part = 42]) {}
+void test({int part}) {}
+void test({int part: 42}) {}
+void test({int part = 42}) {}
+
 void test(int patch) {}
+void test([int patch]) {}
+void test([int patch = 42]) {}
+void test({int patch}) {}
+void test({int patch: 42}) {}
+void test({int patch = 42}) {}
+
 void test(int required) {}
+void test([int required]) {}
+void test([int required = 42]) {}
+void test({int required}) {}
+void test({int required: 42}) {}
+void test({int required = 42}) {}
+
 void test(int rethrow) {}
+void test([int rethrow]) {}
+void test([int rethrow = 42]) {}
+void test({int rethrow}) {}
+void test({int rethrow: 42}) {}
+void test({int rethrow = 42}) {}
+
 void test(int return) {}
+void test([int return]) {}
+void test([int return = 42]) {}
+void test({int return}) {}
+void test({int return: 42}) {}
+void test({int return = 42}) {}
+
 void test(int set) {}
+void test([int set]) {}
+void test([int set = 42]) {}
+void test({int set}) {}
+void test({int set: 42}) {}
+void test({int set = 42}) {}
+
 void test(int show) {}
+void test([int show]) {}
+void test([int show = 42]) {}
+void test({int show}) {}
+void test({int show: 42}) {}
+void test({int show = 42}) {}
+
 void test(int source) {}
+void test([int source]) {}
+void test([int source = 42]) {}
+void test({int source}) {}
+void test({int source: 42}) {}
+void test({int source = 42}) {}
+
 void test(int static) {}
+void test([int static]) {}
+void test([int static = 42]) {}
+void test({int static}) {}
+void test({int static: 42}) {}
+void test({int static = 42}) {}
+
 void test(int super) {}
+void test([int super]) {}
+void test([int super = 42]) {}
+void test({int super}) {}
+void test({int super: 42}) {}
+void test({int super = 42}) {}
+
 void test(int switch) {}
+void test([int switch]) {}
+void test([int switch = 42]) {}
+void test({int switch}) {}
+void test({int switch: 42}) {}
+void test({int switch = 42}) {}
+
 void test(int sync) {}
+void test([int sync]) {}
+void test([int sync = 42]) {}
+void test({int sync}) {}
+void test({int sync: 42}) {}
+void test({int sync = 42}) {}
+
 void test(int this) {}
+void test([int this]) {}
+void test([int this = 42]) {}
+void test({int this}) {}
+void test({int this: 42}) {}
+void test({int this = 42}) {}
+
 void test(int throw) {}
+void test([int throw]) {}
+void test([int throw = 42]) {}
+void test({int throw}) {}
+void test({int throw: 42}) {}
+void test({int throw = 42}) {}
+
 void test(int true) {}
+void test([int true]) {}
+void test([int true = 42]) {}
+void test({int true}) {}
+void test({int true: 42}) {}
+void test({int true = 42}) {}
+
 void test(int try) {}
+void test([int try]) {}
+void test([int try = 42]) {}
+void test({int try}) {}
+void test({int try: 42}) {}
+void test({int try = 42}) {}
+
 void test(int typedef) {}
+void test([int typedef]) {}
+void test([int typedef = 42]) {}
+void test({int typedef}) {}
+void test({int typedef: 42}) {}
+void test({int typedef = 42}) {}
+
 void test(int var) {}
+void test([int var]) {}
+void test([int var = 42]) {}
+void test({int var}) {}
+void test({int var: 42}) {}
+void test({int var = 42}) {}
+
 void test(int void) {}
+void test([int void]) {}
+void test([int void = 42]) {}
+void test({int void}) {}
+void test({int void: 42}) {}
+void test({int void = 42}) {}
+
 void test(int while) {}
+void test([int while]) {}
+void test([int while = 42]) {}
+void test({int while}) {}
+void test({int while: 42}) {}
+void test({int while = 42}) {}
+
 void test(int with) {}
+void test([int with]) {}
+void test([int with = 42]) {}
+void test({int with}) {}
+void test({int with: 42}) {}
+void test({int with = 42}) {}
+
 void test(int yield) {}
+void test([int yield]) {}
+void test([int yield = 42]) {}
+void test({int yield}) {}
+void test({int yield: 42}) {}
+void test({int yield = 42}) {}
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
index 8734963..422ea99 100644
--- 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
@@ -1,141 +1,797 @@
 Problems reported:
 
-parser/error_recovery/keyword_named_formal_parameter:3:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:15:15: 'assert' can't be used as an identifier because it's a keyword.
 void test(int assert) {}
               ^^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:6:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:16:16: 'assert' can't be used as an identifier because it's a keyword.
+void test([int assert]) {}
+               ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:17:16: 'assert' can't be used as an identifier because it's a keyword.
+void test([int assert = 42]) {}
+               ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:18:16: 'assert' can't be used as an identifier because it's a keyword.
+void test({int assert}) {}
+               ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:19:16: 'assert' can't be used as an identifier because it's a keyword.
+void test({int assert: 42}) {}
+               ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:20:16: 'assert' can't be used as an identifier because it's a keyword.
+void test({int assert = 42}) {}
+               ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:36:15: 'break' can't be used as an identifier because it's a keyword.
 void test(int break) {}
               ^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:7:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:37:16: 'break' can't be used as an identifier because it's a keyword.
+void test([int break]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:38:16: 'break' can't be used as an identifier because it's a keyword.
+void test([int break = 42]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:39:16: 'break' can't be used as an identifier because it's a keyword.
+void test({int break}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:40:16: 'break' can't be used as an identifier because it's a keyword.
+void test({int break: 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:41:16: 'break' can't be used as an identifier because it's a keyword.
+void test({int break = 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:43:15: 'case' can't be used as an identifier because it's a keyword.
 void test(int case) {}
               ^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:8:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:44:16: 'case' can't be used as an identifier because it's a keyword.
+void test([int case]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:45:16: 'case' can't be used as an identifier because it's a keyword.
+void test([int case = 42]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:46:16: 'case' can't be used as an identifier because it's a keyword.
+void test({int case}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:47:16: 'case' can't be used as an identifier because it's a keyword.
+void test({int case: 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:48:16: 'case' can't be used as an identifier because it's a keyword.
+void test({int case = 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:50:15: 'catch' can't be used as an identifier because it's a keyword.
 void test(int catch) {}
               ^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:9:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:51:16: 'catch' can't be used as an identifier because it's a keyword.
+void test([int catch]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:52:16: 'catch' can't be used as an identifier because it's a keyword.
+void test([int catch = 42]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:53:16: 'catch' can't be used as an identifier because it's a keyword.
+void test({int catch}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:54:16: 'catch' can't be used as an identifier because it's a keyword.
+void test({int catch: 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:55:16: 'catch' can't be used as an identifier because it's a keyword.
+void test({int catch = 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:57:15: 'class' can't be used as an identifier because it's a keyword.
 void test(int class) {}
               ^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:10:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:58:16: 'class' can't be used as an identifier because it's a keyword.
+void test([int class]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:59:16: 'class' can't be used as an identifier because it's a keyword.
+void test([int class = 42]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:60:16: 'class' can't be used as an identifier because it's a keyword.
+void test({int class}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:61:16: 'class' can't be used as an identifier because it's a keyword.
+void test({int class: 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:62:16: 'class' can't be used as an identifier because it's a keyword.
+void test({int class = 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:64:15: 'const' can't be used as an identifier because it's a keyword.
 void test(int const) {}
               ^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:11:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:65:16: 'const' can't be used as an identifier because it's a keyword.
+void test([int const]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:66:16: 'const' can't be used as an identifier because it's a keyword.
+void test([int const = 42]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:67:16: 'const' can't be used as an identifier because it's a keyword.
+void test({int const}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:68:16: 'const' can't be used as an identifier because it's a keyword.
+void test({int const: 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:69:16: 'const' can't be used as an identifier because it's a keyword.
+void test({int const = 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:71:15: 'continue' can't be used as an identifier because it's a keyword.
 void test(int continue) {}
               ^^^^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:13:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:72:16: 'continue' can't be used as an identifier because it's a keyword.
+void test([int continue]) {}
+               ^^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:73:16: 'continue' can't be used as an identifier because it's a keyword.
+void test([int continue = 42]) {}
+               ^^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:74:16: 'continue' can't be used as an identifier because it's a keyword.
+void test({int continue}) {}
+               ^^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:75:16: 'continue' can't be used as an identifier because it's a keyword.
+void test({int continue: 42}) {}
+               ^^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:76:16: 'continue' can't be used as an identifier because it's a keyword.
+void test({int continue = 42}) {}
+               ^^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:85:15: 'default' can't be used as an identifier because it's a keyword.
 void test(int default) {}
               ^^^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:15:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:86:16: 'default' can't be used as an identifier because it's a keyword.
+void test([int default]) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:87:16: 'default' can't be used as an identifier because it's a keyword.
+void test([int default = 42]) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:88:16: 'default' can't be used as an identifier because it's a keyword.
+void test({int default}) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:89:16: 'default' can't be used as an identifier because it's a keyword.
+void test({int default: 42}) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:90:16: 'default' can't be used as an identifier because it's a keyword.
+void test({int default = 42}) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:99:15: 'do' can't be used as an identifier because it's a keyword.
 void test(int do) {}
               ^^
 
-parser/error_recovery/keyword_named_formal_parameter:17:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:100:16: 'do' can't be used as an identifier because it's a keyword.
+void test([int do]) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:101:16: 'do' can't be used as an identifier because it's a keyword.
+void test([int do = 42]) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:102:16: 'do' can't be used as an identifier because it's a keyword.
+void test({int do}) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:103:16: 'do' can't be used as an identifier because it's a keyword.
+void test({int do: 42}) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:104:16: 'do' can't be used as an identifier because it's a keyword.
+void test({int do = 42}) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:113:15: 'else' can't be used as an identifier because it's a keyword.
 void test(int else) {}
               ^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:18:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:114:16: 'else' can't be used as an identifier because it's a keyword.
+void test([int else]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:115:16: 'else' can't be used as an identifier because it's a keyword.
+void test([int else = 42]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:116:16: 'else' can't be used as an identifier because it's a keyword.
+void test({int else}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:117:16: 'else' can't be used as an identifier because it's a keyword.
+void test({int else: 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:118:16: 'else' can't be used as an identifier because it's a keyword.
+void test({int else = 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:120:15: 'enum' can't be used as an identifier because it's a keyword.
 void test(int enum) {}
               ^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:20:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:121:16: 'enum' can't be used as an identifier because it's a keyword.
+void test([int enum]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:122:16: 'enum' can't be used as an identifier because it's a keyword.
+void test([int enum = 42]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:123:16: 'enum' can't be used as an identifier because it's a keyword.
+void test({int enum}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:124:16: 'enum' can't be used as an identifier because it's a keyword.
+void test({int enum: 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:125:16: 'enum' can't be used as an identifier because it's a keyword.
+void test({int enum = 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:134:15: 'extends' can't be used as an identifier because it's a keyword.
 void test(int extends) {}
               ^^^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:24:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:135:16: 'extends' can't be used as an identifier because it's a keyword.
+void test([int extends]) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:136:16: 'extends' can't be used as an identifier because it's a keyword.
+void test([int extends = 42]) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:137:16: 'extends' can't be used as an identifier because it's a keyword.
+void test({int extends}) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:138:16: 'extends' can't be used as an identifier because it's a keyword.
+void test({int extends: 42}) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:139:16: 'extends' can't be used as an identifier because it's a keyword.
+void test({int extends = 42}) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:162:15: 'false' can't be used as an identifier because it's a keyword.
 void test(int false) {}
               ^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:25:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:163:16: 'false' can't be used as an identifier because it's a keyword.
+void test([int false]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:164:16: 'false' can't be used as an identifier because it's a keyword.
+void test([int false = 42]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:165:16: 'false' can't be used as an identifier because it's a keyword.
+void test({int false}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:166:16: 'false' can't be used as an identifier because it's a keyword.
+void test({int false: 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:167:16: 'false' can't be used as an identifier because it's a keyword.
+void test({int false = 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:169:15: 'final' can't be used as an identifier because it's a keyword.
 void test(int final) {}
               ^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:26:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:170:16: 'final' can't be used as an identifier because it's a keyword.
+void test([int final]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:171:16: 'final' can't be used as an identifier because it's a keyword.
+void test([int final = 42]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:172:16: 'final' can't be used as an identifier because it's a keyword.
+void test({int final}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:173:16: 'final' can't be used as an identifier because it's a keyword.
+void test({int final: 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:174:16: 'final' can't be used as an identifier because it's a keyword.
+void test({int final = 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:176:15: 'finally' can't be used as an identifier because it's a keyword.
 void test(int finally) {}
               ^^^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:27:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:177:16: 'finally' can't be used as an identifier because it's a keyword.
+void test([int finally]) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:178:16: 'finally' can't be used as an identifier because it's a keyword.
+void test([int finally = 42]) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:179:16: 'finally' can't be used as an identifier because it's a keyword.
+void test({int finally}) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:180:16: 'finally' can't be used as an identifier because it's a keyword.
+void test({int finally: 42}) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:181:16: 'finally' can't be used as an identifier because it's a keyword.
+void test({int finally = 42}) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:183:15: 'for' can't be used as an identifier because it's a keyword.
 void test(int for) {}
               ^^^
 
-parser/error_recovery/keyword_named_formal_parameter:31:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:184:16: 'for' can't be used as an identifier because it's a keyword.
+void test([int for]) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:185:16: 'for' can't be used as an identifier because it's a keyword.
+void test([int for = 42]) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:186:16: 'for' can't be used as an identifier because it's a keyword.
+void test({int for}) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:187:16: 'for' can't be used as an identifier because it's a keyword.
+void test({int for: 42}) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:188:16: 'for' can't be used as an identifier because it's a keyword.
+void test({int for = 42}) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:211:15: 'if' can't be used as an identifier because it's a keyword.
 void test(int if) {}
               ^^
 
-parser/error_recovery/keyword_named_formal_parameter:34:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:212:16: 'if' can't be used as an identifier because it's a keyword.
+void test([int if]) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:213:16: 'if' can't be used as an identifier because it's a keyword.
+void test([int if = 42]) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:214:16: 'if' can't be used as an identifier because it's a keyword.
+void test({int if}) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:215:16: 'if' can't be used as an identifier because it's a keyword.
+void test({int if: 42}) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:216:16: 'if' can't be used as an identifier because it's a keyword.
+void test({int if = 42}) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:232:15: 'in' can't be used as an identifier because it's a keyword.
 void test(int in) {}
               ^^
 
-parser/error_recovery/keyword_named_formal_parameter:37:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:233:16: 'in' can't be used as an identifier because it's a keyword.
+void test([int in]) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:234:16: 'in' can't be used as an identifier because it's a keyword.
+void test([int in = 42]) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:235:16: 'in' can't be used as an identifier because it's a keyword.
+void test({int in}) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:236:16: 'in' can't be used as an identifier because it's a keyword.
+void test({int in: 42}) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:237:16: 'in' can't be used as an identifier because it's a keyword.
+void test({int in = 42}) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:253:15: 'is' can't be used as an identifier because it's a keyword.
 void test(int is) {}
               ^^
 
-parser/error_recovery/keyword_named_formal_parameter:42:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:254:16: 'is' can't be used as an identifier because it's a keyword.
+void test([int is]) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:255:16: 'is' can't be used as an identifier because it's a keyword.
+void test([int is = 42]) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:256:16: 'is' can't be used as an identifier because it's a keyword.
+void test({int is}) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:257:16: 'is' can't be used as an identifier because it's a keyword.
+void test({int is: 42}) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:258:16: 'is' can't be used as an identifier because it's a keyword.
+void test({int is = 42}) {}
+               ^^
+
+parser/error_recovery/keyword_named_formal_parameter:288:15: 'new' can't be used as an identifier because it's a keyword.
 void test(int new) {}
               ^^^
 
-parser/error_recovery/keyword_named_formal_parameter:43:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:289:16: 'new' can't be used as an identifier because it's a keyword.
+void test([int new]) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:290:16: 'new' can't be used as an identifier because it's a keyword.
+void test([int new = 42]) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:291:16: 'new' can't be used as an identifier because it's a keyword.
+void test({int new}) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:292:16: 'new' can't be used as an identifier because it's a keyword.
+void test({int new: 42}) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:293:16: 'new' can't be used as an identifier because it's a keyword.
+void test({int new = 42}) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:295:15: 'null' can't be used as an identifier because it's a keyword.
 void test(int null) {}
               ^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:51:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:296:16: 'null' can't be used as an identifier because it's a keyword.
+void test([int null]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:297:16: 'null' can't be used as an identifier because it's a keyword.
+void test([int null = 42]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:298:16: 'null' can't be used as an identifier because it's a keyword.
+void test({int null}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:299:16: 'null' can't be used as an identifier because it's a keyword.
+void test({int null: 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:300:16: 'null' can't be used as an identifier because it's a keyword.
+void test({int null = 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:351:15: 'rethrow' can't be used as an identifier because it's a keyword.
 void test(int rethrow) {}
               ^^^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:52:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:352:16: 'rethrow' can't be used as an identifier because it's a keyword.
+void test([int rethrow]) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:353:16: 'rethrow' can't be used as an identifier because it's a keyword.
+void test([int rethrow = 42]) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:354:16: 'rethrow' can't be used as an identifier because it's a keyword.
+void test({int rethrow}) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:355:16: 'rethrow' can't be used as an identifier because it's a keyword.
+void test({int rethrow: 42}) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:356:16: 'rethrow' can't be used as an identifier because it's a keyword.
+void test({int rethrow = 42}) {}
+               ^^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:358:15: 'return' can't be used as an identifier because it's a keyword.
 void test(int return) {}
               ^^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:57:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:359:16: 'return' can't be used as an identifier because it's a keyword.
+void test([int return]) {}
+               ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:360:16: 'return' can't be used as an identifier because it's a keyword.
+void test([int return = 42]) {}
+               ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:361:16: 'return' can't be used as an identifier because it's a keyword.
+void test({int return}) {}
+               ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:362:16: 'return' can't be used as an identifier because it's a keyword.
+void test({int return: 42}) {}
+               ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:363:16: 'return' can't be used as an identifier because it's a keyword.
+void test({int return = 42}) {}
+               ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:393:15: 'super' can't be used as an identifier because it's a keyword.
 void test(int super) {}
               ^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:58:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:394:16: 'super' can't be used as an identifier because it's a keyword.
+void test([int super]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:395:16: 'super' can't be used as an identifier because it's a keyword.
+void test([int super = 42]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:396:16: 'super' can't be used as an identifier because it's a keyword.
+void test({int super}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:397:16: 'super' can't be used as an identifier because it's a keyword.
+void test({int super: 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:398:16: 'super' can't be used as an identifier because it's a keyword.
+void test({int super = 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:400:15: 'switch' can't be used as an identifier because it's a keyword.
 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:401:16: 'switch' can't be used as an identifier because it's a keyword.
+void test([int switch]) {}
+               ^^^^^^
 
-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:402:16: 'switch' can't be used as an identifier because it's a keyword.
+void test([int switch = 42]) {}
+               ^^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:61:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:403:16: 'switch' can't be used as an identifier because it's a keyword.
+void test({int switch}) {}
+               ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:404:16: 'switch' can't be used as an identifier because it's a keyword.
+void test({int switch: 42}) {}
+               ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:405:16: 'switch' can't be used as an identifier because it's a keyword.
+void test({int switch = 42}) {}
+               ^^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:414:15: 'this' can't be used as an identifier because it's a keyword.
+void test(int this) {}
+              ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:415:16: 'this' can't be used as an identifier because it's a keyword.
+void test([int this]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:416:16: 'this' can't be used as an identifier because it's a keyword.
+void test([int this = 42]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:417:16: 'this' can't be used as an identifier because it's a keyword.
+void test({int this}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:418:16: 'this' can't be used as an identifier because it's a keyword.
+void test({int this: 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:419:16: 'this' can't be used as an identifier because it's a keyword.
+void test({int this = 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:421:15: 'throw' can't be used as an identifier because it's a keyword.
 void test(int throw) {}
               ^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:62:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:422:16: 'throw' can't be used as an identifier because it's a keyword.
+void test([int throw]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:423:16: 'throw' can't be used as an identifier because it's a keyword.
+void test([int throw = 42]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:424:16: 'throw' can't be used as an identifier because it's a keyword.
+void test({int throw}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:425:16: 'throw' can't be used as an identifier because it's a keyword.
+void test({int throw: 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:426:16: 'throw' can't be used as an identifier because it's a keyword.
+void test({int throw = 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:428:15: 'true' can't be used as an identifier because it's a keyword.
 void test(int true) {}
               ^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:63:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:429:16: 'true' can't be used as an identifier because it's a keyword.
+void test([int true]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:430:16: 'true' can't be used as an identifier because it's a keyword.
+void test([int true = 42]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:431:16: 'true' can't be used as an identifier because it's a keyword.
+void test({int true}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:432:16: 'true' can't be used as an identifier because it's a keyword.
+void test({int true: 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:433:16: 'true' can't be used as an identifier because it's a keyword.
+void test({int true = 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:435:15: 'try' can't be used as an identifier because it's a keyword.
 void test(int try) {}
               ^^^
 
-parser/error_recovery/keyword_named_formal_parameter:65:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:436:16: 'try' can't be used as an identifier because it's a keyword.
+void test([int try]) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:437:16: 'try' can't be used as an identifier because it's a keyword.
+void test([int try = 42]) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:438:16: 'try' can't be used as an identifier because it's a keyword.
+void test({int try}) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:439:16: 'try' can't be used as an identifier because it's a keyword.
+void test({int try: 42}) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:440:16: 'try' can't be used as an identifier because it's a keyword.
+void test({int try = 42}) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:449:15: 'var' can't be used as an identifier because it's a keyword.
 void test(int var) {}
               ^^^
 
-parser/error_recovery/keyword_named_formal_parameter:66:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:450:16: 'var' can't be used as an identifier because it's a keyword.
+void test([int var]) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:451:16: 'var' can't be used as an identifier because it's a keyword.
+void test([int var = 42]) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:452:16: 'var' can't be used as an identifier because it's a keyword.
+void test({int var}) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:453:16: 'var' can't be used as an identifier because it's a keyword.
+void test({int var: 42}) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:454:16: 'var' can't be used as an identifier because it's a keyword.
+void test({int var = 42}) {}
+               ^^^
+
+parser/error_recovery/keyword_named_formal_parameter:456:15: 'void' can't be used as an identifier because it's a keyword.
 void test(int void) {}
               ^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:67:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:457:16: 'void' can't be used as an identifier because it's a keyword.
+void test([int void]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:458:16: 'void' can't be used as an identifier because it's a keyword.
+void test([int void = 42]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:459:16: 'void' can't be used as an identifier because it's a keyword.
+void test({int void}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:460:16: 'void' can't be used as an identifier because it's a keyword.
+void test({int void: 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:461:16: 'void' can't be used as an identifier because it's a keyword.
+void test({int void = 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:463:15: 'while' can't be used as an identifier because it's a keyword.
 void test(int while) {}
               ^^^^^
 
-parser/error_recovery/keyword_named_formal_parameter:68:15: Expected ')' before this.
+parser/error_recovery/keyword_named_formal_parameter:464:16: 'while' can't be used as an identifier because it's a keyword.
+void test([int while]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:465:16: 'while' can't be used as an identifier because it's a keyword.
+void test([int while = 42]) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:466:16: 'while' can't be used as an identifier because it's a keyword.
+void test({int while}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:467:16: 'while' can't be used as an identifier because it's a keyword.
+void test({int while: 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:468:16: 'while' can't be used as an identifier because it's a keyword.
+void test({int while = 42}) {}
+               ^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:470:15: 'with' can't be used as an identifier because it's a keyword.
 void test(int with) {}
               ^^^^
 
+parser/error_recovery/keyword_named_formal_parameter:471:16: 'with' can't be used as an identifier because it's a keyword.
+void test([int with]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:472:16: 'with' can't be used as an identifier because it's a keyword.
+void test([int with = 42]) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:473:16: 'with' can't be used as an identifier because it's a keyword.
+void test({int with}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:474:16: 'with' can't be used as an identifier because it's a keyword.
+void test({int with: 42}) {}
+               ^^^^
+
+parser/error_recovery/keyword_named_formal_parameter:475:16: 'with' can't be used as an identifier because it's a keyword.
+void test({int with = 42}) {}
+               ^^^^
+
 beginCompilationUnit(void)
   beginMetadataStar(void)
   endMetadataStar(0)
@@ -168,6 +824,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(abstract)
+            handleType(int, null)
+            handleIdentifier(abstract, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, abstract, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(abstract)
+            handleType(int, null)
+            handleIdentifier(abstract, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, abstract, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(abstract)
+            handleType(int, null)
+            handleIdentifier(abstract, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, abstract, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -191,14 +981,289 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(as)
+            handleType(int, null)
+            handleIdentifier(as, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, as, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(as)
+            handleType(int, null)
+            handleIdentifier(as, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, as, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(as)
+            handleType(int, null)
+            handleIdentifier(as, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, as, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(assert)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
+          handleIdentifier(assert, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, assert, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(assert)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
+            handleIdentifier(assert, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, assert, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(assert)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
+            handleIdentifier(assert, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, assert, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(assert)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
+            handleIdentifier(assert, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, assert, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(assert)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
+            handleIdentifier(assert, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, assert, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(assert)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
+            handleIdentifier(assert, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, assert, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -236,6 +1301,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(async)
+            handleType(int, null)
+            handleIdentifier(async, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, async, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(async)
+            handleType(int, null)
+            handleIdentifier(async, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, async, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(async)
+            handleType(int, null)
+            handleIdentifier(async, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, async, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -259,14 +1458,126 @@
       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)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(await)
+            handleType(int, null)
+            handleIdentifier(await, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, await, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(await)
+            handleType(int, null)
+            handleIdentifier(await, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, await, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(await)
+            handleType(int, null)
+            handleIdentifier(await, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, await, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -284,11 +1595,152 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(break)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
+          handleIdentifier(break, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, break, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(break)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
+            handleIdentifier(break, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, break, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(break)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
+            handleIdentifier(break, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, break, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(break)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
+            handleIdentifier(break, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, break, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(break)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
+            handleIdentifier(break, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, break, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(break)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
+            handleIdentifier(break, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, break, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -306,11 +1758,152 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(case)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
+          handleIdentifier(case, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, case, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(case)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
+            handleIdentifier(case, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, case, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(case)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
+            handleIdentifier(case, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, case, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(case)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
+            handleIdentifier(case, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, case, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(case)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
+            handleIdentifier(case, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, case, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(case)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
+            handleIdentifier(case, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, case, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -328,11 +1921,152 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(catch)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
+          handleIdentifier(catch, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, catch, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(catch)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
+            handleIdentifier(catch, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, catch, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(catch)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
+            handleIdentifier(catch, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, catch, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(catch)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
+            handleIdentifier(catch, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, catch, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(catch)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
+            handleIdentifier(catch, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, catch, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(catch)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
+            handleIdentifier(catch, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, catch, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -350,11 +2084,152 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(class)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
+          handleIdentifier(class, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, class, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(class)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
+            handleIdentifier(class, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, class, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(class)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
+            handleIdentifier(class, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, class, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(class)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
+            handleIdentifier(class, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, class, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(class)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
+            handleIdentifier(class, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, class, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(class)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
+            handleIdentifier(class, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, class, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -372,11 +2247,315 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(const)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
+          handleIdentifier(const, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, const, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(const)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
+            handleIdentifier(const, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, const, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(const)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
+            handleIdentifier(const, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, const, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(const)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
+            handleIdentifier(const, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, const, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(const)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
+            handleIdentifier(const, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, const, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(const)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
+            handleIdentifier(const, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, const, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(continue)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
+          handleIdentifier(continue, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, continue, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(continue)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
+            handleIdentifier(continue, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, continue, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(continue)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
+            handleIdentifier(continue, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, continue, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(continue)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
+            handleIdentifier(continue, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, continue, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(continue)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
+            handleIdentifier(continue, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, continue, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(continue)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
+            handleIdentifier(continue, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, continue, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -414,14 +2593,289 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(covariant)
+            handleType(int, null)
+            handleIdentifier(covariant, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, covariant, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(covariant)
+            handleType(int, null)
+            handleIdentifier(covariant, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, covariant, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(covariant)
+            handleType(int, null)
+            handleIdentifier(covariant, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, covariant, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(default)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+          handleIdentifier(default, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, default, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(default)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+            handleIdentifier(default, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, default, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(default)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+            handleIdentifier(default, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, default, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(default)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+            handleIdentifier(default, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, default, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(default)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+            handleIdentifier(default, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, default, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(default)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+            handleIdentifier(default, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, default, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -459,14 +2913,289 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(deferred)
+            handleType(int, null)
+            handleIdentifier(deferred, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, deferred, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(deferred)
+            handleType(int, null)
+            handleIdentifier(deferred, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, deferred, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(deferred)
+            handleType(int, null)
+            handleIdentifier(deferred, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, deferred, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(do)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
+          handleIdentifier(do, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, do, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(do)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
+            handleIdentifier(do, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, do, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(do)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
+            handleIdentifier(do, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, do, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(do)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
+            handleIdentifier(do, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, do, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(do)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
+            handleIdentifier(do, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, do, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(do)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
+            handleIdentifier(do, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, do, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -504,14 +3233,126 @@
       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)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(dynamic)
+            handleType(int, null)
+            handleIdentifier(dynamic, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, dynamic, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(dynamic)
+            handleType(int, null)
+            handleIdentifier(dynamic, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, dynamic, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(dynamic)
+            handleType(int, null)
+            handleIdentifier(dynamic, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, dynamic, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -529,11 +3370,315 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(else)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
+          handleIdentifier(else, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, else, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(else)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
+            handleIdentifier(else, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, else, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(else)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
+            handleIdentifier(else, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, else, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(else)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
+            handleIdentifier(else, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, else, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(else)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
+            handleIdentifier(else, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, else, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(else)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
+            handleIdentifier(else, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, else, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(enum)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
+          handleIdentifier(enum, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, enum, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(enum)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
+            handleIdentifier(enum, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, enum, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(enum)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
+            handleIdentifier(enum, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, enum, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(enum)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
+            handleIdentifier(enum, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, enum, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(enum)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
+            handleIdentifier(enum, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, enum, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(enum)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
+            handleIdentifier(enum, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, enum, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -571,14 +3716,289 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(export)
+            handleType(int, null)
+            handleIdentifier(export, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, export, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(export)
+            handleType(int, null)
+            handleIdentifier(export, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, export, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(export)
+            handleType(int, null)
+            handleIdentifier(export, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, export, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(extends)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
+          handleIdentifier(extends, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, extends, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extends)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
+            handleIdentifier(extends, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, extends, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extends)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
+            handleIdentifier(extends, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, extends, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extends)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
+            handleIdentifier(extends, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, extends, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extends)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
+            handleIdentifier(extends, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, extends, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extends)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
+            handleIdentifier(extends, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, extends, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -616,6 +4036,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extension)
+            handleType(int, null)
+            handleIdentifier(extension, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, extension, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extension)
+            handleType(int, null)
+            handleIdentifier(extension, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, extension, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extension)
+            handleType(int, null)
+            handleIdentifier(extension, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, extension, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -639,6 +4193,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(external)
+            handleType(int, null)
+            handleIdentifier(external, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, external, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(external)
+            handleType(int, null)
+            handleIdentifier(external, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, external, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(external)
+            handleType(int, null)
+            handleIdentifier(external, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, external, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -662,14 +4350,126 @@
       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)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(factory)
+            handleType(int, null)
+            handleIdentifier(factory, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, factory, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(factory)
+            handleType(int, null)
+            handleIdentifier(factory, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, factory, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(factory)
+            handleType(int, null)
+            handleIdentifier(factory, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, factory, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -687,11 +4487,152 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(false)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
+          handleIdentifier(false, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, false, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(false)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
+            handleIdentifier(false, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, false, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(false)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
+            handleIdentifier(false, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, false, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(false)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
+            handleIdentifier(false, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, false, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(false)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
+            handleIdentifier(false, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, false, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(false)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
+            handleIdentifier(false, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, false, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -709,11 +4650,152 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(final)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
+          handleIdentifier(final, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, final, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(final)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
+            handleIdentifier(final, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, final, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(final)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
+            handleIdentifier(final, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, final, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(final)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
+            handleIdentifier(final, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, final, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(final)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
+            handleIdentifier(final, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, final, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(final)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
+            handleIdentifier(final, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, final, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -731,11 +4813,315 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(finally)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
+          handleIdentifier(finally, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, finally, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finally)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
+            handleIdentifier(finally, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, finally, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finally)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
+            handleIdentifier(finally, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, finally, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finally)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
+            handleIdentifier(finally, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, finally, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finally)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
+            handleIdentifier(finally, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, finally, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finally)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
+            handleIdentifier(finally, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, finally, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(for)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
+          handleIdentifier(for, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, for, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(for)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
+            handleIdentifier(for, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, for, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(for)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
+            handleIdentifier(for, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, for, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(for)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
+            handleIdentifier(for, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, for, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(for)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
+            handleIdentifier(for, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, for, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(for)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
+            handleIdentifier(for, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, for, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -773,6 +5159,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(Function)
+            handleType(int, null)
+            handleIdentifier(Function, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, Function, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(Function)
+            handleType(int, null)
+            handleIdentifier(Function, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, Function, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(Function)
+            handleType(int, null)
+            handleIdentifier(Function, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, Function, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -796,6 +5316,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(get, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, get, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(get, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, get, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(get, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, get, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -819,14 +5473,289 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(hide)
+            handleType(int, null)
+            handleIdentifier(hide, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, hide, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(hide)
+            handleType(int, null)
+            handleIdentifier(hide, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, hide, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(hide)
+            handleType(int, null)
+            handleIdentifier(hide, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, hide, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(if)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
+          handleIdentifier(if, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, if, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(if)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
+            handleIdentifier(if, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, if, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(if)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
+            handleIdentifier(if, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, if, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(if)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
+            handleIdentifier(if, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, if, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(if)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
+            handleIdentifier(if, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, if, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(if)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
+            handleIdentifier(if, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, if, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -864,6 +5793,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(implements)
+            handleType(int, null)
+            handleIdentifier(implements, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, implements, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(implements)
+            handleType(int, null)
+            handleIdentifier(implements, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, implements, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(implements)
+            handleType(int, null)
+            handleIdentifier(implements, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, implements, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -887,14 +5950,289 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(import)
+            handleType(int, null)
+            handleIdentifier(import, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, import, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(import)
+            handleType(int, null)
+            handleIdentifier(import, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, import, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(import)
+            handleType(int, null)
+            handleIdentifier(import, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, import, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(in)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
+          handleIdentifier(in, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, in, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(in)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
+            handleIdentifier(in, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, in, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(in)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
+            handleIdentifier(in, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, in, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(in)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
+            handleIdentifier(in, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, in, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(in)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
+            handleIdentifier(in, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, in, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(in)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
+            handleIdentifier(in, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, in, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -932,6 +6270,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inout)
+            handleType(int, null)
+            handleIdentifier(inout, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, inout, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inout)
+            handleType(int, null)
+            handleIdentifier(inout, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, inout, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inout)
+            handleType(int, null)
+            handleIdentifier(inout, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, inout, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -955,14 +6427,289 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(interface)
+            handleType(int, null)
+            handleIdentifier(interface, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, interface, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(interface)
+            handleType(int, null)
+            handleIdentifier(interface, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, interface, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(interface)
+            handleType(int, null)
+            handleIdentifier(interface, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, interface, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(is)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
+          handleIdentifier(is, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, is, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(is)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
+            handleIdentifier(is, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, is, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(is)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
+            handleIdentifier(is, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, is, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(is)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
+            handleIdentifier(is, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, is, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(is)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
+            handleIdentifier(is, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, is, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(is)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
+            handleIdentifier(is, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, is, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1000,6 +6747,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(late)
+            handleType(int, null)
+            handleIdentifier(late, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, late, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(late)
+            handleType(int, null)
+            handleIdentifier(late, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, late, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(late)
+            handleType(int, null)
+            handleIdentifier(late, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, late, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -1023,6 +6904,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(library)
+            handleType(int, null)
+            handleIdentifier(library, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, library, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(library)
+            handleType(int, null)
+            handleIdentifier(library, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, library, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(library)
+            handleType(int, null)
+            handleIdentifier(library, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, library, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -1046,6 +7061,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(mixin)
+            handleType(int, null)
+            handleIdentifier(mixin, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, mixin, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(mixin)
+            handleType(int, null)
+            handleIdentifier(mixin, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, mixin, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(mixin)
+            handleType(int, null)
+            handleIdentifier(mixin, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, mixin, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -1069,14 +7218,126 @@
       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)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(native)
+            handleType(int, null)
+            handleIdentifier(native, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, native, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(native)
+            handleType(int, null)
+            handleIdentifier(native, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, native, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(native)
+            handleType(int, null)
+            handleIdentifier(native, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, native, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1094,11 +7355,315 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(new)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
+          handleIdentifier(new, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, new, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(new)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
+            handleIdentifier(new, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, new, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(new)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
+            handleIdentifier(new, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, new, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(new)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
+            handleIdentifier(new, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, new, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(new)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
+            handleIdentifier(new, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, new, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(new)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
+            handleIdentifier(new, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, new, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(null)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
+          handleIdentifier(null, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, null, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(null)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
+            handleIdentifier(null, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, null, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(null)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
+            handleIdentifier(null, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, null, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(null)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
+            handleIdentifier(null, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, null, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(null)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
+            handleIdentifier(null, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, null, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(null)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
+            handleIdentifier(null, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, null, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1136,6 +7701,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(of)
+            handleType(int, null)
+            handleIdentifier(of, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, of, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(of)
+            handleType(int, null)
+            handleIdentifier(of, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, of, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(of)
+            handleType(int, null)
+            handleIdentifier(of, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, of, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -1159,6 +7858,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(on)
+            handleType(int, null)
+            handleIdentifier(on, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, on, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(on)
+            handleType(int, null)
+            handleIdentifier(on, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, on, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(on)
+            handleType(int, null)
+            handleIdentifier(on, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, on, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -1182,6 +8015,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(operator)
+            handleType(int, null)
+            handleIdentifier(operator, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, operator, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(operator)
+            handleType(int, null)
+            handleIdentifier(operator, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, operator, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(operator)
+            handleType(int, null)
+            handleIdentifier(operator, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, operator, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -1205,6 +8172,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(out)
+            handleType(int, null)
+            handleIdentifier(out, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, out, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(out)
+            handleType(int, null)
+            handleIdentifier(out, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, out, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(out)
+            handleType(int, null)
+            handleIdentifier(out, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, out, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -1228,6 +8329,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(part)
+            handleType(int, null)
+            handleIdentifier(part, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, part, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(part)
+            handleType(int, null)
+            handleIdentifier(part, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, part, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(part)
+            handleType(int, null)
+            handleIdentifier(part, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, part, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -1251,6 +8486,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(patch)
+            handleType(int, null)
+            handleIdentifier(patch, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, patch, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(patch)
+            handleType(int, null)
+            handleIdentifier(patch, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, patch, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(patch)
+            handleType(int, null)
+            handleIdentifier(patch, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, patch, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -1274,14 +8643,126 @@
       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)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(required)
+            handleType(int, null)
+            handleIdentifier(required, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, required, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(required)
+            handleType(int, null)
+            handleIdentifier(required, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, required, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(required)
+            handleType(int, null)
+            handleIdentifier(required, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, required, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1299,11 +8780,315 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(rethrow)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
+          handleIdentifier(rethrow, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, rethrow, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(rethrow)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
+            handleIdentifier(rethrow, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, rethrow, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(rethrow)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
+            handleIdentifier(rethrow, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, rethrow, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(rethrow)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
+            handleIdentifier(rethrow, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, rethrow, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(rethrow)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
+            handleIdentifier(rethrow, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, rethrow, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(rethrow)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
+            handleIdentifier(rethrow, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, rethrow, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(return)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
+          handleIdentifier(return, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, return, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(return)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
+            handleIdentifier(return, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, return, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(return)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
+            handleIdentifier(return, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, return, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(return)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
+            handleIdentifier(return, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, return, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(return)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
+            handleIdentifier(return, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, return, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(return)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
+            handleIdentifier(return, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, return, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1341,6 +9126,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(set)
+            handleType(int, null)
+            handleIdentifier(set, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, set, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(set)
+            handleType(int, null)
+            handleIdentifier(set, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, set, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(set)
+            handleType(int, null)
+            handleIdentifier(set, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, set, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -1364,6 +9283,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(show)
+            handleType(int, null)
+            handleIdentifier(show, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, show, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(show)
+            handleType(int, null)
+            handleIdentifier(show, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, show, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(show)
+            handleType(int, null)
+            handleIdentifier(show, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, show, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -1387,6 +9440,140 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(source)
+            handleType(int, null)
+            handleIdentifier(source, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, source, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(source)
+            handleType(int, null)
+            handleIdentifier(source, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, source, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(source)
+            handleType(int, null)
+            handleIdentifier(source, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, source, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
@@ -1410,14 +9597,126 @@
       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)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(static)
+            handleType(int, null)
+            handleIdentifier(static, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, static, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(static)
+            handleType(int, null)
+            handleIdentifier(static, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, static, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(static)
+            handleType(int, null)
+            handleIdentifier(static, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, static, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1435,11 +9734,315 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(super)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+          handleIdentifier(super, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, super, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(super)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+            handleIdentifier(super, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, super, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(super)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+            handleIdentifier(super, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, super, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(super)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+            handleIdentifier(super, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, super, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(super)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+            handleIdentifier(super, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, super, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(super)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+            handleIdentifier(super, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, super, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(switch)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
+          handleIdentifier(switch, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, switch, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(switch)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
+            handleIdentifier(switch, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, switch, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(switch)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
+            handleIdentifier(switch, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, switch, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(switch)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
+            handleIdentifier(switch, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, switch, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(switch)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
+            handleIdentifier(switch, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, switch, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(switch)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
+            handleIdentifier(switch, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, switch, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1477,17 +10080,289 @@
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(sync)
+            handleType(int, null)
+            handleIdentifier(sync, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, sync, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(sync)
+            handleType(int, null)
+            handleIdentifier(sync, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, sync, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(sync)
+            handleType(int, null)
+            handleIdentifier(sync, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, sync, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
+          handleIdentifier(this, formalParameterDeclaration)
           handleFormalParameterWithoutValue())
-        endFormalParameter(this, ., , null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+        endFormalParameter(null, null, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(this)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
+            handleIdentifier(this, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, this, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(this)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
+            handleIdentifier(this, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, this, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(this)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
+            handleIdentifier(this, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, this, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(this)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
+            handleIdentifier(this, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, this, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(this)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
+            handleIdentifier(this, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, this, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1505,11 +10380,152 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(throw)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
+          handleIdentifier(throw, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, throw, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(throw)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
+            handleIdentifier(throw, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, throw, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(throw)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
+            handleIdentifier(throw, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, throw, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(throw)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
+            handleIdentifier(throw, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, throw, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(throw)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
+            handleIdentifier(throw, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, throw, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(throw)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
+            handleIdentifier(throw, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, throw, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1527,11 +10543,152 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(true)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
+          handleIdentifier(true, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, true, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(true)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
+            handleIdentifier(true, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, true, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(true)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
+            handleIdentifier(true, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, true, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(true)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
+            handleIdentifier(true, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, true, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(true)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
+            handleIdentifier(true, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, true, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(true)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
+            handleIdentifier(true, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, true, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1549,11 +10706,152 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(try)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
+          handleIdentifier(try, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, try, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(try)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
+            handleIdentifier(try, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, try, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(try)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
+            handleIdentifier(try, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, try, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(try)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
+            handleIdentifier(try, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, try, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(try)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
+            handleIdentifier(try, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, try, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(try)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
+            handleIdentifier(try, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, try, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1591,14 +10889,126 @@
       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)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(typedef)
+            handleType(int, null)
+            handleIdentifier(typedef, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, typedef, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(typedef)
+            handleType(int, null)
+            handleIdentifier(typedef, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, typedef, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(typedef)
+            handleType(int, null)
+            handleIdentifier(typedef, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, typedef, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1616,11 +11026,152 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(var)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
+          handleIdentifier(var, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, var, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(var)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
+            handleIdentifier(var, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, var, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(var)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
+            handleIdentifier(var, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, var, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(var)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
+            handleIdentifier(var, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, var, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(var)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
+            handleIdentifier(var, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, var, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(var)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
+            handleIdentifier(var, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, var, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1638,11 +11189,152 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(void)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
+          handleIdentifier(void, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, void, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(void)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
+            handleIdentifier(void, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, void, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(void)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
+            handleIdentifier(void, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, void, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(void)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
+            handleIdentifier(void, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, void, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(void)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
+            handleIdentifier(void, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, void, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(void)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
+            handleIdentifier(void, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, void, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1660,11 +11352,315 @@
         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)
+          handleIdentifier(int, typeReference)
+          handleNoTypeArguments(while)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
+          handleIdentifier(while, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, while, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(while)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
+            handleIdentifier(while, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, while, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(while)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
+            handleIdentifier(while, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, while, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(while)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
+            handleIdentifier(while, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, while, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(while)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
+            handleIdentifier(while, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, while, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(while)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
+            handleIdentifier(while, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, while, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(with)
+          handleType(int, null)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
+          handleIdentifier(with, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, with, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(with)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
+            handleIdentifier(with, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, with, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(with)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
+            handleIdentifier(with, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, with, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(with)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
+            handleIdentifier(with, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, with, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(with)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
+            handleIdentifier(with, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, with, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(with)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
+            handleIdentifier(with, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, with, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
       endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
@@ -1693,5 +11689,139 @@
       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)
+        beginOptionalFormalParameters([)
+          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.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(yield)
+            handleType(int, null)
+            handleIdentifier(yield, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, yield, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          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.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(yield)
+            handleType(int, null)
+            handleIdentifier(yield, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, yield, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(yield)
+            handleType(int, null)
+            handleIdentifier(yield, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, yield, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
   endTopLevelDeclaration()
-endCompilationUnit(69, )
+endCompilationUnit(414, )
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
index 7723b5e..1412298 100644
--- 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
@@ -59,6 +59,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, abstract, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, abstract, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, abstract, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -99,19 +343,513 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, as, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, as, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, as, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(assert)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
+                  listener: handleIdentifier(assert, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, assert, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(assert)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
+                    listener: handleIdentifier(assert, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, assert, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(assert)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
+                    listener: handleIdentifier(assert, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, assert, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(assert)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
+                    listener: handleIdentifier(assert, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, assert, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(assert)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
+                    listener: handleIdentifier(assert, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, assert, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(assert)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
+                    listener: handleIdentifier(assert, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, assert, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -179,6 +917,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, async, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, async, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, async, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -219,19 +1201,223 @@
           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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, await, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, await, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, await, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -264,14 +1450,264 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(break)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
+                  listener: handleIdentifier(break, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, break, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(break)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
+                    listener: handleIdentifier(break, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, break, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(break)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
+                    listener: handleIdentifier(break, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, break, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(break)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
+                    listener: handleIdentifier(break, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, break, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(break)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
+                    listener: handleIdentifier(break, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, break, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(break)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
+                    listener: handleIdentifier(break, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, break, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -304,14 +1740,264 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(case)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
+                  listener: handleIdentifier(case, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, case, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(case)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
+                    listener: handleIdentifier(case, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, case, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(case)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
+                    listener: handleIdentifier(case, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, case, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(case)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
+                    listener: handleIdentifier(case, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, case, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(case)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
+                    listener: handleIdentifier(case, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, case, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(case)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
+                    listener: handleIdentifier(case, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, case, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -344,14 +2030,264 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(catch)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
+                  listener: handleIdentifier(catch, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, catch, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(catch)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
+                    listener: handleIdentifier(catch, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, catch, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(catch)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
+                    listener: handleIdentifier(catch, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, catch, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(catch)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
+                    listener: handleIdentifier(catch, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, catch, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(catch)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
+                    listener: handleIdentifier(catch, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, catch, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(catch)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
+                    listener: handleIdentifier(catch, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, catch, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -384,14 +2320,264 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(class)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
+                  listener: handleIdentifier(class, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, class, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(class)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
+                    listener: handleIdentifier(class, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, class, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(class)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
+                    listener: handleIdentifier(class, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, class, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(class)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
+                    listener: handleIdentifier(class, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, class, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(class)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
+                    listener: handleIdentifier(class, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, class, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(class)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
+                    listener: handleIdentifier(class, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, class, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -424,14 +2610,554 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(const)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
+                  listener: handleIdentifier(const, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, const, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(const)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
+                    listener: handleIdentifier(const, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, const, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(const)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
+                    listener: handleIdentifier(const, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, const, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(const)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
+                    listener: handleIdentifier(const, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, const, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(const)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
+                    listener: handleIdentifier(const, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, const, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(const)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
+                    listener: handleIdentifier(const, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, const, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(continue)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
+                  listener: handleIdentifier(continue, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, continue, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(continue)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
+                    listener: handleIdentifier(continue, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, continue, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(continue)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
+                    listener: handleIdentifier(continue, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, continue, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(continue)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
+                    listener: handleIdentifier(continue, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, continue, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(continue)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
+                    listener: handleIdentifier(continue, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, continue, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(continue)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
+                    listener: handleIdentifier(continue, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, continue, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -499,19 +3225,513 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, covariant, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, covariant, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, covariant, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(default)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+                  listener: handleIdentifier(default, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, default, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(default)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+                    listener: handleIdentifier(default, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, default, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(default)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+                    listener: handleIdentifier(default, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, default, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(default)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+                    listener: handleIdentifier(default, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, default, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(default)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+                    listener: handleIdentifier(default, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, default, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(default)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
+                    listener: handleIdentifier(default, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, default, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -579,19 +3799,513 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, deferred, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, deferred, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, deferred, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(do)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
+                  listener: handleIdentifier(do, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, do, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(do)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
+                    listener: handleIdentifier(do, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, do, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(do)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
+                    listener: handleIdentifier(do, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, do, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(do)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
+                    listener: handleIdentifier(do, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, do, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(do)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
+                    listener: handleIdentifier(do, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, do, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(do)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
+                    listener: handleIdentifier(do, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, do, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -659,19 +4373,223 @@
           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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, dynamic, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, dynamic, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, dynamic, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -704,14 +4622,554 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(else)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
+                  listener: handleIdentifier(else, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, else, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(else)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
+                    listener: handleIdentifier(else, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, else, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(else)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
+                    listener: handleIdentifier(else, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, else, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(else)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
+                    listener: handleIdentifier(else, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, else, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(else)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
+                    listener: handleIdentifier(else, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, else, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(else)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
+                    listener: handleIdentifier(else, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, else, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(enum)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
+                  listener: handleIdentifier(enum, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, enum, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(enum)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
+                    listener: handleIdentifier(enum, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, enum, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(enum)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
+                    listener: handleIdentifier(enum, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, enum, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(enum)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
+                    listener: handleIdentifier(enum, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, enum, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(enum)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
+                    listener: handleIdentifier(enum, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, enum, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(enum)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
+                    listener: handleIdentifier(enum, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, enum, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -779,19 +5237,513 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, export, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, export, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, export, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(extends)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
+                  listener: handleIdentifier(extends, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, extends, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extends)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
+                    listener: handleIdentifier(extends, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, extends, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extends)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
+                    listener: handleIdentifier(extends, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, extends, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extends)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
+                    listener: handleIdentifier(extends, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, extends, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extends)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
+                    listener: handleIdentifier(extends, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, extends, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extends)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
+                    listener: handleIdentifier(extends, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, extends, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -859,6 +5811,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, extension, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, extension, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, extension, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -899,6 +6095,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, external, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, external, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, external, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -939,19 +6379,223 @@
           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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, factory, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, factory, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, factory, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -984,14 +6628,264 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(false)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
+                  listener: handleIdentifier(false, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, false, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(false)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
+                    listener: handleIdentifier(false, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, false, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(false)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
+                    listener: handleIdentifier(false, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, false, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(false)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
+                    listener: handleIdentifier(false, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, false, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(false)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
+                    listener: handleIdentifier(false, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, false, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(false)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
+                    listener: handleIdentifier(false, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, false, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -1024,14 +6918,264 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(final)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
+                  listener: handleIdentifier(final, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, final, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(final)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
+                    listener: handleIdentifier(final, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, final, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(final)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
+                    listener: handleIdentifier(final, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, final, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(final)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
+                    listener: handleIdentifier(final, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, final, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(final)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
+                    listener: handleIdentifier(final, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, final, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(final)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
+                    listener: handleIdentifier(final, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, final, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -1064,14 +7208,554 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(finally)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
+                  listener: handleIdentifier(finally, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, finally, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finally)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
+                    listener: handleIdentifier(finally, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, finally, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finally)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
+                    listener: handleIdentifier(finally, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, finally, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finally)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
+                    listener: handleIdentifier(finally, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, finally, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finally)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
+                    listener: handleIdentifier(finally, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, finally, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finally)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
+                    listener: handleIdentifier(finally, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, finally, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(for)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
+                  listener: handleIdentifier(for, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, for, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(for)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
+                    listener: handleIdentifier(for, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, for, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(for)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
+                    listener: handleIdentifier(for, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, for, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(for)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
+                    listener: handleIdentifier(for, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, for, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(for)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
+                    listener: handleIdentifier(for, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, for, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(for)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
+                    listener: handleIdentifier(for, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, for, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -1139,6 +7823,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, Function, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, Function, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, Function, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -1179,6 +8107,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, get, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, get, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, get, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -1219,19 +8391,513 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, hide, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, hide, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, hide, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(if)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
+                  listener: handleIdentifier(if, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, if, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(if)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
+                    listener: handleIdentifier(if, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, if, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(if)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
+                    listener: handleIdentifier(if, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, if, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(if)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
+                    listener: handleIdentifier(if, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, if, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(if)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
+                    listener: handleIdentifier(if, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, if, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(if)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
+                    listener: handleIdentifier(if, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, if, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -1299,6 +8965,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, implements, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, implements, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, implements, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -1339,19 +9249,513 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, import, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, import, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, import, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(in)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
+                  listener: handleIdentifier(in, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, in, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(in)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
+                    listener: handleIdentifier(in, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, in, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(in)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
+                    listener: handleIdentifier(in, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, in, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(in)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
+                    listener: handleIdentifier(in, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, in, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(in)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
+                    listener: handleIdentifier(in, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, in, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(in)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
+                    listener: handleIdentifier(in, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, in, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -1419,6 +9823,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, inout, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, inout, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, inout, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -1459,19 +10107,513 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, interface, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, interface, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, interface, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(is)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
+                  listener: handleIdentifier(is, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, is, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(is)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
+                    listener: handleIdentifier(is, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, is, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(is)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
+                    listener: handleIdentifier(is, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, is, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(is)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
+                    listener: handleIdentifier(is, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, is, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(is)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
+                    listener: handleIdentifier(is, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, is, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(is)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
+                    listener: handleIdentifier(is, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, is, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -1539,6 +10681,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, late, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, late, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, late, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -1579,6 +10965,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, library, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, library, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, library, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -1619,6 +11249,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, mixin, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, mixin, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, mixin, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -1659,19 +11533,223 @@
           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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, native, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, native, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, native, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -1704,14 +11782,554 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(new)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
+                  listener: handleIdentifier(new, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, new, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(new)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
+                    listener: handleIdentifier(new, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, new, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(new)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
+                    listener: handleIdentifier(new, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, new, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(new)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
+                    listener: handleIdentifier(new, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, new, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(new)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
+                    listener: handleIdentifier(new, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, new, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(new)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
+                    listener: handleIdentifier(new, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, new, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(null)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
+                  listener: handleIdentifier(null, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, null, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(null)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
+                    listener: handleIdentifier(null, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, null, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(null)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
+                    listener: handleIdentifier(null, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, null, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(null)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
+                    listener: handleIdentifier(null, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, null, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(null)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
+                    listener: handleIdentifier(null, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, null, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(null)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
+                    listener: handleIdentifier(null, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, null, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -1779,6 +12397,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, of, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, of, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, of, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -1819,6 +12681,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, on, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, on, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, on, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -1859,6 +12965,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, operator, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, operator, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, operator, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -1899,6 +13249,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, out, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, out, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, out, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -1939,6 +13533,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, part, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, part, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, part, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -1979,6 +13817,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, patch, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, patch, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, patch, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -2019,19 +14101,223 @@
           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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, required, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, required, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, required, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -2064,14 +14350,554 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(rethrow)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
+                  listener: handleIdentifier(rethrow, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, rethrow, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(rethrow)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
+                    listener: handleIdentifier(rethrow, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, rethrow, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(rethrow)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
+                    listener: handleIdentifier(rethrow, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, rethrow, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(rethrow)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
+                    listener: handleIdentifier(rethrow, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, rethrow, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(rethrow)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
+                    listener: handleIdentifier(rethrow, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, rethrow, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(rethrow)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
+                    listener: handleIdentifier(rethrow, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, rethrow, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(return)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
+                  listener: handleIdentifier(return, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, return, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(return)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
+                    listener: handleIdentifier(return, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, return, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(return)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
+                    listener: handleIdentifier(return, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, return, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(return)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
+                    listener: handleIdentifier(return, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, return, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(return)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
+                    listener: handleIdentifier(return, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, return, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(return)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
+                    listener: handleIdentifier(return, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, return, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -2139,6 +14965,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, set, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, set, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, set, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -2179,6 +15249,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, show, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, show, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, show, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -2219,6 +15533,250 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, source, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, source, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, source, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
@@ -2259,19 +15817,223 @@
           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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, static, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, static, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, static, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -2304,14 +16066,554 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(super)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+                  listener: handleIdentifier(super, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, super, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(super)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+                    listener: handleIdentifier(super, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, super, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(super)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+                    listener: handleIdentifier(super, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, super, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(super)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+                    listener: handleIdentifier(super, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, super, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(super)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+                    listener: handleIdentifier(super, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, super, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(super)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+                    listener: handleIdentifier(super, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, super, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(switch)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
+                  listener: handleIdentifier(switch, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, switch, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(switch)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
+                    listener: handleIdentifier(switch, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, switch, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(switch)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
+                    listener: handleIdentifier(switch, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, switch, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(switch)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
+                    listener: handleIdentifier(switch, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, switch, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(switch)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
+                    listener: handleIdentifier(switch, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, switch, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(switch)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
+                    listener: handleIdentifier(switch, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, switch, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -2379,25 +16681,513 @@
           parseFormalParameters(test, MemberKind.TopLevelMethod)
             parseFormalParametersRest((, MemberKind.TopLevelMethod)
               listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, sync, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, sync, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, sync, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
+                  listener: handleIdentifier(this, formalParameterDeclaration)
                 listener: handleFormalParameterWithoutValue())
-                listener: endFormalParameter(this, ., , null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+                listener: endFormalParameter(null, null, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(this)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
+                    listener: handleIdentifier(this, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, this, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(this)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
+                    listener: handleIdentifier(this, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, this, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(this)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
+                    listener: handleIdentifier(this, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, this, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(this)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
+                    listener: handleIdentifier(this, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, this, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(this)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
+                    listener: handleIdentifier(this, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, this, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -2430,14 +17220,264 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(throw)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
+                  listener: handleIdentifier(throw, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, throw, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(throw)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
+                    listener: handleIdentifier(throw, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, throw, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(throw)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
+                    listener: handleIdentifier(throw, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, throw, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(throw)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
+                    listener: handleIdentifier(throw, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, throw, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(throw)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
+                    listener: handleIdentifier(throw, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, throw, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(throw)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
+                    listener: handleIdentifier(throw, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, throw, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -2470,14 +17510,264 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(true)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
+                  listener: handleIdentifier(true, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, true, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(true)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
+                    listener: handleIdentifier(true, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, true, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(true)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
+                    listener: handleIdentifier(true, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, true, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(true)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
+                    listener: handleIdentifier(true, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, true, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(true)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
+                    listener: handleIdentifier(true, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, true, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(true)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
+                    listener: handleIdentifier(true, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, true, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -2510,14 +17800,264 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(try)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
+                  listener: handleIdentifier(try, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, try, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(try)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
+                    listener: handleIdentifier(try, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, try, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(try)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
+                    listener: handleIdentifier(try, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, try, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(try)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
+                    listener: handleIdentifier(try, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, try, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(try)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
+                    listener: handleIdentifier(try, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, try, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(try)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
+                    listener: handleIdentifier(try, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, try, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -2585,19 +18125,223 @@
           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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, typedef, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, typedef, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, typedef, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -2630,14 +18374,264 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(var)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
+                  listener: handleIdentifier(var, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, var, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(var)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
+                    listener: handleIdentifier(var, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, var, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(var)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
+                    listener: handleIdentifier(var, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, var, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(var)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
+                    listener: handleIdentifier(var, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, var, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(var)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
+                    listener: handleIdentifier(var, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, var, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(var)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
+                    listener: handleIdentifier(var, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, var, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -2670,14 +18664,264 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(void)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
+                  listener: handleIdentifier(void, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, void, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(void)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
+                    listener: handleIdentifier(void, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, void, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(void)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
+                    listener: handleIdentifier(void, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, void, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(void)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
+                    listener: handleIdentifier(void, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, void, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(void)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
+                    listener: handleIdentifier(void, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, void, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(void)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
+                    listener: handleIdentifier(void, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, void, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -2710,14 +18954,554 @@
                   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: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(while)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
+                  listener: handleIdentifier(while, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, while, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(while)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
+                    listener: handleIdentifier(while, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, while, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(while)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
+                    listener: handleIdentifier(while, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, while, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(while)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
+                    listener: handleIdentifier(while, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, while, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(while)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
+                    listener: handleIdentifier(while, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, while, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(while)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
+                    listener: handleIdentifier(while, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, while, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(with)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
+                  listener: handleIdentifier(with, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, with, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(with)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
+                    listener: handleIdentifier(with, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, with, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(with)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
+                    listener: handleIdentifier(with, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, with, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(with)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
+                    listener: handleIdentifier(with, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, with, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(with)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
+                    listener: handleIdentifier(with, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, with, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(with)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
+                    listener: handleIdentifier(with, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, with, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
               listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
         parseAsyncModifierOpt())
           listener: handleAsyncModifier(null, null)
@@ -2767,6 +19551,250 @@
           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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, yield, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, yield, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, 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: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, yield, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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, )
+  listener: endCompilationUnit(414, )
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
index 312326e..41d27c9 100644
--- 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
@@ -1,143 +1,967 @@
-NOTICE: Stream was rewritten by parser!
-
 void test(int abstract) {}
+void test([int abstract]) {}
+void test([int abstract = 42]) {}
+void test({int abstract}) {}
+void test({int abstract: 42}) {}
+void test({int abstract = 42}) {}
+
 void test(int as) {}
+void test([int as]) {}
+void test([int as = 42]) {}
+void test({int as}) {}
+void test({int as: 42}) {}
+void test({int as = 42}) {}
+
 void test(int assert) {}
+void test([int assert]) {}
+void test([int assert = 42]) {}
+void test({int assert}) {}
+void test({int assert: 42}) {}
+void test({int assert = 42}) {}
+
 void test(int async) {}
+void test([int async]) {}
+void test([int async = 42]) {}
+void test({int async}) {}
+void test({int async: 42}) {}
+void test({int async = 42}) {}
+
 void test(int await) {}
+void test([int await]) {}
+void test([int await = 42]) {}
+void test({int await}) {}
+void test({int await: 42}) {}
+void test({int await = 42}) {}
+
 void test(int break) {}
+void test([int break]) {}
+void test([int break = 42]) {}
+void test({int break}) {}
+void test({int break: 42}) {}
+void test({int break = 42}) {}
+
 void test(int case) {}
+void test([int case]) {}
+void test([int case = 42]) {}
+void test({int case}) {}
+void test({int case: 42}) {}
+void test({int case = 42}) {}
+
 void test(int catch) {}
+void test([int catch]) {}
+void test([int catch = 42]) {}
+void test({int catch}) {}
+void test({int catch: 42}) {}
+void test({int catch = 42}) {}
+
 void test(int class) {}
+void test([int class]) {}
+void test([int class = 42]) {}
+void test({int class}) {}
+void test({int class: 42}) {}
+void test({int class = 42}) {}
+
 void test(int const) {}
+void test([int const]) {}
+void test([int const = 42]) {}
+void test({int const}) {}
+void test({int const: 42}) {}
+void test({int const = 42}) {}
+
 void test(int continue) {}
+void test([int continue]) {}
+void test([int continue = 42]) {}
+void test({int continue}) {}
+void test({int continue: 42}) {}
+void test({int continue = 42}) {}
+
 void test(int covariant) {}
+void test([int covariant]) {}
+void test([int covariant = 42]) {}
+void test({int covariant}) {}
+void test({int covariant: 42}) {}
+void test({int covariant = 42}) {}
+
 void test(int default) {}
+void test([int default]) {}
+void test([int default = 42]) {}
+void test({int default}) {}
+void test({int default: 42}) {}
+void test({int default = 42}) {}
+
 void test(int deferred) {}
+void test([int deferred]) {}
+void test([int deferred = 42]) {}
+void test({int deferred}) {}
+void test({int deferred: 42}) {}
+void test({int deferred = 42}) {}
+
 void test(int do) {}
+void test([int do]) {}
+void test([int do = 42]) {}
+void test({int do}) {}
+void test({int do: 42}) {}
+void test({int do = 42}) {}
+
 void test(int dynamic) {}
+void test([int dynamic]) {}
+void test([int dynamic = 42]) {}
+void test({int dynamic}) {}
+void test({int dynamic: 42}) {}
+void test({int dynamic = 42}) {}
+
 void test(int else) {}
+void test([int else]) {}
+void test([int else = 42]) {}
+void test({int else}) {}
+void test({int else: 42}) {}
+void test({int else = 42}) {}
+
 void test(int enum) {}
+void test([int enum]) {}
+void test([int enum = 42]) {}
+void test({int enum}) {}
+void test({int enum: 42}) {}
+void test({int enum = 42}) {}
+
 void test(int export) {}
+void test([int export]) {}
+void test([int export = 42]) {}
+void test({int export}) {}
+void test({int export: 42}) {}
+void test({int export = 42}) {}
+
 void test(int extends) {}
+void test([int extends]) {}
+void test([int extends = 42]) {}
+void test({int extends}) {}
+void test({int extends: 42}) {}
+void test({int extends = 42}) {}
+
 void test(int extension) {}
+void test([int extension]) {}
+void test([int extension = 42]) {}
+void test({int extension}) {}
+void test({int extension: 42}) {}
+void test({int extension = 42}) {}
+
 void test(int external) {}
+void test([int external]) {}
+void test([int external = 42]) {}
+void test({int external}) {}
+void test({int external: 42}) {}
+void test({int external = 42}) {}
+
 void test(int factory) {}
+void test([int factory]) {}
+void test([int factory = 42]) {}
+void test({int factory}) {}
+void test({int factory: 42}) {}
+void test({int factory = 42}) {}
+
 void test(int false) {}
+void test([int false]) {}
+void test([int false = 42]) {}
+void test({int false}) {}
+void test({int false: 42}) {}
+void test({int false = 42}) {}
+
 void test(int final) {}
+void test([int final]) {}
+void test([int final = 42]) {}
+void test({int final}) {}
+void test({int final: 42}) {}
+void test({int final = 42}) {}
+
 void test(int finally) {}
+void test([int finally]) {}
+void test([int finally = 42]) {}
+void test({int finally}) {}
+void test({int finally: 42}) {}
+void test({int finally = 42}) {}
+
 void test(int for) {}
+void test([int for]) {}
+void test([int for = 42]) {}
+void test({int for}) {}
+void test({int for: 42}) {}
+void test({int for = 42}) {}
+
 void test(int Function) {}
+void test([int Function]) {}
+void test([int Function = 42]) {}
+void test({int Function}) {}
+void test({int Function: 42}) {}
+void test({int Function = 42}) {}
+
 void test(int get) {}
+void test([int get]) {}
+void test([int get = 42]) {}
+void test({int get}) {}
+void test({int get: 42}) {}
+void test({int get = 42}) {}
+
 void test(int hide) {}
+void test([int hide]) {}
+void test([int hide = 42]) {}
+void test({int hide}) {}
+void test({int hide: 42}) {}
+void test({int hide = 42}) {}
+
 void test(int if) {}
+void test([int if]) {}
+void test([int if = 42]) {}
+void test({int if}) {}
+void test({int if: 42}) {}
+void test({int if = 42}) {}
+
 void test(int implements) {}
+void test([int implements]) {}
+void test([int implements = 42]) {}
+void test({int implements}) {}
+void test({int implements: 42}) {}
+void test({int implements = 42}) {}
+
 void test(int import) {}
+void test([int import]) {}
+void test([int import = 42]) {}
+void test({int import}) {}
+void test({int import: 42}) {}
+void test({int import = 42}) {}
+
 void test(int in) {}
+void test([int in]) {}
+void test([int in = 42]) {}
+void test({int in}) {}
+void test({int in: 42}) {}
+void test({int in = 42}) {}
+
 void test(int inout) {}
+void test([int inout]) {}
+void test([int inout = 42]) {}
+void test({int inout}) {}
+void test({int inout: 42}) {}
+void test({int inout = 42}) {}
+
 void test(int interface) {}
+void test([int interface]) {}
+void test([int interface = 42]) {}
+void test({int interface}) {}
+void test({int interface: 42}) {}
+void test({int interface = 42}) {}
+
 void test(int is) {}
+void test([int is]) {}
+void test([int is = 42]) {}
+void test({int is}) {}
+void test({int is: 42}) {}
+void test({int is = 42}) {}
+
 void test(int late) {}
+void test([int late]) {}
+void test([int late = 42]) {}
+void test({int late}) {}
+void test({int late: 42}) {}
+void test({int late = 42}) {}
+
 void test(int library) {}
+void test([int library]) {}
+void test([int library = 42]) {}
+void test({int library}) {}
+void test({int library: 42}) {}
+void test({int library = 42}) {}
+
 void test(int mixin) {}
+void test([int mixin]) {}
+void test([int mixin = 42]) {}
+void test({int mixin}) {}
+void test({int mixin: 42}) {}
+void test({int mixin = 42}) {}
+
 void test(int native) {}
+void test([int native]) {}
+void test([int native = 42]) {}
+void test({int native}) {}
+void test({int native: 42}) {}
+void test({int native = 42}) {}
+
 void test(int new) {}
+void test([int new]) {}
+void test([int new = 42]) {}
+void test({int new}) {}
+void test({int new: 42}) {}
+void test({int new = 42}) {}
+
 void test(int null) {}
+void test([int null]) {}
+void test([int null = 42]) {}
+void test({int null}) {}
+void test({int null: 42}) {}
+void test({int null = 42}) {}
+
 void test(int of) {}
+void test([int of]) {}
+void test([int of = 42]) {}
+void test({int of}) {}
+void test({int of: 42}) {}
+void test({int of = 42}) {}
+
 void test(int on) {}
+void test([int on]) {}
+void test([int on = 42]) {}
+void test({int on}) {}
+void test({int on: 42}) {}
+void test({int on = 42}) {}
+
 void test(int operator) {}
+void test([int operator]) {}
+void test([int operator = 42]) {}
+void test({int operator}) {}
+void test({int operator: 42}) {}
+void test({int operator = 42}) {}
+
 void test(int out) {}
+void test([int out]) {}
+void test([int out = 42]) {}
+void test({int out}) {}
+void test({int out: 42}) {}
+void test({int out = 42}) {}
+
 void test(int part) {}
+void test([int part]) {}
+void test([int part = 42]) {}
+void test({int part}) {}
+void test({int part: 42}) {}
+void test({int part = 42}) {}
+
 void test(int patch) {}
+void test([int patch]) {}
+void test([int patch = 42]) {}
+void test({int patch}) {}
+void test({int patch: 42}) {}
+void test({int patch = 42}) {}
+
 void test(int required) {}
+void test([int required]) {}
+void test([int required = 42]) {}
+void test({int required}) {}
+void test({int required: 42}) {}
+void test({int required = 42}) {}
+
 void test(int rethrow) {}
+void test([int rethrow]) {}
+void test([int rethrow = 42]) {}
+void test({int rethrow}) {}
+void test({int rethrow: 42}) {}
+void test({int rethrow = 42}) {}
+
 void test(int return) {}
+void test([int return]) {}
+void test([int return = 42]) {}
+void test({int return}) {}
+void test({int return: 42}) {}
+void test({int return = 42}) {}
+
 void test(int set) {}
+void test([int set]) {}
+void test([int set = 42]) {}
+void test({int set}) {}
+void test({int set: 42}) {}
+void test({int set = 42}) {}
+
 void test(int show) {}
+void test([int show]) {}
+void test([int show = 42]) {}
+void test({int show}) {}
+void test({int show: 42}) {}
+void test({int show = 42}) {}
+
 void test(int source) {}
+void test([int source]) {}
+void test([int source = 42]) {}
+void test({int source}) {}
+void test({int source: 42}) {}
+void test({int source = 42}) {}
+
 void test(int static) {}
+void test([int static]) {}
+void test([int static = 42]) {}
+void test({int static}) {}
+void test({int static: 42}) {}
+void test({int static = 42}) {}
+
 void test(int super) {}
+void test([int super]) {}
+void test([int super = 42]) {}
+void test({int super}) {}
+void test({int super: 42}) {}
+void test({int super = 42}) {}
+
 void test(int switch) {}
+void test([int switch]) {}
+void test([int switch = 42]) {}
+void test({int switch}) {}
+void test({int switch: 42}) {}
+void test({int switch = 42}) {}
+
 void test(int sync) {}
-void test(int this.*synthetic*) {}
+void test([int sync]) {}
+void test([int sync = 42]) {}
+void test({int sync}) {}
+void test({int sync: 42}) {}
+void test({int sync = 42}) {}
+
+void test(int this) {}
+void test([int this]) {}
+void test([int this = 42]) {}
+void test({int this}) {}
+void test({int this: 42}) {}
+void test({int this = 42}) {}
+
 void test(int throw) {}
+void test([int throw]) {}
+void test([int throw = 42]) {}
+void test({int throw}) {}
+void test({int throw: 42}) {}
+void test({int throw = 42}) {}
+
 void test(int true) {}
+void test([int true]) {}
+void test([int true = 42]) {}
+void test({int true}) {}
+void test({int true: 42}) {}
+void test({int true = 42}) {}
+
 void test(int try) {}
+void test([int try]) {}
+void test([int try = 42]) {}
+void test({int try}) {}
+void test({int try: 42}) {}
+void test({int try = 42}) {}
+
 void test(int typedef) {}
+void test([int typedef]) {}
+void test([int typedef = 42]) {}
+void test({int typedef}) {}
+void test({int typedef: 42}) {}
+void test({int typedef = 42}) {}
+
 void test(int var) {}
+void test([int var]) {}
+void test([int var = 42]) {}
+void test({int var}) {}
+void test({int var: 42}) {}
+void test({int var = 42}) {}
+
 void test(int void) {}
+void test([int void]) {}
+void test([int void = 42]) {}
+void test({int void}) {}
+void test({int void: 42}) {}
+void test({int void = 42}) {}
+
 void test(int while) {}
+void test([int while]) {}
+void test([int while = 42]) {}
+void test({int while}) {}
+void test({int while: 42}) {}
+void test({int while = 42}) {}
+
 void test(int with) {}
+void test([int with]) {}
+void test([int with = 42]) {}
+void test({int with}) {}
+void test({int with: 42}) {}
+void test({int with = 42}) {}
+
 void test(int yield) {}
+void test([int yield]) {}
+void test([int yield = 42]) {}
+void test({int yield}) {}
+void test({int yield: 42}) {}
+void test({int yield = 42}) {}
 
 
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] abstract[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] abstract[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] abstract[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] abstract[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] abstract[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] abstract[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] as[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] as[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] as[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] as[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] as[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] as[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] assert[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] assert[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] assert[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] assert[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] assert[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] assert[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] async[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] async[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] async[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] async[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] async[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] async[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] await[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] await[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] await[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] await[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] await[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] await[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] break[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] break[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] break[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] break[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] break[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] break[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] case[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] case[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] case[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] case[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] case[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] case[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] catch[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] catch[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] catch[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] catch[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] catch[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] catch[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] class[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] class[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] class[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] class[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] class[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] class[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] const[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] const[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] const[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] const[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] const[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] const[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] continue[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] continue[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] continue[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] continue[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] continue[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] continue[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] covariant[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] covariant[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] covariant[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] covariant[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] covariant[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] covariant[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] default[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] default[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] default[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] default[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] default[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] default[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] deferred[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] deferred[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] deferred[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] deferred[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] deferred[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] deferred[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] do[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] do[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] do[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] do[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] do[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] do[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] dynamic[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] dynamic[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] dynamic[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] dynamic[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] dynamic[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] dynamic[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] else[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] else[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] else[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] else[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] else[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] else[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] enum[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] enum[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] enum[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] enum[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] enum[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] enum[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] export[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] export[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] export[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] export[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] export[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] export[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] extends[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extends[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extends[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extends[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extends[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extends[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] extension[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extension[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extension[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extension[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extension[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extension[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] external[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] external[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] external[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] external[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] external[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] external[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] factory[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] factory[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] factory[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] factory[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] factory[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] factory[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] false[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] false[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] false[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] false[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] false[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] false[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] final[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] final[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] final[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] final[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] final[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] final[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] finally[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] finally[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] finally[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finally[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finally[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finally[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] for[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] for[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] for[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] for[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] for[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] for[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] Function[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] Function[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] Function[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] Function[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] Function[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] Function[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] get[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] get[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] get[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] get[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] get[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] get[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] hide[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] hide[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] hide[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] hide[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] hide[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] hide[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] if[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] if[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] if[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] if[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] if[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] if[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] implements[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] implements[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] implements[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] implements[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] implements[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] implements[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] import[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] import[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] import[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] import[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] import[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] import[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] in[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] in[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] in[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] in[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] in[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] in[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] inout[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] inout[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] inout[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inout[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inout[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inout[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] interface[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] interface[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] interface[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] interface[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] interface[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] interface[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] is[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] is[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] is[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] is[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] is[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] is[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] late[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] late[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] late[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] late[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] late[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] late[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] library[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] library[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] library[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] library[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] library[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] library[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] mixin[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] mixin[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] mixin[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] mixin[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] mixin[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] mixin[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] native[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] native[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] native[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] native[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] native[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] native[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] new[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] new[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] new[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] new[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] new[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] new[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] null[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] null[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] null[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] null[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] null[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] null[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] of[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] of[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] of[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] of[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] of[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] of[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] on[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] on[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] on[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] on[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] on[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] on[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] operator[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] operator[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] operator[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] operator[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] operator[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] operator[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] out[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] out[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] out[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] out[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] out[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] out[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] part[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] part[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] part[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] part[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] part[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] part[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] patch[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] patch[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] patch[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] patch[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] patch[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] patch[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] required[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] required[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] required[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] required[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] required[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] required[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] rethrow[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] rethrow[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] rethrow[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] rethrow[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] rethrow[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] rethrow[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] return[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] return[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] return[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] return[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] return[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] return[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] set[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] set[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] set[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] set[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] set[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] set[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] show[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] show[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] show[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] show[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] show[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] show[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] source[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] source[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] source[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] source[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] source[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] source[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] static[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] static[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] static[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] static[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] static[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] static[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] super[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] super[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] super[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] super[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] super[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] super[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] switch[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] switch[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] switch[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] switch[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] switch[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] switch[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[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][[BeginToken]int[StringToken] sync[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] sync[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] sync[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] sync[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] sync[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] this[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] this[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] this[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] this[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] this[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] this[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] throw[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] throw[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] throw[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] throw[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] throw[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] throw[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] true[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] true[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] true[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] true[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] true[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] true[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] try[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] try[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] try[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] try[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] try[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] try[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] typedef[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] typedef[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] typedef[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] typedef[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] typedef[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] typedef[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] var[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] var[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] var[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] var[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] var[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] var[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] void[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] void[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] void[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] void[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] void[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] void[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] while[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] while[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] while[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] while[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] while[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] while[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] with[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] with[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] with[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] with[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] with[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] with[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] yield[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] yield[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] yield[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] yield[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] yield[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] yield[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[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
index 56df147..41d27c9 100644
--- 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
@@ -1,141 +1,967 @@
 void test(int abstract) {}
+void test([int abstract]) {}
+void test([int abstract = 42]) {}
+void test({int abstract}) {}
+void test({int abstract: 42}) {}
+void test({int abstract = 42}) {}
+
 void test(int as) {}
+void test([int as]) {}
+void test([int as = 42]) {}
+void test({int as}) {}
+void test({int as: 42}) {}
+void test({int as = 42}) {}
+
 void test(int assert) {}
+void test([int assert]) {}
+void test([int assert = 42]) {}
+void test({int assert}) {}
+void test({int assert: 42}) {}
+void test({int assert = 42}) {}
+
 void test(int async) {}
+void test([int async]) {}
+void test([int async = 42]) {}
+void test({int async}) {}
+void test({int async: 42}) {}
+void test({int async = 42}) {}
+
 void test(int await) {}
+void test([int await]) {}
+void test([int await = 42]) {}
+void test({int await}) {}
+void test({int await: 42}) {}
+void test({int await = 42}) {}
+
 void test(int break) {}
+void test([int break]) {}
+void test([int break = 42]) {}
+void test({int break}) {}
+void test({int break: 42}) {}
+void test({int break = 42}) {}
+
 void test(int case) {}
+void test([int case]) {}
+void test([int case = 42]) {}
+void test({int case}) {}
+void test({int case: 42}) {}
+void test({int case = 42}) {}
+
 void test(int catch) {}
+void test([int catch]) {}
+void test([int catch = 42]) {}
+void test({int catch}) {}
+void test({int catch: 42}) {}
+void test({int catch = 42}) {}
+
 void test(int class) {}
+void test([int class]) {}
+void test([int class = 42]) {}
+void test({int class}) {}
+void test({int class: 42}) {}
+void test({int class = 42}) {}
+
 void test(int const) {}
+void test([int const]) {}
+void test([int const = 42]) {}
+void test({int const}) {}
+void test({int const: 42}) {}
+void test({int const = 42}) {}
+
 void test(int continue) {}
+void test([int continue]) {}
+void test([int continue = 42]) {}
+void test({int continue}) {}
+void test({int continue: 42}) {}
+void test({int continue = 42}) {}
+
 void test(int covariant) {}
+void test([int covariant]) {}
+void test([int covariant = 42]) {}
+void test({int covariant}) {}
+void test({int covariant: 42}) {}
+void test({int covariant = 42}) {}
+
 void test(int default) {}
+void test([int default]) {}
+void test([int default = 42]) {}
+void test({int default}) {}
+void test({int default: 42}) {}
+void test({int default = 42}) {}
+
 void test(int deferred) {}
+void test([int deferred]) {}
+void test([int deferred = 42]) {}
+void test({int deferred}) {}
+void test({int deferred: 42}) {}
+void test({int deferred = 42}) {}
+
 void test(int do) {}
+void test([int do]) {}
+void test([int do = 42]) {}
+void test({int do}) {}
+void test({int do: 42}) {}
+void test({int do = 42}) {}
+
 void test(int dynamic) {}
+void test([int dynamic]) {}
+void test([int dynamic = 42]) {}
+void test({int dynamic}) {}
+void test({int dynamic: 42}) {}
+void test({int dynamic = 42}) {}
+
 void test(int else) {}
+void test([int else]) {}
+void test([int else = 42]) {}
+void test({int else}) {}
+void test({int else: 42}) {}
+void test({int else = 42}) {}
+
 void test(int enum) {}
+void test([int enum]) {}
+void test([int enum = 42]) {}
+void test({int enum}) {}
+void test({int enum: 42}) {}
+void test({int enum = 42}) {}
+
 void test(int export) {}
+void test([int export]) {}
+void test([int export = 42]) {}
+void test({int export}) {}
+void test({int export: 42}) {}
+void test({int export = 42}) {}
+
 void test(int extends) {}
+void test([int extends]) {}
+void test([int extends = 42]) {}
+void test({int extends}) {}
+void test({int extends: 42}) {}
+void test({int extends = 42}) {}
+
 void test(int extension) {}
+void test([int extension]) {}
+void test([int extension = 42]) {}
+void test({int extension}) {}
+void test({int extension: 42}) {}
+void test({int extension = 42}) {}
+
 void test(int external) {}
+void test([int external]) {}
+void test([int external = 42]) {}
+void test({int external}) {}
+void test({int external: 42}) {}
+void test({int external = 42}) {}
+
 void test(int factory) {}
+void test([int factory]) {}
+void test([int factory = 42]) {}
+void test({int factory}) {}
+void test({int factory: 42}) {}
+void test({int factory = 42}) {}
+
 void test(int false) {}
+void test([int false]) {}
+void test([int false = 42]) {}
+void test({int false}) {}
+void test({int false: 42}) {}
+void test({int false = 42}) {}
+
 void test(int final) {}
+void test([int final]) {}
+void test([int final = 42]) {}
+void test({int final}) {}
+void test({int final: 42}) {}
+void test({int final = 42}) {}
+
 void test(int finally) {}
+void test([int finally]) {}
+void test([int finally = 42]) {}
+void test({int finally}) {}
+void test({int finally: 42}) {}
+void test({int finally = 42}) {}
+
 void test(int for) {}
+void test([int for]) {}
+void test([int for = 42]) {}
+void test({int for}) {}
+void test({int for: 42}) {}
+void test({int for = 42}) {}
+
 void test(int Function) {}
+void test([int Function]) {}
+void test([int Function = 42]) {}
+void test({int Function}) {}
+void test({int Function: 42}) {}
+void test({int Function = 42}) {}
+
 void test(int get) {}
+void test([int get]) {}
+void test([int get = 42]) {}
+void test({int get}) {}
+void test({int get: 42}) {}
+void test({int get = 42}) {}
+
 void test(int hide) {}
+void test([int hide]) {}
+void test([int hide = 42]) {}
+void test({int hide}) {}
+void test({int hide: 42}) {}
+void test({int hide = 42}) {}
+
 void test(int if) {}
+void test([int if]) {}
+void test([int if = 42]) {}
+void test({int if}) {}
+void test({int if: 42}) {}
+void test({int if = 42}) {}
+
 void test(int implements) {}
+void test([int implements]) {}
+void test([int implements = 42]) {}
+void test({int implements}) {}
+void test({int implements: 42}) {}
+void test({int implements = 42}) {}
+
 void test(int import) {}
+void test([int import]) {}
+void test([int import = 42]) {}
+void test({int import}) {}
+void test({int import: 42}) {}
+void test({int import = 42}) {}
+
 void test(int in) {}
+void test([int in]) {}
+void test([int in = 42]) {}
+void test({int in}) {}
+void test({int in: 42}) {}
+void test({int in = 42}) {}
+
 void test(int inout) {}
+void test([int inout]) {}
+void test([int inout = 42]) {}
+void test({int inout}) {}
+void test({int inout: 42}) {}
+void test({int inout = 42}) {}
+
 void test(int interface) {}
+void test([int interface]) {}
+void test([int interface = 42]) {}
+void test({int interface}) {}
+void test({int interface: 42}) {}
+void test({int interface = 42}) {}
+
 void test(int is) {}
+void test([int is]) {}
+void test([int is = 42]) {}
+void test({int is}) {}
+void test({int is: 42}) {}
+void test({int is = 42}) {}
+
 void test(int late) {}
+void test([int late]) {}
+void test([int late = 42]) {}
+void test({int late}) {}
+void test({int late: 42}) {}
+void test({int late = 42}) {}
+
 void test(int library) {}
+void test([int library]) {}
+void test([int library = 42]) {}
+void test({int library}) {}
+void test({int library: 42}) {}
+void test({int library = 42}) {}
+
 void test(int mixin) {}
+void test([int mixin]) {}
+void test([int mixin = 42]) {}
+void test({int mixin}) {}
+void test({int mixin: 42}) {}
+void test({int mixin = 42}) {}
+
 void test(int native) {}
+void test([int native]) {}
+void test([int native = 42]) {}
+void test({int native}) {}
+void test({int native: 42}) {}
+void test({int native = 42}) {}
+
 void test(int new) {}
+void test([int new]) {}
+void test([int new = 42]) {}
+void test({int new}) {}
+void test({int new: 42}) {}
+void test({int new = 42}) {}
+
 void test(int null) {}
+void test([int null]) {}
+void test([int null = 42]) {}
+void test({int null}) {}
+void test({int null: 42}) {}
+void test({int null = 42}) {}
+
 void test(int of) {}
+void test([int of]) {}
+void test([int of = 42]) {}
+void test({int of}) {}
+void test({int of: 42}) {}
+void test({int of = 42}) {}
+
 void test(int on) {}
+void test([int on]) {}
+void test([int on = 42]) {}
+void test({int on}) {}
+void test({int on: 42}) {}
+void test({int on = 42}) {}
+
 void test(int operator) {}
+void test([int operator]) {}
+void test([int operator = 42]) {}
+void test({int operator}) {}
+void test({int operator: 42}) {}
+void test({int operator = 42}) {}
+
 void test(int out) {}
+void test([int out]) {}
+void test([int out = 42]) {}
+void test({int out}) {}
+void test({int out: 42}) {}
+void test({int out = 42}) {}
+
 void test(int part) {}
+void test([int part]) {}
+void test([int part = 42]) {}
+void test({int part}) {}
+void test({int part: 42}) {}
+void test({int part = 42}) {}
+
 void test(int patch) {}
+void test([int patch]) {}
+void test([int patch = 42]) {}
+void test({int patch}) {}
+void test({int patch: 42}) {}
+void test({int patch = 42}) {}
+
 void test(int required) {}
+void test([int required]) {}
+void test([int required = 42]) {}
+void test({int required}) {}
+void test({int required: 42}) {}
+void test({int required = 42}) {}
+
 void test(int rethrow) {}
+void test([int rethrow]) {}
+void test([int rethrow = 42]) {}
+void test({int rethrow}) {}
+void test({int rethrow: 42}) {}
+void test({int rethrow = 42}) {}
+
 void test(int return) {}
+void test([int return]) {}
+void test([int return = 42]) {}
+void test({int return}) {}
+void test({int return: 42}) {}
+void test({int return = 42}) {}
+
 void test(int set) {}
+void test([int set]) {}
+void test([int set = 42]) {}
+void test({int set}) {}
+void test({int set: 42}) {}
+void test({int set = 42}) {}
+
 void test(int show) {}
+void test([int show]) {}
+void test([int show = 42]) {}
+void test({int show}) {}
+void test({int show: 42}) {}
+void test({int show = 42}) {}
+
 void test(int source) {}
+void test([int source]) {}
+void test([int source = 42]) {}
+void test({int source}) {}
+void test({int source: 42}) {}
+void test({int source = 42}) {}
+
 void test(int static) {}
+void test([int static]) {}
+void test([int static = 42]) {}
+void test({int static}) {}
+void test({int static: 42}) {}
+void test({int static = 42}) {}
+
 void test(int super) {}
+void test([int super]) {}
+void test([int super = 42]) {}
+void test({int super}) {}
+void test({int super: 42}) {}
+void test({int super = 42}) {}
+
 void test(int switch) {}
+void test([int switch]) {}
+void test([int switch = 42]) {}
+void test({int switch}) {}
+void test({int switch: 42}) {}
+void test({int switch = 42}) {}
+
 void test(int sync) {}
+void test([int sync]) {}
+void test([int sync = 42]) {}
+void test({int sync}) {}
+void test({int sync: 42}) {}
+void test({int sync = 42}) {}
+
 void test(int this) {}
+void test([int this]) {}
+void test([int this = 42]) {}
+void test({int this}) {}
+void test({int this: 42}) {}
+void test({int this = 42}) {}
+
 void test(int throw) {}
+void test([int throw]) {}
+void test([int throw = 42]) {}
+void test({int throw}) {}
+void test({int throw: 42}) {}
+void test({int throw = 42}) {}
+
 void test(int true) {}
+void test([int true]) {}
+void test([int true = 42]) {}
+void test({int true}) {}
+void test({int true: 42}) {}
+void test({int true = 42}) {}
+
 void test(int try) {}
+void test([int try]) {}
+void test([int try = 42]) {}
+void test({int try}) {}
+void test({int try: 42}) {}
+void test({int try = 42}) {}
+
 void test(int typedef) {}
+void test([int typedef]) {}
+void test([int typedef = 42]) {}
+void test({int typedef}) {}
+void test({int typedef: 42}) {}
+void test({int typedef = 42}) {}
+
 void test(int var) {}
+void test([int var]) {}
+void test([int var = 42]) {}
+void test({int var}) {}
+void test({int var: 42}) {}
+void test({int var = 42}) {}
+
 void test(int void) {}
+void test([int void]) {}
+void test([int void = 42]) {}
+void test({int void}) {}
+void test({int void: 42}) {}
+void test({int void = 42}) {}
+
 void test(int while) {}
+void test([int while]) {}
+void test([int while = 42]) {}
+void test({int while}) {}
+void test({int while: 42}) {}
+void test({int while = 42}) {}
+
 void test(int with) {}
+void test([int with]) {}
+void test([int with = 42]) {}
+void test({int with}) {}
+void test({int with: 42}) {}
+void test({int with = 42}) {}
+
 void test(int yield) {}
+void test([int yield]) {}
+void test([int yield = 42]) {}
+void test({int yield}) {}
+void test({int yield: 42}) {}
+void test({int yield = 42}) {}
 
 
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] abstract[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] abstract[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] abstract[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] abstract[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] abstract[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] abstract[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] as[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] as[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] as[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] as[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] as[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] as[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] assert[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] assert[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] assert[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] assert[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] assert[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] assert[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] async[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] async[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] async[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] async[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] async[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] async[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] await[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] await[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] await[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] await[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] await[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] await[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] break[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] break[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] break[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] break[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] break[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] break[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] case[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] case[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] case[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] case[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] case[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] case[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] catch[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] catch[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] catch[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] catch[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] catch[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] catch[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] class[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] class[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] class[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] class[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] class[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] class[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] const[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] const[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] const[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] const[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] const[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] const[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] continue[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] continue[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] continue[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] continue[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] continue[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] continue[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] covariant[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] covariant[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] covariant[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] covariant[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] covariant[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] covariant[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] default[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] default[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] default[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] default[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] default[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] default[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] deferred[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] deferred[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] deferred[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] deferred[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] deferred[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] deferred[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] do[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] do[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] do[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] do[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] do[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] do[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] dynamic[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] dynamic[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] dynamic[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] dynamic[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] dynamic[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] dynamic[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] else[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] else[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] else[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] else[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] else[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] else[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] enum[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] enum[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] enum[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] enum[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] enum[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] enum[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] export[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] export[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] export[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] export[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] export[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] export[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] extends[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extends[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extends[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extends[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extends[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extends[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] extension[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extension[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extension[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extension[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extension[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extension[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] external[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] external[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] external[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] external[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] external[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] external[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] factory[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] factory[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] factory[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] factory[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] factory[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] factory[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] false[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] false[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] false[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] false[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] false[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] false[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] final[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] final[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] final[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] final[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] final[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] final[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] finally[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] finally[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] finally[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finally[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finally[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finally[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] for[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] for[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] for[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] for[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] for[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] for[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] Function[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] Function[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] Function[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] Function[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] Function[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] Function[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] get[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] get[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] get[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] get[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] get[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] get[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] hide[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] hide[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] hide[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] hide[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] hide[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] hide[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] if[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] if[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] if[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] if[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] if[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] if[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] implements[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] implements[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] implements[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] implements[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] implements[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] implements[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] import[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] import[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] import[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] import[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] import[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] import[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] in[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] in[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] in[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] in[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] in[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] in[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] inout[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] inout[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] inout[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inout[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inout[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inout[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] interface[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] interface[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] interface[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] interface[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] interface[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] interface[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] is[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] is[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] is[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] is[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] is[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] is[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] late[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] late[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] late[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] late[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] late[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] late[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] library[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] library[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] library[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] library[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] library[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] library[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] mixin[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] mixin[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] mixin[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] mixin[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] mixin[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] mixin[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] native[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] native[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] native[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] native[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] native[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] native[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] new[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] new[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] new[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] new[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] new[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] new[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] null[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] null[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] null[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] null[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] null[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] null[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] of[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] of[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] of[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] of[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] of[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] of[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] on[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] on[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] on[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] on[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] on[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] on[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] operator[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] operator[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] operator[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] operator[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] operator[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] operator[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] out[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] out[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] out[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] out[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] out[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] out[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] part[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] part[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] part[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] part[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] part[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] part[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] patch[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] patch[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] patch[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] patch[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] patch[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] patch[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] required[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] required[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] required[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] required[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] required[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] required[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] rethrow[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] rethrow[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] rethrow[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] rethrow[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] rethrow[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] rethrow[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] return[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] return[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] return[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] return[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] return[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] return[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] set[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] set[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] set[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] set[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] set[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] set[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] show[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] show[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] show[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] show[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] show[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] show[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] source[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] source[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] source[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] source[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] source[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] source[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] static[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] static[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] static[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] static[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] static[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] static[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] super[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] super[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] super[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] super[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] super[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] super[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] switch[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] switch[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] switch[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] switch[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] switch[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] switch[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] sync[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] sync[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] sync[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] sync[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] sync[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] sync[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] this[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] this[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] this[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] this[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] this[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] this[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] throw[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] throw[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] throw[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] throw[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] throw[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] throw[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] true[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] true[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] true[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] true[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] true[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] true[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] try[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] try[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] try[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] try[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] try[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] try[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] typedef[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] typedef[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] typedef[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] typedef[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] typedef[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] typedef[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] var[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] var[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] var[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] var[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] var[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] var[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] void[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] void[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] void[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] void[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] void[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] void[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] while[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] while[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] while[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] while[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] while[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] while[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] with[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] with[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] with[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] with[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] with[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] with[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
 void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] yield[KeywordToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] yield[KeywordToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] yield[KeywordToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] yield[KeywordToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] yield[KeywordToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] yield[KeywordToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
 [SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.equivalence_info b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.equivalence_info
new file mode 100644
index 0000000..8ecf915
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.equivalence_info
@@ -0,0 +1,7 @@
+files:
+  - keyword_named_formal_parameter.dart
+  - keyword_named_formal_parameter_prime.dart
+filters:
+  - ignoreListenerArguments
+ignored:
+  - handleRecoverableError
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart
new file mode 100644
index 0000000..b179738
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart
@@ -0,0 +1,482 @@
+void test(int abstractX) {}
+void test([int abstractX]) {}
+void test([int abstractX = 42]) {}
+void test({int abstractX}) {}
+void test({int abstractX: 42}) {}
+void test({int abstractX = 42}) {}
+
+void test(int asX) {}
+void test([int asX]) {}
+void test([int asX = 42]) {}
+void test({int asX}) {}
+void test({int asX: 42}) {}
+void test({int asX = 42}) {}
+
+void test(int assertX) {}
+void test([int assertX]) {}
+void test([int assertX = 42]) {}
+void test({int assertX}) {}
+void test({int assertX: 42}) {}
+void test({int assertX = 42}) {}
+
+void test(int asyncX) {}
+void test([int asyncX]) {}
+void test([int asyncX = 42]) {}
+void test({int asyncX}) {}
+void test({int asyncX: 42}) {}
+void test({int asyncX = 42}) {}
+
+void test(int awaitX) {}
+void test([int awaitX]) {}
+void test([int awaitX = 42]) {}
+void test({int awaitX}) {}
+void test({int awaitX: 42}) {}
+void test({int awaitX = 42}) {}
+
+void test(int breakX) {}
+void test([int breakX]) {}
+void test([int breakX = 42]) {}
+void test({int breakX}) {}
+void test({int breakX: 42}) {}
+void test({int breakX = 42}) {}
+
+void test(int caseX) {}
+void test([int caseX]) {}
+void test([int caseX = 42]) {}
+void test({int caseX}) {}
+void test({int caseX: 42}) {}
+void test({int caseX = 42}) {}
+
+void test(int catchX) {}
+void test([int catchX]) {}
+void test([int catchX = 42]) {}
+void test({int catchX}) {}
+void test({int catchX: 42}) {}
+void test({int catchX = 42}) {}
+
+void test(int classX) {}
+void test([int classX]) {}
+void test([int classX = 42]) {}
+void test({int classX}) {}
+void test({int classX: 42}) {}
+void test({int classX = 42}) {}
+
+void test(int constX) {}
+void test([int constX]) {}
+void test([int constX = 42]) {}
+void test({int constX}) {}
+void test({int constX: 42}) {}
+void test({int constX = 42}) {}
+
+void test(int continueX) {}
+void test([int continueX]) {}
+void test([int continueX = 42]) {}
+void test({int continueX}) {}
+void test({int continueX: 42}) {}
+void test({int continueX = 42}) {}
+
+void test(int covariantX) {}
+void test([int covariantX]) {}
+void test([int covariantX = 42]) {}
+void test({int covariantX}) {}
+void test({int covariantX: 42}) {}
+void test({int covariantX = 42}) {}
+
+void test(int defaultX) {}
+void test([int defaultX]) {}
+void test([int defaultX = 42]) {}
+void test({int defaultX}) {}
+void test({int defaultX: 42}) {}
+void test({int defaultX = 42}) {}
+
+void test(int deferredX) {}
+void test([int deferredX]) {}
+void test([int deferredX = 42]) {}
+void test({int deferredX}) {}
+void test({int deferredX: 42}) {}
+void test({int deferredX = 42}) {}
+
+void test(int doX) {}
+void test([int doX]) {}
+void test([int doX = 42]) {}
+void test({int doX}) {}
+void test({int doX: 42}) {}
+void test({int doX = 42}) {}
+
+void test(int dynamicX) {}
+void test([int dynamicX]) {}
+void test([int dynamicX = 42]) {}
+void test({int dynamicX}) {}
+void test({int dynamicX: 42}) {}
+void test({int dynamicX = 42}) {}
+
+void test(int elseX) {}
+void test([int elseX]) {}
+void test([int elseX = 42]) {}
+void test({int elseX}) {}
+void test({int elseX: 42}) {}
+void test({int elseX = 42}) {}
+
+void test(int enumX) {}
+void test([int enumX]) {}
+void test([int enumX = 42]) {}
+void test({int enumX}) {}
+void test({int enumX: 42}) {}
+void test({int enumX = 42}) {}
+
+void test(int exportX) {}
+void test([int exportX]) {}
+void test([int exportX = 42]) {}
+void test({int exportX}) {}
+void test({int exportX: 42}) {}
+void test({int exportX = 42}) {}
+
+void test(int extendsX) {}
+void test([int extendsX]) {}
+void test([int extendsX = 42]) {}
+void test({int extendsX}) {}
+void test({int extendsX: 42}) {}
+void test({int extendsX = 42}) {}
+
+void test(int extensionX) {}
+void test([int extensionX]) {}
+void test([int extensionX = 42]) {}
+void test({int extensionX}) {}
+void test({int extensionX: 42}) {}
+void test({int extensionX = 42}) {}
+
+void test(int externalX) {}
+void test([int externalX]) {}
+void test([int externalX = 42]) {}
+void test({int externalX}) {}
+void test({int externalX: 42}) {}
+void test({int externalX = 42}) {}
+
+void test(int factoryX) {}
+void test([int factoryX]) {}
+void test([int factoryX = 42]) {}
+void test({int factoryX}) {}
+void test({int factoryX: 42}) {}
+void test({int factoryX = 42}) {}
+
+void test(int falseX) {}
+void test([int falseX]) {}
+void test([int falseX = 42]) {}
+void test({int falseX}) {}
+void test({int falseX: 42}) {}
+void test({int falseX = 42}) {}
+
+void test(int finalX) {}
+void test([int finalX]) {}
+void test([int finalX = 42]) {}
+void test({int finalX}) {}
+void test({int finalX: 42}) {}
+void test({int finalX = 42}) {}
+
+void test(int finallyX) {}
+void test([int finallyX]) {}
+void test([int finallyX = 42]) {}
+void test({int finallyX}) {}
+void test({int finallyX: 42}) {}
+void test({int finallyX = 42}) {}
+
+void test(int forX) {}
+void test([int forX]) {}
+void test([int forX = 42]) {}
+void test({int forX}) {}
+void test({int forX: 42}) {}
+void test({int forX = 42}) {}
+
+void test(int FunctionX) {}
+void test([int FunctionX]) {}
+void test([int FunctionX = 42]) {}
+void test({int FunctionX}) {}
+void test({int FunctionX: 42}) {}
+void test({int FunctionX = 42}) {}
+
+void test(int getX) {}
+void test([int getX]) {}
+void test([int getX = 42]) {}
+void test({int getX}) {}
+void test({int getX: 42}) {}
+void test({int getX = 42}) {}
+
+void test(int hideX) {}
+void test([int hideX]) {}
+void test([int hideX = 42]) {}
+void test({int hideX}) {}
+void test({int hideX: 42}) {}
+void test({int hideX = 42}) {}
+
+void test(int ifX) {}
+void test([int ifX]) {}
+void test([int ifX = 42]) {}
+void test({int ifX}) {}
+void test({int ifX: 42}) {}
+void test({int ifX = 42}) {}
+
+void test(int implementsX) {}
+void test([int implementsX]) {}
+void test([int implementsX = 42]) {}
+void test({int implementsX}) {}
+void test({int implementsX: 42}) {}
+void test({int implementsX = 42}) {}
+
+void test(int importX) {}
+void test([int importX]) {}
+void test([int importX = 42]) {}
+void test({int importX}) {}
+void test({int importX: 42}) {}
+void test({int importX = 42}) {}
+
+void test(int inX) {}
+void test([int inX]) {}
+void test([int inX = 42]) {}
+void test({int inX}) {}
+void test({int inX: 42}) {}
+void test({int inX = 42}) {}
+
+void test(int inoutX) {}
+void test([int inoutX]) {}
+void test([int inoutX = 42]) {}
+void test({int inoutX}) {}
+void test({int inoutX: 42}) {}
+void test({int inoutX = 42}) {}
+
+void test(int interfaceX) {}
+void test([int interfaceX]) {}
+void test([int interfaceX = 42]) {}
+void test({int interfaceX}) {}
+void test({int interfaceX: 42}) {}
+void test({int interfaceX = 42}) {}
+
+void test(int isX) {}
+void test([int isX]) {}
+void test([int isX = 42]) {}
+void test({int isX}) {}
+void test({int isX: 42}) {}
+void test({int isX = 42}) {}
+
+void test(int lateX) {}
+void test([int lateX]) {}
+void test([int lateX = 42]) {}
+void test({int lateX}) {}
+void test({int lateX: 42}) {}
+void test({int lateX = 42}) {}
+
+void test(int libraryX) {}
+void test([int libraryX]) {}
+void test([int libraryX = 42]) {}
+void test({int libraryX}) {}
+void test({int libraryX: 42}) {}
+void test({int libraryX = 42}) {}
+
+void test(int mixinX) {}
+void test([int mixinX]) {}
+void test([int mixinX = 42]) {}
+void test({int mixinX}) {}
+void test({int mixinX: 42}) {}
+void test({int mixinX = 42}) {}
+
+void test(int nativeX) {}
+void test([int nativeX]) {}
+void test([int nativeX = 42]) {}
+void test({int nativeX}) {}
+void test({int nativeX: 42}) {}
+void test({int nativeX = 42}) {}
+
+void test(int newX) {}
+void test([int newX]) {}
+void test([int newX = 42]) {}
+void test({int newX}) {}
+void test({int newX: 42}) {}
+void test({int newX = 42}) {}
+
+void test(int nullX) {}
+void test([int nullX]) {}
+void test([int nullX = 42]) {}
+void test({int nullX}) {}
+void test({int nullX: 42}) {}
+void test({int nullX = 42}) {}
+
+void test(int ofX) {}
+void test([int ofX]) {}
+void test([int ofX = 42]) {}
+void test({int ofX}) {}
+void test({int ofX: 42}) {}
+void test({int ofX = 42}) {}
+
+void test(int onX) {}
+void test([int onX]) {}
+void test([int onX = 42]) {}
+void test({int onX}) {}
+void test({int onX: 42}) {}
+void test({int onX = 42}) {}
+
+void test(int operatorX) {}
+void test([int operatorX]) {}
+void test([int operatorX = 42]) {}
+void test({int operatorX}) {}
+void test({int operatorX: 42}) {}
+void test({int operatorX = 42}) {}
+
+void test(int outX) {}
+void test([int outX]) {}
+void test([int outX = 42]) {}
+void test({int outX}) {}
+void test({int outX: 42}) {}
+void test({int outX = 42}) {}
+
+void test(int partX) {}
+void test([int partX]) {}
+void test([int partX = 42]) {}
+void test({int partX}) {}
+void test({int partX: 42}) {}
+void test({int partX = 42}) {}
+
+void test(int patchX) {}
+void test([int patchX]) {}
+void test([int patchX = 42]) {}
+void test({int patchX}) {}
+void test({int patchX: 42}) {}
+void test({int patchX = 42}) {}
+
+void test(int requiredX) {}
+void test([int requiredX]) {}
+void test([int requiredX = 42]) {}
+void test({int requiredX}) {}
+void test({int requiredX: 42}) {}
+void test({int requiredX = 42}) {}
+
+void test(int rethrowX) {}
+void test([int rethrowX]) {}
+void test([int rethrowX = 42]) {}
+void test({int rethrowX}) {}
+void test({int rethrowX: 42}) {}
+void test({int rethrowX = 42}) {}
+
+void test(int returnX) {}
+void test([int returnX]) {}
+void test([int returnX = 42]) {}
+void test({int returnX}) {}
+void test({int returnX: 42}) {}
+void test({int returnX = 42}) {}
+
+void test(int setX) {}
+void test([int setX]) {}
+void test([int setX = 42]) {}
+void test({int setX}) {}
+void test({int setX: 42}) {}
+void test({int setX = 42}) {}
+
+void test(int showX) {}
+void test([int showX]) {}
+void test([int showX = 42]) {}
+void test({int showX}) {}
+void test({int showX: 42}) {}
+void test({int showX = 42}) {}
+
+void test(int sourceX) {}
+void test([int sourceX]) {}
+void test([int sourceX = 42]) {}
+void test({int sourceX}) {}
+void test({int sourceX: 42}) {}
+void test({int sourceX = 42}) {}
+
+void test(int staticX) {}
+void test([int staticX]) {}
+void test([int staticX = 42]) {}
+void test({int staticX}) {}
+void test({int staticX: 42}) {}
+void test({int staticX = 42}) {}
+
+void test(int superX) {}
+void test([int superX]) {}
+void test([int superX = 42]) {}
+void test({int superX}) {}
+void test({int superX: 42}) {}
+void test({int superX = 42}) {}
+
+void test(int switchX) {}
+void test([int switchX]) {}
+void test([int switchX = 42]) {}
+void test({int switchX}) {}
+void test({int switchX: 42}) {}
+void test({int switchX = 42}) {}
+
+void test(int syncX) {}
+void test([int syncX]) {}
+void test([int syncX = 42]) {}
+void test({int syncX}) {}
+void test({int syncX: 42}) {}
+void test({int syncX = 42}) {}
+
+void test(int thisX) {}
+void test([int thisX]) {}
+void test([int thisX = 42]) {}
+void test({int thisX}) {}
+void test({int thisX: 42}) {}
+void test({int thisX = 42}) {}
+
+void test(int throwX) {}
+void test([int throwX]) {}
+void test([int throwX = 42]) {}
+void test({int throwX}) {}
+void test({int throwX: 42}) {}
+void test({int throwX = 42}) {}
+
+void test(int trueX) {}
+void test([int trueX]) {}
+void test([int trueX = 42]) {}
+void test({int trueX}) {}
+void test({int trueX: 42}) {}
+void test({int trueX = 42}) {}
+
+void test(int tryX) {}
+void test([int tryX]) {}
+void test([int tryX = 42]) {}
+void test({int tryX}) {}
+void test({int tryX: 42}) {}
+void test({int tryX = 42}) {}
+
+void test(int typedefX) {}
+void test([int typedefX]) {}
+void test([int typedefX = 42]) {}
+void test({int typedefX}) {}
+void test({int typedefX: 42}) {}
+void test({int typedefX = 42}) {}
+
+void test(int varX) {}
+void test([int varX]) {}
+void test([int varX = 42]) {}
+void test({int varX}) {}
+void test({int varX: 42}) {}
+void test({int varX = 42}) {}
+
+void test(int voidX) {}
+void test([int voidX]) {}
+void test([int voidX = 42]) {}
+void test({int voidX}) {}
+void test({int voidX: 42}) {}
+void test({int voidX = 42}) {}
+
+void test(int whileX) {}
+void test([int whileX]) {}
+void test([int whileX = 42]) {}
+void test({int whileX}) {}
+void test({int whileX: 42}) {}
+void test({int whileX = 42}) {}
+
+void test(int withX) {}
+void test([int withX]) {}
+void test([int withX = 42]) {}
+void test({int withX}) {}
+void test({int withX: 42}) {}
+void test({int withX = 42}) {}
+
+void test(int yieldX) {}
+void test([int yieldX]) {}
+void test([int yieldX = 42]) {}
+void test({int yieldX}) {}
+void test({int yieldX: 42}) {}
+void test({int yieldX = 42}) {}
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.expect
new file mode 100644
index 0000000..4f09074
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.expect
@@ -0,0 +1,10835 @@
+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(abstractX)
+          handleType(int, null)
+          handleIdentifier(abstractX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, abstractX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(abstractX)
+            handleType(int, null)
+            handleIdentifier(abstractX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, abstractX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(abstractX)
+            handleType(int, null)
+            handleIdentifier(abstractX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, abstractX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(abstractX)
+            handleType(int, null)
+            handleIdentifier(abstractX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, abstractX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(abstractX)
+            handleType(int, null)
+            handleIdentifier(abstractX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, abstractX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(abstractX)
+            handleType(int, null)
+            handleIdentifier(abstractX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, abstractX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(asX)
+          handleType(int, null)
+          handleIdentifier(asX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, asX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(asX)
+            handleType(int, null)
+            handleIdentifier(asX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, asX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(asX)
+            handleType(int, null)
+            handleIdentifier(asX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, asX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(asX)
+            handleType(int, null)
+            handleIdentifier(asX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, asX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(asX)
+            handleType(int, null)
+            handleIdentifier(asX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, asX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(asX)
+            handleType(int, null)
+            handleIdentifier(asX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, asX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(assertX)
+          handleType(int, null)
+          handleIdentifier(assertX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, assertX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(assertX)
+            handleType(int, null)
+            handleIdentifier(assertX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, assertX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(assertX)
+            handleType(int, null)
+            handleIdentifier(assertX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, assertX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(assertX)
+            handleType(int, null)
+            handleIdentifier(assertX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, assertX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(assertX)
+            handleType(int, null)
+            handleIdentifier(assertX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, assertX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(assertX)
+            handleType(int, null)
+            handleIdentifier(assertX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, assertX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(asyncX)
+          handleType(int, null)
+          handleIdentifier(asyncX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, asyncX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(asyncX)
+            handleType(int, null)
+            handleIdentifier(asyncX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, asyncX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(asyncX)
+            handleType(int, null)
+            handleIdentifier(asyncX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, asyncX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(asyncX)
+            handleType(int, null)
+            handleIdentifier(asyncX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, asyncX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(asyncX)
+            handleType(int, null)
+            handleIdentifier(asyncX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, asyncX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(asyncX)
+            handleType(int, null)
+            handleIdentifier(asyncX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, asyncX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(awaitX)
+          handleType(int, null)
+          handleIdentifier(awaitX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, awaitX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(awaitX)
+            handleType(int, null)
+            handleIdentifier(awaitX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, awaitX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(awaitX)
+            handleType(int, null)
+            handleIdentifier(awaitX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, awaitX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(awaitX)
+            handleType(int, null)
+            handleIdentifier(awaitX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, awaitX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(awaitX)
+            handleType(int, null)
+            handleIdentifier(awaitX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, awaitX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(awaitX)
+            handleType(int, null)
+            handleIdentifier(awaitX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, awaitX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(breakX)
+          handleType(int, null)
+          handleIdentifier(breakX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, breakX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(breakX)
+            handleType(int, null)
+            handleIdentifier(breakX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, breakX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(breakX)
+            handleType(int, null)
+            handleIdentifier(breakX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, breakX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(breakX)
+            handleType(int, null)
+            handleIdentifier(breakX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, breakX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(breakX)
+            handleType(int, null)
+            handleIdentifier(breakX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, breakX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(breakX)
+            handleType(int, null)
+            handleIdentifier(breakX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, breakX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(caseX)
+          handleType(int, null)
+          handleIdentifier(caseX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, caseX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(caseX)
+            handleType(int, null)
+            handleIdentifier(caseX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, caseX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(caseX)
+            handleType(int, null)
+            handleIdentifier(caseX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, caseX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(caseX)
+            handleType(int, null)
+            handleIdentifier(caseX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, caseX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(caseX)
+            handleType(int, null)
+            handleIdentifier(caseX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, caseX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(caseX)
+            handleType(int, null)
+            handleIdentifier(caseX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, caseX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(catchX)
+          handleType(int, null)
+          handleIdentifier(catchX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, catchX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(catchX)
+            handleType(int, null)
+            handleIdentifier(catchX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, catchX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(catchX)
+            handleType(int, null)
+            handleIdentifier(catchX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, catchX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(catchX)
+            handleType(int, null)
+            handleIdentifier(catchX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, catchX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(catchX)
+            handleType(int, null)
+            handleIdentifier(catchX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, catchX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(catchX)
+            handleType(int, null)
+            handleIdentifier(catchX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, catchX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(classX)
+          handleType(int, null)
+          handleIdentifier(classX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, classX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(classX)
+            handleType(int, null)
+            handleIdentifier(classX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, classX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(classX)
+            handleType(int, null)
+            handleIdentifier(classX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, classX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(classX)
+            handleType(int, null)
+            handleIdentifier(classX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, classX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(classX)
+            handleType(int, null)
+            handleIdentifier(classX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, classX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(classX)
+            handleType(int, null)
+            handleIdentifier(classX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, classX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(constX)
+          handleType(int, null)
+          handleIdentifier(constX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, constX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(constX)
+            handleType(int, null)
+            handleIdentifier(constX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, constX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(constX)
+            handleType(int, null)
+            handleIdentifier(constX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, constX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(constX)
+            handleType(int, null)
+            handleIdentifier(constX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, constX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(constX)
+            handleType(int, null)
+            handleIdentifier(constX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, constX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(constX)
+            handleType(int, null)
+            handleIdentifier(constX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, constX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(continueX)
+          handleType(int, null)
+          handleIdentifier(continueX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, continueX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(continueX)
+            handleType(int, null)
+            handleIdentifier(continueX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, continueX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(continueX)
+            handleType(int, null)
+            handleIdentifier(continueX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, continueX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(continueX)
+            handleType(int, null)
+            handleIdentifier(continueX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, continueX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(continueX)
+            handleType(int, null)
+            handleIdentifier(continueX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, continueX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(continueX)
+            handleType(int, null)
+            handleIdentifier(continueX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, continueX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(covariantX)
+          handleType(int, null)
+          handleIdentifier(covariantX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, covariantX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(covariantX)
+            handleType(int, null)
+            handleIdentifier(covariantX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, covariantX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(covariantX)
+            handleType(int, null)
+            handleIdentifier(covariantX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, covariantX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(covariantX)
+            handleType(int, null)
+            handleIdentifier(covariantX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, covariantX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(covariantX)
+            handleType(int, null)
+            handleIdentifier(covariantX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, covariantX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(covariantX)
+            handleType(int, null)
+            handleIdentifier(covariantX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, covariantX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(defaultX)
+          handleType(int, null)
+          handleIdentifier(defaultX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, defaultX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(defaultX)
+            handleType(int, null)
+            handleIdentifier(defaultX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, defaultX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(defaultX)
+            handleType(int, null)
+            handleIdentifier(defaultX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, defaultX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(defaultX)
+            handleType(int, null)
+            handleIdentifier(defaultX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, defaultX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(defaultX)
+            handleType(int, null)
+            handleIdentifier(defaultX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, defaultX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(defaultX)
+            handleType(int, null)
+            handleIdentifier(defaultX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, defaultX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(deferredX)
+          handleType(int, null)
+          handleIdentifier(deferredX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, deferredX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(deferredX)
+            handleType(int, null)
+            handleIdentifier(deferredX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, deferredX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(deferredX)
+            handleType(int, null)
+            handleIdentifier(deferredX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, deferredX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(deferredX)
+            handleType(int, null)
+            handleIdentifier(deferredX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, deferredX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(deferredX)
+            handleType(int, null)
+            handleIdentifier(deferredX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, deferredX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(deferredX)
+            handleType(int, null)
+            handleIdentifier(deferredX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, deferredX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(doX)
+          handleType(int, null)
+          handleIdentifier(doX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, doX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(doX)
+            handleType(int, null)
+            handleIdentifier(doX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, doX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(doX)
+            handleType(int, null)
+            handleIdentifier(doX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, doX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(doX)
+            handleType(int, null)
+            handleIdentifier(doX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, doX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(doX)
+            handleType(int, null)
+            handleIdentifier(doX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, doX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(doX)
+            handleType(int, null)
+            handleIdentifier(doX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, doX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(dynamicX)
+          handleType(int, null)
+          handleIdentifier(dynamicX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, dynamicX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(dynamicX)
+            handleType(int, null)
+            handleIdentifier(dynamicX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, dynamicX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(dynamicX)
+            handleType(int, null)
+            handleIdentifier(dynamicX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, dynamicX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(dynamicX)
+            handleType(int, null)
+            handleIdentifier(dynamicX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, dynamicX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(dynamicX)
+            handleType(int, null)
+            handleIdentifier(dynamicX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, dynamicX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(dynamicX)
+            handleType(int, null)
+            handleIdentifier(dynamicX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, dynamicX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(elseX)
+          handleType(int, null)
+          handleIdentifier(elseX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, elseX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(elseX)
+            handleType(int, null)
+            handleIdentifier(elseX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, elseX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(elseX)
+            handleType(int, null)
+            handleIdentifier(elseX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, elseX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(elseX)
+            handleType(int, null)
+            handleIdentifier(elseX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, elseX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(elseX)
+            handleType(int, null)
+            handleIdentifier(elseX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, elseX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(elseX)
+            handleType(int, null)
+            handleIdentifier(elseX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, elseX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(enumX)
+          handleType(int, null)
+          handleIdentifier(enumX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, enumX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(enumX)
+            handleType(int, null)
+            handleIdentifier(enumX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, enumX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(enumX)
+            handleType(int, null)
+            handleIdentifier(enumX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, enumX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(enumX)
+            handleType(int, null)
+            handleIdentifier(enumX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, enumX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(enumX)
+            handleType(int, null)
+            handleIdentifier(enumX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, enumX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(enumX)
+            handleType(int, null)
+            handleIdentifier(enumX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, enumX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(exportX)
+          handleType(int, null)
+          handleIdentifier(exportX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, exportX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(exportX)
+            handleType(int, null)
+            handleIdentifier(exportX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, exportX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(exportX)
+            handleType(int, null)
+            handleIdentifier(exportX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, exportX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(exportX)
+            handleType(int, null)
+            handleIdentifier(exportX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, exportX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(exportX)
+            handleType(int, null)
+            handleIdentifier(exportX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, exportX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(exportX)
+            handleType(int, null)
+            handleIdentifier(exportX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, exportX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(extendsX)
+          handleType(int, null)
+          handleIdentifier(extendsX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, extendsX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extendsX)
+            handleType(int, null)
+            handleIdentifier(extendsX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, extendsX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extendsX)
+            handleType(int, null)
+            handleIdentifier(extendsX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, extendsX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extendsX)
+            handleType(int, null)
+            handleIdentifier(extendsX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, extendsX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extendsX)
+            handleType(int, null)
+            handleIdentifier(extendsX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, extendsX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extendsX)
+            handleType(int, null)
+            handleIdentifier(extendsX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, extendsX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(extensionX)
+          handleType(int, null)
+          handleIdentifier(extensionX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, extensionX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extensionX)
+            handleType(int, null)
+            handleIdentifier(extensionX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, extensionX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extensionX)
+            handleType(int, null)
+            handleIdentifier(extensionX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, extensionX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extensionX)
+            handleType(int, null)
+            handleIdentifier(extensionX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, extensionX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extensionX)
+            handleType(int, null)
+            handleIdentifier(extensionX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, extensionX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extensionX)
+            handleType(int, null)
+            handleIdentifier(extensionX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, extensionX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(externalX)
+          handleType(int, null)
+          handleIdentifier(externalX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, externalX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(externalX)
+            handleType(int, null)
+            handleIdentifier(externalX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, externalX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(externalX)
+            handleType(int, null)
+            handleIdentifier(externalX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, externalX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(externalX)
+            handleType(int, null)
+            handleIdentifier(externalX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, externalX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(externalX)
+            handleType(int, null)
+            handleIdentifier(externalX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, externalX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(externalX)
+            handleType(int, null)
+            handleIdentifier(externalX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, externalX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(factoryX)
+          handleType(int, null)
+          handleIdentifier(factoryX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, factoryX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(factoryX)
+            handleType(int, null)
+            handleIdentifier(factoryX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, factoryX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(factoryX)
+            handleType(int, null)
+            handleIdentifier(factoryX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, factoryX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(factoryX)
+            handleType(int, null)
+            handleIdentifier(factoryX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, factoryX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(factoryX)
+            handleType(int, null)
+            handleIdentifier(factoryX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, factoryX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(factoryX)
+            handleType(int, null)
+            handleIdentifier(factoryX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, factoryX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(falseX)
+          handleType(int, null)
+          handleIdentifier(falseX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, falseX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(falseX)
+            handleType(int, null)
+            handleIdentifier(falseX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, falseX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(falseX)
+            handleType(int, null)
+            handleIdentifier(falseX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, falseX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(falseX)
+            handleType(int, null)
+            handleIdentifier(falseX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, falseX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(falseX)
+            handleType(int, null)
+            handleIdentifier(falseX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, falseX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(falseX)
+            handleType(int, null)
+            handleIdentifier(falseX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, falseX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(finalX)
+          handleType(int, null)
+          handleIdentifier(finalX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, finalX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finalX)
+            handleType(int, null)
+            handleIdentifier(finalX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, finalX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finalX)
+            handleType(int, null)
+            handleIdentifier(finalX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, finalX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finalX)
+            handleType(int, null)
+            handleIdentifier(finalX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, finalX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finalX)
+            handleType(int, null)
+            handleIdentifier(finalX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, finalX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finalX)
+            handleType(int, null)
+            handleIdentifier(finalX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, finalX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(finallyX)
+          handleType(int, null)
+          handleIdentifier(finallyX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, finallyX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finallyX)
+            handleType(int, null)
+            handleIdentifier(finallyX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, finallyX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finallyX)
+            handleType(int, null)
+            handleIdentifier(finallyX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, finallyX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finallyX)
+            handleType(int, null)
+            handleIdentifier(finallyX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, finallyX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finallyX)
+            handleType(int, null)
+            handleIdentifier(finallyX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, finallyX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finallyX)
+            handleType(int, null)
+            handleIdentifier(finallyX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, finallyX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(forX)
+          handleType(int, null)
+          handleIdentifier(forX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, forX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(forX)
+            handleType(int, null)
+            handleIdentifier(forX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, forX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(forX)
+            handleType(int, null)
+            handleIdentifier(forX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, forX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(forX)
+            handleType(int, null)
+            handleIdentifier(forX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, forX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(forX)
+            handleType(int, null)
+            handleIdentifier(forX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, forX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(forX)
+            handleType(int, null)
+            handleIdentifier(forX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, forX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(FunctionX)
+          handleType(int, null)
+          handleIdentifier(FunctionX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, FunctionX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(FunctionX)
+            handleType(int, null)
+            handleIdentifier(FunctionX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, FunctionX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(FunctionX)
+            handleType(int, null)
+            handleIdentifier(FunctionX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, FunctionX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(FunctionX)
+            handleType(int, null)
+            handleIdentifier(FunctionX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, FunctionX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(FunctionX)
+            handleType(int, null)
+            handleIdentifier(FunctionX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, FunctionX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(FunctionX)
+            handleType(int, null)
+            handleIdentifier(FunctionX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, FunctionX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(getX)
+          handleType(int, null)
+          handleIdentifier(getX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, getX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(getX)
+            handleType(int, null)
+            handleIdentifier(getX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, getX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(getX)
+            handleType(int, null)
+            handleIdentifier(getX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, getX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(getX)
+            handleType(int, null)
+            handleIdentifier(getX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, getX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(getX)
+            handleType(int, null)
+            handleIdentifier(getX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, getX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(getX)
+            handleType(int, null)
+            handleIdentifier(getX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, getX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(hideX)
+          handleType(int, null)
+          handleIdentifier(hideX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, hideX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(hideX)
+            handleType(int, null)
+            handleIdentifier(hideX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, hideX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(hideX)
+            handleType(int, null)
+            handleIdentifier(hideX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, hideX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(hideX)
+            handleType(int, null)
+            handleIdentifier(hideX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, hideX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(hideX)
+            handleType(int, null)
+            handleIdentifier(hideX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, hideX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(hideX)
+            handleType(int, null)
+            handleIdentifier(hideX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, hideX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(ifX)
+          handleType(int, null)
+          handleIdentifier(ifX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, ifX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(ifX)
+            handleType(int, null)
+            handleIdentifier(ifX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, ifX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(ifX)
+            handleType(int, null)
+            handleIdentifier(ifX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, ifX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(ifX)
+            handleType(int, null)
+            handleIdentifier(ifX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, ifX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(ifX)
+            handleType(int, null)
+            handleIdentifier(ifX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, ifX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(ifX)
+            handleType(int, null)
+            handleIdentifier(ifX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, ifX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(implementsX)
+          handleType(int, null)
+          handleIdentifier(implementsX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, implementsX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(implementsX)
+            handleType(int, null)
+            handleIdentifier(implementsX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, implementsX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(implementsX)
+            handleType(int, null)
+            handleIdentifier(implementsX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, implementsX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(implementsX)
+            handleType(int, null)
+            handleIdentifier(implementsX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, implementsX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(implementsX)
+            handleType(int, null)
+            handleIdentifier(implementsX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, implementsX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(implementsX)
+            handleType(int, null)
+            handleIdentifier(implementsX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, implementsX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(importX)
+          handleType(int, null)
+          handleIdentifier(importX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, importX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(importX)
+            handleType(int, null)
+            handleIdentifier(importX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, importX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(importX)
+            handleType(int, null)
+            handleIdentifier(importX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, importX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(importX)
+            handleType(int, null)
+            handleIdentifier(importX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, importX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(importX)
+            handleType(int, null)
+            handleIdentifier(importX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, importX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(importX)
+            handleType(int, null)
+            handleIdentifier(importX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, importX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(inX)
+          handleType(int, null)
+          handleIdentifier(inX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, inX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inX)
+            handleType(int, null)
+            handleIdentifier(inX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, inX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inX)
+            handleType(int, null)
+            handleIdentifier(inX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, inX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inX)
+            handleType(int, null)
+            handleIdentifier(inX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, inX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inX)
+            handleType(int, null)
+            handleIdentifier(inX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, inX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inX)
+            handleType(int, null)
+            handleIdentifier(inX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, inX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(inoutX)
+          handleType(int, null)
+          handleIdentifier(inoutX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, inoutX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inoutX)
+            handleType(int, null)
+            handleIdentifier(inoutX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, inoutX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inoutX)
+            handleType(int, null)
+            handleIdentifier(inoutX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, inoutX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inoutX)
+            handleType(int, null)
+            handleIdentifier(inoutX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, inoutX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inoutX)
+            handleType(int, null)
+            handleIdentifier(inoutX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, inoutX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inoutX)
+            handleType(int, null)
+            handleIdentifier(inoutX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, inoutX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(interfaceX)
+          handleType(int, null)
+          handleIdentifier(interfaceX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, interfaceX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(interfaceX)
+            handleType(int, null)
+            handleIdentifier(interfaceX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, interfaceX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(interfaceX)
+            handleType(int, null)
+            handleIdentifier(interfaceX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, interfaceX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(interfaceX)
+            handleType(int, null)
+            handleIdentifier(interfaceX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, interfaceX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(interfaceX)
+            handleType(int, null)
+            handleIdentifier(interfaceX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, interfaceX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(interfaceX)
+            handleType(int, null)
+            handleIdentifier(interfaceX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, interfaceX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(isX)
+          handleType(int, null)
+          handleIdentifier(isX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, isX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(isX)
+            handleType(int, null)
+            handleIdentifier(isX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, isX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(isX)
+            handleType(int, null)
+            handleIdentifier(isX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, isX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(isX)
+            handleType(int, null)
+            handleIdentifier(isX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, isX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(isX)
+            handleType(int, null)
+            handleIdentifier(isX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, isX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(isX)
+            handleType(int, null)
+            handleIdentifier(isX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, isX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(lateX)
+          handleType(int, null)
+          handleIdentifier(lateX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, lateX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(lateX)
+            handleType(int, null)
+            handleIdentifier(lateX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, lateX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(lateX)
+            handleType(int, null)
+            handleIdentifier(lateX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, lateX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(lateX)
+            handleType(int, null)
+            handleIdentifier(lateX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, lateX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(lateX)
+            handleType(int, null)
+            handleIdentifier(lateX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, lateX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(lateX)
+            handleType(int, null)
+            handleIdentifier(lateX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, lateX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(libraryX)
+          handleType(int, null)
+          handleIdentifier(libraryX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, libraryX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(libraryX)
+            handleType(int, null)
+            handleIdentifier(libraryX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, libraryX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(libraryX)
+            handleType(int, null)
+            handleIdentifier(libraryX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, libraryX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(libraryX)
+            handleType(int, null)
+            handleIdentifier(libraryX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, libraryX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(libraryX)
+            handleType(int, null)
+            handleIdentifier(libraryX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, libraryX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(libraryX)
+            handleType(int, null)
+            handleIdentifier(libraryX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, libraryX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(mixinX)
+          handleType(int, null)
+          handleIdentifier(mixinX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, mixinX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(mixinX)
+            handleType(int, null)
+            handleIdentifier(mixinX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, mixinX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(mixinX)
+            handleType(int, null)
+            handleIdentifier(mixinX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, mixinX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(mixinX)
+            handleType(int, null)
+            handleIdentifier(mixinX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, mixinX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(mixinX)
+            handleType(int, null)
+            handleIdentifier(mixinX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, mixinX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(mixinX)
+            handleType(int, null)
+            handleIdentifier(mixinX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, mixinX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(nativeX)
+          handleType(int, null)
+          handleIdentifier(nativeX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, nativeX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(nativeX)
+            handleType(int, null)
+            handleIdentifier(nativeX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, nativeX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(nativeX)
+            handleType(int, null)
+            handleIdentifier(nativeX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, nativeX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(nativeX)
+            handleType(int, null)
+            handleIdentifier(nativeX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, nativeX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(nativeX)
+            handleType(int, null)
+            handleIdentifier(nativeX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, nativeX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(nativeX)
+            handleType(int, null)
+            handleIdentifier(nativeX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, nativeX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(newX)
+          handleType(int, null)
+          handleIdentifier(newX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, newX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(newX)
+            handleType(int, null)
+            handleIdentifier(newX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, newX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(newX)
+            handleType(int, null)
+            handleIdentifier(newX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, newX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(newX)
+            handleType(int, null)
+            handleIdentifier(newX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, newX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(newX)
+            handleType(int, null)
+            handleIdentifier(newX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, newX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(newX)
+            handleType(int, null)
+            handleIdentifier(newX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, newX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(nullX)
+          handleType(int, null)
+          handleIdentifier(nullX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, nullX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(nullX)
+            handleType(int, null)
+            handleIdentifier(nullX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, nullX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(nullX)
+            handleType(int, null)
+            handleIdentifier(nullX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, nullX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(nullX)
+            handleType(int, null)
+            handleIdentifier(nullX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, nullX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(nullX)
+            handleType(int, null)
+            handleIdentifier(nullX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, nullX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(nullX)
+            handleType(int, null)
+            handleIdentifier(nullX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, nullX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(ofX)
+          handleType(int, null)
+          handleIdentifier(ofX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, ofX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(ofX)
+            handleType(int, null)
+            handleIdentifier(ofX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, ofX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(ofX)
+            handleType(int, null)
+            handleIdentifier(ofX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, ofX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(ofX)
+            handleType(int, null)
+            handleIdentifier(ofX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, ofX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(ofX)
+            handleType(int, null)
+            handleIdentifier(ofX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, ofX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(ofX)
+            handleType(int, null)
+            handleIdentifier(ofX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, ofX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(onX)
+          handleType(int, null)
+          handleIdentifier(onX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, onX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(onX)
+            handleType(int, null)
+            handleIdentifier(onX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, onX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(onX)
+            handleType(int, null)
+            handleIdentifier(onX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, onX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(onX)
+            handleType(int, null)
+            handleIdentifier(onX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, onX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(onX)
+            handleType(int, null)
+            handleIdentifier(onX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, onX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(onX)
+            handleType(int, null)
+            handleIdentifier(onX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, onX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(operatorX)
+          handleType(int, null)
+          handleIdentifier(operatorX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, operatorX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(operatorX)
+            handleType(int, null)
+            handleIdentifier(operatorX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, operatorX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(operatorX)
+            handleType(int, null)
+            handleIdentifier(operatorX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, operatorX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(operatorX)
+            handleType(int, null)
+            handleIdentifier(operatorX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, operatorX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(operatorX)
+            handleType(int, null)
+            handleIdentifier(operatorX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, operatorX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(operatorX)
+            handleType(int, null)
+            handleIdentifier(operatorX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, operatorX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(outX)
+          handleType(int, null)
+          handleIdentifier(outX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, outX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(outX)
+            handleType(int, null)
+            handleIdentifier(outX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, outX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(outX)
+            handleType(int, null)
+            handleIdentifier(outX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, outX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(outX)
+            handleType(int, null)
+            handleIdentifier(outX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, outX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(outX)
+            handleType(int, null)
+            handleIdentifier(outX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, outX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(outX)
+            handleType(int, null)
+            handleIdentifier(outX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, outX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(partX)
+          handleType(int, null)
+          handleIdentifier(partX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, partX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(partX)
+            handleType(int, null)
+            handleIdentifier(partX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, partX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(partX)
+            handleType(int, null)
+            handleIdentifier(partX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, partX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(partX)
+            handleType(int, null)
+            handleIdentifier(partX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, partX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(partX)
+            handleType(int, null)
+            handleIdentifier(partX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, partX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(partX)
+            handleType(int, null)
+            handleIdentifier(partX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, partX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(patchX)
+          handleType(int, null)
+          handleIdentifier(patchX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, patchX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(patchX)
+            handleType(int, null)
+            handleIdentifier(patchX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, patchX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(patchX)
+            handleType(int, null)
+            handleIdentifier(patchX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, patchX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(patchX)
+            handleType(int, null)
+            handleIdentifier(patchX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, patchX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(patchX)
+            handleType(int, null)
+            handleIdentifier(patchX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, patchX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(patchX)
+            handleType(int, null)
+            handleIdentifier(patchX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, patchX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(requiredX)
+          handleType(int, null)
+          handleIdentifier(requiredX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, requiredX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(requiredX)
+            handleType(int, null)
+            handleIdentifier(requiredX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, requiredX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(requiredX)
+            handleType(int, null)
+            handleIdentifier(requiredX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, requiredX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(requiredX)
+            handleType(int, null)
+            handleIdentifier(requiredX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, requiredX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(requiredX)
+            handleType(int, null)
+            handleIdentifier(requiredX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, requiredX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(requiredX)
+            handleType(int, null)
+            handleIdentifier(requiredX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, requiredX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(rethrowX)
+          handleType(int, null)
+          handleIdentifier(rethrowX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, rethrowX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(rethrowX)
+            handleType(int, null)
+            handleIdentifier(rethrowX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, rethrowX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(rethrowX)
+            handleType(int, null)
+            handleIdentifier(rethrowX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, rethrowX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(rethrowX)
+            handleType(int, null)
+            handleIdentifier(rethrowX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, rethrowX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(rethrowX)
+            handleType(int, null)
+            handleIdentifier(rethrowX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, rethrowX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(rethrowX)
+            handleType(int, null)
+            handleIdentifier(rethrowX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, rethrowX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(returnX)
+          handleType(int, null)
+          handleIdentifier(returnX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, returnX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(returnX)
+            handleType(int, null)
+            handleIdentifier(returnX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, returnX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(returnX)
+            handleType(int, null)
+            handleIdentifier(returnX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, returnX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(returnX)
+            handleType(int, null)
+            handleIdentifier(returnX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, returnX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(returnX)
+            handleType(int, null)
+            handleIdentifier(returnX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, returnX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(returnX)
+            handleType(int, null)
+            handleIdentifier(returnX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, returnX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(setX)
+          handleType(int, null)
+          handleIdentifier(setX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, setX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(setX)
+            handleType(int, null)
+            handleIdentifier(setX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, setX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(setX)
+            handleType(int, null)
+            handleIdentifier(setX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, setX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(setX)
+            handleType(int, null)
+            handleIdentifier(setX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, setX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(setX)
+            handleType(int, null)
+            handleIdentifier(setX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, setX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(setX)
+            handleType(int, null)
+            handleIdentifier(setX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, setX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(showX)
+          handleType(int, null)
+          handleIdentifier(showX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, showX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(showX)
+            handleType(int, null)
+            handleIdentifier(showX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, showX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(showX)
+            handleType(int, null)
+            handleIdentifier(showX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, showX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(showX)
+            handleType(int, null)
+            handleIdentifier(showX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, showX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(showX)
+            handleType(int, null)
+            handleIdentifier(showX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, showX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(showX)
+            handleType(int, null)
+            handleIdentifier(showX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, showX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(sourceX)
+          handleType(int, null)
+          handleIdentifier(sourceX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, sourceX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(sourceX)
+            handleType(int, null)
+            handleIdentifier(sourceX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, sourceX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(sourceX)
+            handleType(int, null)
+            handleIdentifier(sourceX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, sourceX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(sourceX)
+            handleType(int, null)
+            handleIdentifier(sourceX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, sourceX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(sourceX)
+            handleType(int, null)
+            handleIdentifier(sourceX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, sourceX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(sourceX)
+            handleType(int, null)
+            handleIdentifier(sourceX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, sourceX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(staticX)
+          handleType(int, null)
+          handleIdentifier(staticX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, staticX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(staticX)
+            handleType(int, null)
+            handleIdentifier(staticX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, staticX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(staticX)
+            handleType(int, null)
+            handleIdentifier(staticX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, staticX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(staticX)
+            handleType(int, null)
+            handleIdentifier(staticX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, staticX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(staticX)
+            handleType(int, null)
+            handleIdentifier(staticX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, staticX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(staticX)
+            handleType(int, null)
+            handleIdentifier(staticX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, staticX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(superX)
+          handleType(int, null)
+          handleIdentifier(superX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, superX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(superX)
+            handleType(int, null)
+            handleIdentifier(superX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, superX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(superX)
+            handleType(int, null)
+            handleIdentifier(superX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, superX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(superX)
+            handleType(int, null)
+            handleIdentifier(superX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, superX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(superX)
+            handleType(int, null)
+            handleIdentifier(superX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, superX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(superX)
+            handleType(int, null)
+            handleIdentifier(superX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, superX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(switchX)
+          handleType(int, null)
+          handleIdentifier(switchX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, switchX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(switchX)
+            handleType(int, null)
+            handleIdentifier(switchX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, switchX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(switchX)
+            handleType(int, null)
+            handleIdentifier(switchX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, switchX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(switchX)
+            handleType(int, null)
+            handleIdentifier(switchX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, switchX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(switchX)
+            handleType(int, null)
+            handleIdentifier(switchX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, switchX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(switchX)
+            handleType(int, null)
+            handleIdentifier(switchX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, switchX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(syncX)
+          handleType(int, null)
+          handleIdentifier(syncX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, syncX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(syncX)
+            handleType(int, null)
+            handleIdentifier(syncX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, syncX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(syncX)
+            handleType(int, null)
+            handleIdentifier(syncX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, syncX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(syncX)
+            handleType(int, null)
+            handleIdentifier(syncX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, syncX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(syncX)
+            handleType(int, null)
+            handleIdentifier(syncX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, syncX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(syncX)
+            handleType(int, null)
+            handleIdentifier(syncX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, syncX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(thisX)
+          handleType(int, null)
+          handleIdentifier(thisX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, thisX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(thisX)
+            handleType(int, null)
+            handleIdentifier(thisX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, thisX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(thisX)
+            handleType(int, null)
+            handleIdentifier(thisX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, thisX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(thisX)
+            handleType(int, null)
+            handleIdentifier(thisX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, thisX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(thisX)
+            handleType(int, null)
+            handleIdentifier(thisX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, thisX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(thisX)
+            handleType(int, null)
+            handleIdentifier(thisX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, thisX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(throwX)
+          handleType(int, null)
+          handleIdentifier(throwX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, throwX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(throwX)
+            handleType(int, null)
+            handleIdentifier(throwX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, throwX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(throwX)
+            handleType(int, null)
+            handleIdentifier(throwX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, throwX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(throwX)
+            handleType(int, null)
+            handleIdentifier(throwX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, throwX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(throwX)
+            handleType(int, null)
+            handleIdentifier(throwX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, throwX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(throwX)
+            handleType(int, null)
+            handleIdentifier(throwX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, throwX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(trueX)
+          handleType(int, null)
+          handleIdentifier(trueX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, trueX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(trueX)
+            handleType(int, null)
+            handleIdentifier(trueX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, trueX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(trueX)
+            handleType(int, null)
+            handleIdentifier(trueX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, trueX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(trueX)
+            handleType(int, null)
+            handleIdentifier(trueX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, trueX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(trueX)
+            handleType(int, null)
+            handleIdentifier(trueX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, trueX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(trueX)
+            handleType(int, null)
+            handleIdentifier(trueX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, trueX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(tryX)
+          handleType(int, null)
+          handleIdentifier(tryX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, tryX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(tryX)
+            handleType(int, null)
+            handleIdentifier(tryX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, tryX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(tryX)
+            handleType(int, null)
+            handleIdentifier(tryX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, tryX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(tryX)
+            handleType(int, null)
+            handleIdentifier(tryX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, tryX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(tryX)
+            handleType(int, null)
+            handleIdentifier(tryX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, tryX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(tryX)
+            handleType(int, null)
+            handleIdentifier(tryX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, tryX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(typedefX)
+          handleType(int, null)
+          handleIdentifier(typedefX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, typedefX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(typedefX)
+            handleType(int, null)
+            handleIdentifier(typedefX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, typedefX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(typedefX)
+            handleType(int, null)
+            handleIdentifier(typedefX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, typedefX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(typedefX)
+            handleType(int, null)
+            handleIdentifier(typedefX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, typedefX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(typedefX)
+            handleType(int, null)
+            handleIdentifier(typedefX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, typedefX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(typedefX)
+            handleType(int, null)
+            handleIdentifier(typedefX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, typedefX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(varX)
+          handleType(int, null)
+          handleIdentifier(varX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, varX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(varX)
+            handleType(int, null)
+            handleIdentifier(varX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, varX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(varX)
+            handleType(int, null)
+            handleIdentifier(varX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, varX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(varX)
+            handleType(int, null)
+            handleIdentifier(varX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, varX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(varX)
+            handleType(int, null)
+            handleIdentifier(varX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, varX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(varX)
+            handleType(int, null)
+            handleIdentifier(varX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, varX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(voidX)
+          handleType(int, null)
+          handleIdentifier(voidX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, voidX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(voidX)
+            handleType(int, null)
+            handleIdentifier(voidX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, voidX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(voidX)
+            handleType(int, null)
+            handleIdentifier(voidX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, voidX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(voidX)
+            handleType(int, null)
+            handleIdentifier(voidX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, voidX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(voidX)
+            handleType(int, null)
+            handleIdentifier(voidX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, voidX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(voidX)
+            handleType(int, null)
+            handleIdentifier(voidX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, voidX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(whileX)
+          handleType(int, null)
+          handleIdentifier(whileX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, whileX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(whileX)
+            handleType(int, null)
+            handleIdentifier(whileX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, whileX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(whileX)
+            handleType(int, null)
+            handleIdentifier(whileX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, whileX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(whileX)
+            handleType(int, null)
+            handleIdentifier(whileX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, whileX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(whileX)
+            handleType(int, null)
+            handleIdentifier(whileX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, whileX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(whileX)
+            handleType(int, null)
+            handleIdentifier(whileX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, whileX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(withX)
+          handleType(int, null)
+          handleIdentifier(withX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, withX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(withX)
+            handleType(int, null)
+            handleIdentifier(withX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, withX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(withX)
+            handleType(int, null)
+            handleIdentifier(withX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, withX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(withX)
+            handleType(int, null)
+            handleIdentifier(withX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, withX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(withX)
+            handleType(int, null)
+            handleIdentifier(withX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, withX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(withX)
+            handleType(int, null)
+            handleIdentifier(withX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, withX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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(yieldX)
+          handleType(int, null)
+          handleIdentifier(yieldX, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, yieldX, 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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(yieldX)
+            handleType(int, null)
+            handleIdentifier(yieldX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(])
+          endFormalParameter(null, null, yieldX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters([)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(yieldX)
+            handleType(int, null)
+            handleIdentifier(yieldX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, ])
+          endFormalParameter(null, null, yieldX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, [, ])
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(yieldX)
+            handleType(int, null)
+            handleIdentifier(yieldX, formalParameterDeclaration)
+            handleFormalParameterWithoutValue(})
+          endFormalParameter(null, null, yieldX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(yieldX)
+            handleType(int, null)
+            handleIdentifier(yieldX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(:, })
+          endFormalParameter(null, null, yieldX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      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)
+        beginOptionalFormalParameters({)
+          beginMetadataStar(int)
+          endMetadataStar(0)
+          beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(yieldX)
+            handleType(int, null)
+            handleIdentifier(yieldX, formalParameterDeclaration)
+            beginFormalParameterDefaultValueExpression()
+              handleLiteralInt(42)
+            endFormalParameterDefaultValueExpression()
+            handleValuedFormalParameter(=, })
+          endFormalParameter(null, null, yieldX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+        endOptionalFormalParameters(1, {, })
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration()
+endCompilationUnit(414, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.intertwined.expect
new file mode 100644
index 0000000..b1fa29a
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.intertwined.expect
@@ -0,0 +1,19188 @@
+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(abstractX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(abstractX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, abstractX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(abstractX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(abstractX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, abstractX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(abstractX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(abstractX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, abstractX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(abstractX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(abstractX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, abstractX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(abstractX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(abstractX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, abstractX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(abstractX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(abstractX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, abstractX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(asX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(asX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, asX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(asX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(asX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, asX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(asX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(asX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, asX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(asX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(asX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, asX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(asX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(asX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, asX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(asX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(asX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, asX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(assertX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(assertX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, assertX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(assertX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(assertX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, assertX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(assertX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(assertX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, assertX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(assertX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(assertX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, assertX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(assertX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(assertX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, assertX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(assertX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(assertX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, assertX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(asyncX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(asyncX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, asyncX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(asyncX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(asyncX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, asyncX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(asyncX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(asyncX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, asyncX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(asyncX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(asyncX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, asyncX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(asyncX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(asyncX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, asyncX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(asyncX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(asyncX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, asyncX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(awaitX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(awaitX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, awaitX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(awaitX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(awaitX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, awaitX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(awaitX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(awaitX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, awaitX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(awaitX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(awaitX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, awaitX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(awaitX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(awaitX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, awaitX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(awaitX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(awaitX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, awaitX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(breakX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(breakX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, breakX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(breakX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(breakX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, breakX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(breakX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(breakX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, breakX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(breakX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(breakX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, breakX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(breakX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(breakX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, breakX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(breakX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(breakX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, breakX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(caseX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(caseX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, caseX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(caseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(caseX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, caseX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(caseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(caseX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, caseX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(caseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(caseX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, caseX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(caseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(caseX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, caseX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(caseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(caseX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, caseX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(catchX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(catchX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, catchX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(catchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(catchX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, catchX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(catchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(catchX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, catchX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(catchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(catchX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, catchX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(catchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(catchX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, catchX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(catchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(catchX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, catchX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(classX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(classX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, classX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(classX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(classX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, classX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(classX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(classX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, classX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(classX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(classX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, classX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(classX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(classX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, classX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(classX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(classX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, classX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(constX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(constX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, constX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(constX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(constX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, constX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(constX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(constX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, constX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(constX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(constX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, constX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(constX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(constX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, constX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(constX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(constX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, constX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(continueX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(continueX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, continueX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(continueX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(continueX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, continueX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(continueX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(continueX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, continueX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(continueX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(continueX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, continueX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(continueX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(continueX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, continueX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(continueX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(continueX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, continueX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(covariantX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(covariantX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, covariantX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(covariantX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(covariantX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, covariantX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(covariantX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(covariantX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, covariantX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(covariantX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(covariantX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, covariantX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(covariantX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(covariantX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, covariantX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(covariantX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(covariantX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, covariantX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(defaultX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(defaultX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, defaultX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(defaultX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(defaultX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, defaultX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(defaultX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(defaultX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, defaultX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(defaultX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(defaultX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, defaultX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(defaultX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(defaultX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, defaultX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(defaultX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(defaultX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, defaultX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(deferredX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(deferredX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, deferredX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(deferredX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(deferredX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, deferredX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(deferredX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(deferredX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, deferredX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(deferredX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(deferredX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, deferredX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(deferredX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(deferredX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, deferredX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(deferredX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(deferredX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, deferredX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(doX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(doX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, doX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(doX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(doX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, doX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(doX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(doX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, doX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(doX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(doX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, doX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(doX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(doX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, doX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(doX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(doX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, doX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(dynamicX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(dynamicX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, dynamicX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(dynamicX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(dynamicX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, dynamicX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(dynamicX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(dynamicX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, dynamicX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(dynamicX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(dynamicX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, dynamicX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(dynamicX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(dynamicX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, dynamicX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(dynamicX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(dynamicX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, dynamicX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(elseX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(elseX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, elseX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(elseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(elseX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, elseX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(elseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(elseX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, elseX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(elseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(elseX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, elseX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(elseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(elseX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, elseX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(elseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(elseX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, elseX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(enumX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(enumX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, enumX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(enumX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(enumX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, enumX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(enumX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(enumX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, enumX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(enumX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(enumX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, enumX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(enumX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(enumX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, enumX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(enumX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(enumX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, enumX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(exportX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(exportX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, exportX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(exportX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(exportX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, exportX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(exportX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(exportX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, exportX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(exportX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(exportX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, exportX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(exportX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(exportX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, exportX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(exportX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(exportX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, exportX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(extendsX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(extendsX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, extendsX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extendsX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(extendsX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, extendsX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extendsX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(extendsX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, extendsX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extendsX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(extendsX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, extendsX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extendsX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(extendsX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, extendsX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extendsX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(extendsX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, extendsX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(extensionX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(extensionX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, extensionX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extensionX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(extensionX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, extensionX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extensionX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(extensionX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, extensionX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extensionX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(extensionX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, extensionX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extensionX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(extensionX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, extensionX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(extensionX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(extensionX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, extensionX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(externalX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(externalX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, externalX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(externalX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(externalX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, externalX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(externalX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(externalX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, externalX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(externalX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(externalX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, externalX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(externalX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(externalX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, externalX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(externalX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(externalX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, externalX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(factoryX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(factoryX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, factoryX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(factoryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(factoryX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, factoryX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(factoryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(factoryX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, factoryX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(factoryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(factoryX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, factoryX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(factoryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(factoryX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, factoryX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(factoryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(factoryX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, factoryX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(falseX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(falseX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, falseX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(falseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(falseX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, falseX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(falseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(falseX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, falseX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(falseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(falseX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, falseX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(falseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(falseX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, falseX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(falseX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(falseX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, falseX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(finalX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(finalX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, finalX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finalX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(finalX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, finalX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finalX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(finalX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, finalX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finalX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(finalX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, finalX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finalX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(finalX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, finalX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finalX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(finalX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, finalX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(finallyX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(finallyX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, finallyX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finallyX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(finallyX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, finallyX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finallyX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(finallyX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, finallyX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finallyX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(finallyX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, finallyX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finallyX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(finallyX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, finallyX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(finallyX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(finallyX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, finallyX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(forX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(forX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, forX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(forX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(forX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, forX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(forX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(forX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, forX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(forX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(forX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, forX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(forX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(forX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, forX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(forX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(forX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, forX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(FunctionX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(FunctionX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, FunctionX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(FunctionX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(FunctionX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, FunctionX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(FunctionX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(FunctionX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, FunctionX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(FunctionX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(FunctionX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, FunctionX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(FunctionX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(FunctionX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, FunctionX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(FunctionX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(FunctionX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, FunctionX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(getX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(getX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, getX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(getX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(getX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, getX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(getX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(getX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, getX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(getX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(getX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, getX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(getX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(getX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, getX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(getX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(getX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, getX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(hideX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(hideX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, hideX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(hideX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(hideX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, hideX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(hideX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(hideX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, hideX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(hideX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(hideX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, hideX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(hideX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(hideX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, hideX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(hideX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(hideX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, hideX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(ifX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(ifX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, ifX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(ifX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(ifX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, ifX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(ifX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(ifX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, ifX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(ifX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(ifX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, ifX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(ifX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(ifX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, ifX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(ifX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(ifX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, ifX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(implementsX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(implementsX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, implementsX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(implementsX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(implementsX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, implementsX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(implementsX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(implementsX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, implementsX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(implementsX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(implementsX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, implementsX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(implementsX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(implementsX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, implementsX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(implementsX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(implementsX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, implementsX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(importX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(importX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, importX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(importX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(importX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, importX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(importX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(importX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, importX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(importX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(importX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, importX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(importX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(importX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, importX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(importX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(importX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, importX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(inX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(inX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, inX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(inX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(inX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, inX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(inX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(inX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, inX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(inX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(inX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, inX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(inX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(inX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, inX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(inX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(inX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, inX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(inoutX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(inoutX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, inoutX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(inoutX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(inoutX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, inoutX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(inoutX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(inoutX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, inoutX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(inoutX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(inoutX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, inoutX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(inoutX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(inoutX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, inoutX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(inoutX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(inoutX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, inoutX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(interfaceX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(interfaceX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, interfaceX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(interfaceX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(interfaceX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, interfaceX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(interfaceX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(interfaceX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, interfaceX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(interfaceX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(interfaceX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, interfaceX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(interfaceX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(interfaceX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, interfaceX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(interfaceX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(interfaceX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, interfaceX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(isX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(isX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, isX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(isX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(isX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, isX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(isX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(isX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, isX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(isX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(isX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, isX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(isX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(isX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, isX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(isX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(isX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, isX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(lateX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(lateX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, lateX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(lateX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(lateX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, lateX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(lateX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(lateX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, lateX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(lateX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(lateX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, lateX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(lateX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(lateX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, lateX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(lateX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(lateX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, lateX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(libraryX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(libraryX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, libraryX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(libraryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(libraryX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, libraryX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(libraryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(libraryX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, libraryX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(libraryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(libraryX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, libraryX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(libraryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(libraryX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, libraryX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(libraryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(libraryX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, libraryX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(mixinX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(mixinX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, mixinX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(mixinX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(mixinX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, mixinX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(mixinX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(mixinX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, mixinX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(mixinX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(mixinX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, mixinX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(mixinX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(mixinX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, mixinX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(mixinX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(mixinX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, mixinX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(nativeX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(nativeX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, nativeX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(nativeX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(nativeX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, nativeX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(nativeX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(nativeX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, nativeX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(nativeX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(nativeX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, nativeX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(nativeX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(nativeX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, nativeX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(nativeX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(nativeX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, nativeX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(newX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(newX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, newX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(newX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(newX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, newX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(newX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(newX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, newX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(newX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(newX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, newX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(newX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(newX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, newX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(newX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(newX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, newX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(nullX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(nullX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, nullX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(nullX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(nullX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, nullX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(nullX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(nullX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, nullX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(nullX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(nullX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, nullX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(nullX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(nullX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, nullX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(nullX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(nullX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, nullX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(ofX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(ofX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, ofX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(ofX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(ofX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, ofX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(ofX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(ofX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, ofX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(ofX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(ofX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, ofX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(ofX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(ofX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, ofX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(ofX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(ofX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, ofX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(onX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(onX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, onX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(onX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(onX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, onX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(onX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(onX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, onX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(onX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(onX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, onX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(onX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(onX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, onX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(onX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(onX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, onX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(operatorX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(operatorX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, operatorX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(operatorX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(operatorX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, operatorX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(operatorX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(operatorX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, operatorX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(operatorX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(operatorX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, operatorX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(operatorX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(operatorX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, operatorX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(operatorX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(operatorX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, operatorX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(outX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(outX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, outX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(outX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(outX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, outX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(outX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(outX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, outX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(outX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(outX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, outX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(outX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(outX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, outX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(outX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(outX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, outX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(partX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(partX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, partX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(partX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(partX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, partX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(partX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(partX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, partX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(partX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(partX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, partX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(partX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(partX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, partX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(partX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(partX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, partX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(patchX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(patchX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, patchX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(patchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(patchX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, patchX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(patchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(patchX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, patchX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(patchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(patchX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, patchX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(patchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(patchX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, patchX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(patchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(patchX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, patchX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(requiredX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(requiredX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, requiredX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(requiredX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(requiredX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, requiredX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(requiredX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(requiredX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, requiredX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(requiredX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(requiredX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, requiredX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(requiredX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(requiredX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, requiredX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(requiredX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(requiredX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, requiredX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(rethrowX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(rethrowX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, rethrowX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(rethrowX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(rethrowX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, rethrowX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(rethrowX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(rethrowX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, rethrowX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(rethrowX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(rethrowX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, rethrowX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(rethrowX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(rethrowX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, rethrowX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(rethrowX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(rethrowX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, rethrowX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(returnX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(returnX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, returnX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(returnX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(returnX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, returnX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(returnX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(returnX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, returnX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(returnX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(returnX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, returnX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(returnX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(returnX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, returnX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(returnX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(returnX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, returnX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(setX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(setX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, setX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(setX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(setX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, setX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(setX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(setX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, setX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(setX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(setX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, setX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(setX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(setX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, setX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(setX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(setX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, setX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(showX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(showX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, showX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(showX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(showX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, showX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(showX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(showX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, showX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(showX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(showX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, showX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(showX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(showX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, showX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(showX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(showX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, showX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(sourceX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(sourceX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, sourceX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(sourceX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(sourceX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, sourceX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(sourceX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(sourceX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, sourceX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(sourceX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(sourceX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, sourceX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(sourceX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(sourceX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, sourceX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(sourceX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(sourceX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, sourceX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(staticX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(staticX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, staticX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(staticX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(staticX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, staticX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(staticX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(staticX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, staticX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(staticX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(staticX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, staticX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(staticX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(staticX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, staticX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(staticX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(staticX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, staticX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(superX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(superX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, superX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(superX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(superX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, superX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(superX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(superX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, superX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(superX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(superX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, superX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(superX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(superX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, superX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(superX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(superX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, superX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(switchX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(switchX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, switchX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(switchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(switchX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, switchX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(switchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(switchX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, switchX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(switchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(switchX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, switchX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(switchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(switchX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, switchX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(switchX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(switchX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, switchX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(syncX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(syncX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, syncX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(syncX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(syncX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, syncX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(syncX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(syncX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, syncX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(syncX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(syncX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, syncX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(syncX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(syncX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, syncX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(syncX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(syncX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, syncX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(thisX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(thisX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, thisX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(thisX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(thisX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, thisX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(thisX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(thisX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, thisX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(thisX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(thisX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, thisX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(thisX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(thisX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, thisX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(thisX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(thisX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, thisX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(throwX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(throwX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, throwX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(throwX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(throwX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, throwX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(throwX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(throwX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, throwX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(throwX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(throwX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, throwX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(throwX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(throwX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, throwX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(throwX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(throwX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, throwX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(trueX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(trueX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, trueX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(trueX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(trueX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, trueX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(trueX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(trueX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, trueX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(trueX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(trueX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, trueX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(trueX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(trueX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, trueX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(trueX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(trueX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, trueX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(tryX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(tryX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, tryX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(tryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(tryX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, tryX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(tryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(tryX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, tryX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(tryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(tryX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, tryX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(tryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(tryX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, tryX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(tryX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(tryX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, tryX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(typedefX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(typedefX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, typedefX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(typedefX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(typedefX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, typedefX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(typedefX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(typedefX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, typedefX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(typedefX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(typedefX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, typedefX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(typedefX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(typedefX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, typedefX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(typedefX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(typedefX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, typedefX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(varX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(varX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, varX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(varX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(varX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, varX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(varX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(varX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, varX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(varX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(varX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, varX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(varX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(varX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, varX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(varX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(varX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, varX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(voidX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(voidX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, voidX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(voidX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(voidX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, voidX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(voidX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(voidX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, voidX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(voidX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(voidX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, voidX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(voidX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(voidX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, voidX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(voidX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(voidX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, voidX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(whileX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(whileX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, whileX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(whileX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(whileX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, whileX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(whileX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(whileX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, whileX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(whileX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(whileX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, whileX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(whileX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(whileX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, whileX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(whileX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(whileX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, whileX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(withX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(withX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, withX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(withX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(withX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, withX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(withX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(withX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, withX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(withX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(withX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, withX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(withX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(withX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, withX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(withX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(withX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, withX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(yieldX)
+                listener: handleType(int, null)
+                ensureIdentifier(int, formalParameterDeclaration)
+                  listener: handleIdentifier(yieldX, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, yieldX, 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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(yieldX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(yieldX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(])
+                  listener: endFormalParameter(null, null, yieldX, null, null, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalPositionalParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters([)
+                parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                  parseMetadataStar([)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(yieldX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(yieldX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, ])
+                  listener: endFormalParameter(null, null, yieldX, 42, 42, FormalParameterKind.optionalPositional, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, [, ])
+              ensureCloseParen(], ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(yieldX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(yieldX, formalParameterDeclaration)
+                  listener: handleFormalParameterWithoutValue(})
+                  listener: endFormalParameter(null, null, yieldX, null, null, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(yieldX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(yieldX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(:)
+                    parsePrecedenceExpression(:, 1, true)
+                      parseUnaryExpression(:, true)
+                        parsePrimary(:, expression)
+                          parseLiteralInt(:)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(:, })
+                  listener: endFormalParameter(null, null, yieldX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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)
+              parseOptionalNamedParameters((, MemberKind.TopLevelMethod)
+                listener: beginOptionalFormalParameters({)
+                parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                  parseMetadataStar({)
+                    listener: beginMetadataStar(int)
+                    listener: endMetadataStar(0)
+                  listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(yieldX)
+                  listener: handleType(int, null)
+                  ensureIdentifier(int, formalParameterDeclaration)
+                    listener: handleIdentifier(yieldX, formalParameterDeclaration)
+                  listener: beginFormalParameterDefaultValueExpression()
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFormalParameterDefaultValueExpression()
+                  listener: handleValuedFormalParameter(=, })
+                  listener: endFormalParameter(null, null, yieldX, 42, 42, FormalParameterKind.optionalNamed, MemberKind.TopLevelMethod)
+                listener: endOptionalFormalParameters(1, {, })
+              ensureCloseParen(}, ()
+              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(414, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.parser.expect
new file mode 100644
index 0000000..575fc69
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.parser.expect
@@ -0,0 +1,967 @@
+void test(int abstractX) {}
+void test([int abstractX]) {}
+void test([int abstractX = 42]) {}
+void test({int abstractX}) {}
+void test({int abstractX: 42}) {}
+void test({int abstractX = 42}) {}
+
+void test(int asX) {}
+void test([int asX]) {}
+void test([int asX = 42]) {}
+void test({int asX}) {}
+void test({int asX: 42}) {}
+void test({int asX = 42}) {}
+
+void test(int assertX) {}
+void test([int assertX]) {}
+void test([int assertX = 42]) {}
+void test({int assertX}) {}
+void test({int assertX: 42}) {}
+void test({int assertX = 42}) {}
+
+void test(int asyncX) {}
+void test([int asyncX]) {}
+void test([int asyncX = 42]) {}
+void test({int asyncX}) {}
+void test({int asyncX: 42}) {}
+void test({int asyncX = 42}) {}
+
+void test(int awaitX) {}
+void test([int awaitX]) {}
+void test([int awaitX = 42]) {}
+void test({int awaitX}) {}
+void test({int awaitX: 42}) {}
+void test({int awaitX = 42}) {}
+
+void test(int breakX) {}
+void test([int breakX]) {}
+void test([int breakX = 42]) {}
+void test({int breakX}) {}
+void test({int breakX: 42}) {}
+void test({int breakX = 42}) {}
+
+void test(int caseX) {}
+void test([int caseX]) {}
+void test([int caseX = 42]) {}
+void test({int caseX}) {}
+void test({int caseX: 42}) {}
+void test({int caseX = 42}) {}
+
+void test(int catchX) {}
+void test([int catchX]) {}
+void test([int catchX = 42]) {}
+void test({int catchX}) {}
+void test({int catchX: 42}) {}
+void test({int catchX = 42}) {}
+
+void test(int classX) {}
+void test([int classX]) {}
+void test([int classX = 42]) {}
+void test({int classX}) {}
+void test({int classX: 42}) {}
+void test({int classX = 42}) {}
+
+void test(int constX) {}
+void test([int constX]) {}
+void test([int constX = 42]) {}
+void test({int constX}) {}
+void test({int constX: 42}) {}
+void test({int constX = 42}) {}
+
+void test(int continueX) {}
+void test([int continueX]) {}
+void test([int continueX = 42]) {}
+void test({int continueX}) {}
+void test({int continueX: 42}) {}
+void test({int continueX = 42}) {}
+
+void test(int covariantX) {}
+void test([int covariantX]) {}
+void test([int covariantX = 42]) {}
+void test({int covariantX}) {}
+void test({int covariantX: 42}) {}
+void test({int covariantX = 42}) {}
+
+void test(int defaultX) {}
+void test([int defaultX]) {}
+void test([int defaultX = 42]) {}
+void test({int defaultX}) {}
+void test({int defaultX: 42}) {}
+void test({int defaultX = 42}) {}
+
+void test(int deferredX) {}
+void test([int deferredX]) {}
+void test([int deferredX = 42]) {}
+void test({int deferredX}) {}
+void test({int deferredX: 42}) {}
+void test({int deferredX = 42}) {}
+
+void test(int doX) {}
+void test([int doX]) {}
+void test([int doX = 42]) {}
+void test({int doX}) {}
+void test({int doX: 42}) {}
+void test({int doX = 42}) {}
+
+void test(int dynamicX) {}
+void test([int dynamicX]) {}
+void test([int dynamicX = 42]) {}
+void test({int dynamicX}) {}
+void test({int dynamicX: 42}) {}
+void test({int dynamicX = 42}) {}
+
+void test(int elseX) {}
+void test([int elseX]) {}
+void test([int elseX = 42]) {}
+void test({int elseX}) {}
+void test({int elseX: 42}) {}
+void test({int elseX = 42}) {}
+
+void test(int enumX) {}
+void test([int enumX]) {}
+void test([int enumX = 42]) {}
+void test({int enumX}) {}
+void test({int enumX: 42}) {}
+void test({int enumX = 42}) {}
+
+void test(int exportX) {}
+void test([int exportX]) {}
+void test([int exportX = 42]) {}
+void test({int exportX}) {}
+void test({int exportX: 42}) {}
+void test({int exportX = 42}) {}
+
+void test(int extendsX) {}
+void test([int extendsX]) {}
+void test([int extendsX = 42]) {}
+void test({int extendsX}) {}
+void test({int extendsX: 42}) {}
+void test({int extendsX = 42}) {}
+
+void test(int extensionX) {}
+void test([int extensionX]) {}
+void test([int extensionX = 42]) {}
+void test({int extensionX}) {}
+void test({int extensionX: 42}) {}
+void test({int extensionX = 42}) {}
+
+void test(int externalX) {}
+void test([int externalX]) {}
+void test([int externalX = 42]) {}
+void test({int externalX}) {}
+void test({int externalX: 42}) {}
+void test({int externalX = 42}) {}
+
+void test(int factoryX) {}
+void test([int factoryX]) {}
+void test([int factoryX = 42]) {}
+void test({int factoryX}) {}
+void test({int factoryX: 42}) {}
+void test({int factoryX = 42}) {}
+
+void test(int falseX) {}
+void test([int falseX]) {}
+void test([int falseX = 42]) {}
+void test({int falseX}) {}
+void test({int falseX: 42}) {}
+void test({int falseX = 42}) {}
+
+void test(int finalX) {}
+void test([int finalX]) {}
+void test([int finalX = 42]) {}
+void test({int finalX}) {}
+void test({int finalX: 42}) {}
+void test({int finalX = 42}) {}
+
+void test(int finallyX) {}
+void test([int finallyX]) {}
+void test([int finallyX = 42]) {}
+void test({int finallyX}) {}
+void test({int finallyX: 42}) {}
+void test({int finallyX = 42}) {}
+
+void test(int forX) {}
+void test([int forX]) {}
+void test([int forX = 42]) {}
+void test({int forX}) {}
+void test({int forX: 42}) {}
+void test({int forX = 42}) {}
+
+void test(int FunctionX) {}
+void test([int FunctionX]) {}
+void test([int FunctionX = 42]) {}
+void test({int FunctionX}) {}
+void test({int FunctionX: 42}) {}
+void test({int FunctionX = 42}) {}
+
+void test(int getX) {}
+void test([int getX]) {}
+void test([int getX = 42]) {}
+void test({int getX}) {}
+void test({int getX: 42}) {}
+void test({int getX = 42}) {}
+
+void test(int hideX) {}
+void test([int hideX]) {}
+void test([int hideX = 42]) {}
+void test({int hideX}) {}
+void test({int hideX: 42}) {}
+void test({int hideX = 42}) {}
+
+void test(int ifX) {}
+void test([int ifX]) {}
+void test([int ifX = 42]) {}
+void test({int ifX}) {}
+void test({int ifX: 42}) {}
+void test({int ifX = 42}) {}
+
+void test(int implementsX) {}
+void test([int implementsX]) {}
+void test([int implementsX = 42]) {}
+void test({int implementsX}) {}
+void test({int implementsX: 42}) {}
+void test({int implementsX = 42}) {}
+
+void test(int importX) {}
+void test([int importX]) {}
+void test([int importX = 42]) {}
+void test({int importX}) {}
+void test({int importX: 42}) {}
+void test({int importX = 42}) {}
+
+void test(int inX) {}
+void test([int inX]) {}
+void test([int inX = 42]) {}
+void test({int inX}) {}
+void test({int inX: 42}) {}
+void test({int inX = 42}) {}
+
+void test(int inoutX) {}
+void test([int inoutX]) {}
+void test([int inoutX = 42]) {}
+void test({int inoutX}) {}
+void test({int inoutX: 42}) {}
+void test({int inoutX = 42}) {}
+
+void test(int interfaceX) {}
+void test([int interfaceX]) {}
+void test([int interfaceX = 42]) {}
+void test({int interfaceX}) {}
+void test({int interfaceX: 42}) {}
+void test({int interfaceX = 42}) {}
+
+void test(int isX) {}
+void test([int isX]) {}
+void test([int isX = 42]) {}
+void test({int isX}) {}
+void test({int isX: 42}) {}
+void test({int isX = 42}) {}
+
+void test(int lateX) {}
+void test([int lateX]) {}
+void test([int lateX = 42]) {}
+void test({int lateX}) {}
+void test({int lateX: 42}) {}
+void test({int lateX = 42}) {}
+
+void test(int libraryX) {}
+void test([int libraryX]) {}
+void test([int libraryX = 42]) {}
+void test({int libraryX}) {}
+void test({int libraryX: 42}) {}
+void test({int libraryX = 42}) {}
+
+void test(int mixinX) {}
+void test([int mixinX]) {}
+void test([int mixinX = 42]) {}
+void test({int mixinX}) {}
+void test({int mixinX: 42}) {}
+void test({int mixinX = 42}) {}
+
+void test(int nativeX) {}
+void test([int nativeX]) {}
+void test([int nativeX = 42]) {}
+void test({int nativeX}) {}
+void test({int nativeX: 42}) {}
+void test({int nativeX = 42}) {}
+
+void test(int newX) {}
+void test([int newX]) {}
+void test([int newX = 42]) {}
+void test({int newX}) {}
+void test({int newX: 42}) {}
+void test({int newX = 42}) {}
+
+void test(int nullX) {}
+void test([int nullX]) {}
+void test([int nullX = 42]) {}
+void test({int nullX}) {}
+void test({int nullX: 42}) {}
+void test({int nullX = 42}) {}
+
+void test(int ofX) {}
+void test([int ofX]) {}
+void test([int ofX = 42]) {}
+void test({int ofX}) {}
+void test({int ofX: 42}) {}
+void test({int ofX = 42}) {}
+
+void test(int onX) {}
+void test([int onX]) {}
+void test([int onX = 42]) {}
+void test({int onX}) {}
+void test({int onX: 42}) {}
+void test({int onX = 42}) {}
+
+void test(int operatorX) {}
+void test([int operatorX]) {}
+void test([int operatorX = 42]) {}
+void test({int operatorX}) {}
+void test({int operatorX: 42}) {}
+void test({int operatorX = 42}) {}
+
+void test(int outX) {}
+void test([int outX]) {}
+void test([int outX = 42]) {}
+void test({int outX}) {}
+void test({int outX: 42}) {}
+void test({int outX = 42}) {}
+
+void test(int partX) {}
+void test([int partX]) {}
+void test([int partX = 42]) {}
+void test({int partX}) {}
+void test({int partX: 42}) {}
+void test({int partX = 42}) {}
+
+void test(int patchX) {}
+void test([int patchX]) {}
+void test([int patchX = 42]) {}
+void test({int patchX}) {}
+void test({int patchX: 42}) {}
+void test({int patchX = 42}) {}
+
+void test(int requiredX) {}
+void test([int requiredX]) {}
+void test([int requiredX = 42]) {}
+void test({int requiredX}) {}
+void test({int requiredX: 42}) {}
+void test({int requiredX = 42}) {}
+
+void test(int rethrowX) {}
+void test([int rethrowX]) {}
+void test([int rethrowX = 42]) {}
+void test({int rethrowX}) {}
+void test({int rethrowX: 42}) {}
+void test({int rethrowX = 42}) {}
+
+void test(int returnX) {}
+void test([int returnX]) {}
+void test([int returnX = 42]) {}
+void test({int returnX}) {}
+void test({int returnX: 42}) {}
+void test({int returnX = 42}) {}
+
+void test(int setX) {}
+void test([int setX]) {}
+void test([int setX = 42]) {}
+void test({int setX}) {}
+void test({int setX: 42}) {}
+void test({int setX = 42}) {}
+
+void test(int showX) {}
+void test([int showX]) {}
+void test([int showX = 42]) {}
+void test({int showX}) {}
+void test({int showX: 42}) {}
+void test({int showX = 42}) {}
+
+void test(int sourceX) {}
+void test([int sourceX]) {}
+void test([int sourceX = 42]) {}
+void test({int sourceX}) {}
+void test({int sourceX: 42}) {}
+void test({int sourceX = 42}) {}
+
+void test(int staticX) {}
+void test([int staticX]) {}
+void test([int staticX = 42]) {}
+void test({int staticX}) {}
+void test({int staticX: 42}) {}
+void test({int staticX = 42}) {}
+
+void test(int superX) {}
+void test([int superX]) {}
+void test([int superX = 42]) {}
+void test({int superX}) {}
+void test({int superX: 42}) {}
+void test({int superX = 42}) {}
+
+void test(int switchX) {}
+void test([int switchX]) {}
+void test([int switchX = 42]) {}
+void test({int switchX}) {}
+void test({int switchX: 42}) {}
+void test({int switchX = 42}) {}
+
+void test(int syncX) {}
+void test([int syncX]) {}
+void test([int syncX = 42]) {}
+void test({int syncX}) {}
+void test({int syncX: 42}) {}
+void test({int syncX = 42}) {}
+
+void test(int thisX) {}
+void test([int thisX]) {}
+void test([int thisX = 42]) {}
+void test({int thisX}) {}
+void test({int thisX: 42}) {}
+void test({int thisX = 42}) {}
+
+void test(int throwX) {}
+void test([int throwX]) {}
+void test([int throwX = 42]) {}
+void test({int throwX}) {}
+void test({int throwX: 42}) {}
+void test({int throwX = 42}) {}
+
+void test(int trueX) {}
+void test([int trueX]) {}
+void test([int trueX = 42]) {}
+void test({int trueX}) {}
+void test({int trueX: 42}) {}
+void test({int trueX = 42}) {}
+
+void test(int tryX) {}
+void test([int tryX]) {}
+void test([int tryX = 42]) {}
+void test({int tryX}) {}
+void test({int tryX: 42}) {}
+void test({int tryX = 42}) {}
+
+void test(int typedefX) {}
+void test([int typedefX]) {}
+void test([int typedefX = 42]) {}
+void test({int typedefX}) {}
+void test({int typedefX: 42}) {}
+void test({int typedefX = 42}) {}
+
+void test(int varX) {}
+void test([int varX]) {}
+void test([int varX = 42]) {}
+void test({int varX}) {}
+void test({int varX: 42}) {}
+void test({int varX = 42}) {}
+
+void test(int voidX) {}
+void test([int voidX]) {}
+void test([int voidX = 42]) {}
+void test({int voidX}) {}
+void test({int voidX: 42}) {}
+void test({int voidX = 42}) {}
+
+void test(int whileX) {}
+void test([int whileX]) {}
+void test([int whileX = 42]) {}
+void test({int whileX}) {}
+void test({int whileX: 42}) {}
+void test({int whileX = 42}) {}
+
+void test(int withX) {}
+void test([int withX]) {}
+void test([int withX = 42]) {}
+void test({int withX}) {}
+void test({int withX: 42}) {}
+void test({int withX = 42}) {}
+
+void test(int yieldX) {}
+void test([int yieldX]) {}
+void test([int yieldX = 42]) {}
+void test({int yieldX}) {}
+void test({int yieldX: 42}) {}
+void test({int yieldX = 42}) {}
+
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] abstractX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] abstractX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] abstractX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] abstractX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] abstractX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] abstractX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] asX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] asX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] asX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] asX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] asX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] asX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] assertX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] assertX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] assertX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] assertX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] assertX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] assertX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] asyncX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] asyncX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] asyncX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] asyncX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] asyncX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] asyncX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] awaitX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] awaitX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] awaitX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] awaitX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] awaitX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] awaitX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] breakX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] breakX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] breakX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] breakX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] breakX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] breakX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] caseX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] caseX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] caseX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] caseX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] caseX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] caseX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] catchX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] catchX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] catchX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] catchX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] catchX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] catchX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] classX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] classX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] classX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] classX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] classX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] classX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] constX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] constX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] constX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] constX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] constX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] constX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] continueX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] continueX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] continueX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] continueX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] continueX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] continueX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] covariantX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] covariantX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] covariantX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] covariantX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] covariantX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] covariantX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] defaultX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] defaultX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] defaultX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] defaultX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] defaultX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] defaultX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] deferredX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] deferredX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] deferredX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] deferredX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] deferredX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] deferredX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] doX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] doX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] doX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] doX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] doX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] doX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] dynamicX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] dynamicX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] dynamicX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] dynamicX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] dynamicX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] dynamicX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] elseX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] elseX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] elseX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] elseX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] elseX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] elseX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] enumX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] enumX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] enumX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] enumX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] enumX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] enumX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] exportX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] exportX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] exportX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] exportX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] exportX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] exportX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] extendsX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extendsX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extendsX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extendsX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extendsX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extendsX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] extensionX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extensionX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extensionX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extensionX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extensionX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extensionX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] externalX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] externalX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] externalX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] externalX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] externalX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] externalX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] factoryX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] factoryX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] factoryX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] factoryX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] factoryX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] factoryX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] falseX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] falseX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] falseX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] falseX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] falseX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] falseX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] finalX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] finalX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] finalX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finalX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finalX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finalX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] finallyX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] finallyX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] finallyX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finallyX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finallyX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finallyX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] forX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] forX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] forX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] forX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] forX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] forX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] FunctionX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] FunctionX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] FunctionX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] FunctionX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] FunctionX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] FunctionX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] getX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] getX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] getX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] getX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] getX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] getX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] hideX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] hideX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] hideX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] hideX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] hideX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] hideX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] ifX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] ifX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] ifX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] ifX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] ifX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] ifX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] implementsX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] implementsX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] implementsX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] implementsX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] implementsX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] implementsX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] importX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] importX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] importX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] importX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] importX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] importX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] inX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] inX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] inX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] inoutX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] inoutX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] inoutX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inoutX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inoutX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inoutX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] interfaceX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] interfaceX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] interfaceX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] interfaceX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] interfaceX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] interfaceX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] isX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] isX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] isX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] isX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] isX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] isX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] lateX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] lateX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] lateX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] lateX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] lateX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] lateX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] libraryX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] libraryX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] libraryX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] libraryX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] libraryX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] libraryX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] mixinX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] mixinX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] mixinX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] mixinX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] mixinX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] mixinX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] nativeX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] nativeX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] nativeX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] nativeX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] nativeX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] nativeX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] newX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] newX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] newX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] newX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] newX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] newX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] nullX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] nullX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] nullX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] nullX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] nullX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] nullX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] ofX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] ofX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] ofX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] ofX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] ofX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] ofX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] onX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] onX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] onX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] onX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] onX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] onX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] operatorX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] operatorX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] operatorX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] operatorX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] operatorX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] operatorX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] outX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] outX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] outX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] outX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] outX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] outX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] partX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] partX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] partX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] partX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] partX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] partX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] patchX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] patchX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] patchX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] patchX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] patchX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] patchX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] requiredX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] requiredX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] requiredX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] requiredX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] requiredX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] requiredX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] rethrowX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] rethrowX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] rethrowX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] rethrowX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] rethrowX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] rethrowX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] returnX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] returnX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] returnX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] returnX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] returnX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] returnX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] setX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] setX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] setX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] setX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] setX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] setX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] showX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] showX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] showX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] showX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] showX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] showX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] sourceX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] sourceX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] sourceX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] sourceX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] sourceX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] sourceX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] staticX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] staticX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] staticX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] staticX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] staticX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] staticX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] superX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] superX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] superX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] superX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] superX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] superX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] switchX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] switchX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] switchX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] switchX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] switchX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] switchX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] syncX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] syncX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] syncX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] syncX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] syncX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] syncX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] thisX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] thisX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] thisX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] thisX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] thisX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] thisX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] throwX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] throwX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] throwX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] throwX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] throwX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] throwX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] trueX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] trueX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] trueX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] trueX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] trueX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] trueX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] tryX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] tryX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] tryX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] tryX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] tryX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] tryX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] typedefX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] typedefX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] typedefX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] typedefX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] typedefX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] typedefX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] varX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] varX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] varX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] varX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] varX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] varX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] voidX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] voidX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] voidX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] voidX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] voidX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] voidX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] whileX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] whileX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] whileX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] whileX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] whileX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] whileX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] withX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] withX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] withX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] withX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] withX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] withX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] yieldX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] yieldX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] yieldX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] yieldX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] yieldX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] yieldX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.scanner.expect
new file mode 100644
index 0000000..575fc69
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.scanner.expect
@@ -0,0 +1,967 @@
+void test(int abstractX) {}
+void test([int abstractX]) {}
+void test([int abstractX = 42]) {}
+void test({int abstractX}) {}
+void test({int abstractX: 42}) {}
+void test({int abstractX = 42}) {}
+
+void test(int asX) {}
+void test([int asX]) {}
+void test([int asX = 42]) {}
+void test({int asX}) {}
+void test({int asX: 42}) {}
+void test({int asX = 42}) {}
+
+void test(int assertX) {}
+void test([int assertX]) {}
+void test([int assertX = 42]) {}
+void test({int assertX}) {}
+void test({int assertX: 42}) {}
+void test({int assertX = 42}) {}
+
+void test(int asyncX) {}
+void test([int asyncX]) {}
+void test([int asyncX = 42]) {}
+void test({int asyncX}) {}
+void test({int asyncX: 42}) {}
+void test({int asyncX = 42}) {}
+
+void test(int awaitX) {}
+void test([int awaitX]) {}
+void test([int awaitX = 42]) {}
+void test({int awaitX}) {}
+void test({int awaitX: 42}) {}
+void test({int awaitX = 42}) {}
+
+void test(int breakX) {}
+void test([int breakX]) {}
+void test([int breakX = 42]) {}
+void test({int breakX}) {}
+void test({int breakX: 42}) {}
+void test({int breakX = 42}) {}
+
+void test(int caseX) {}
+void test([int caseX]) {}
+void test([int caseX = 42]) {}
+void test({int caseX}) {}
+void test({int caseX: 42}) {}
+void test({int caseX = 42}) {}
+
+void test(int catchX) {}
+void test([int catchX]) {}
+void test([int catchX = 42]) {}
+void test({int catchX}) {}
+void test({int catchX: 42}) {}
+void test({int catchX = 42}) {}
+
+void test(int classX) {}
+void test([int classX]) {}
+void test([int classX = 42]) {}
+void test({int classX}) {}
+void test({int classX: 42}) {}
+void test({int classX = 42}) {}
+
+void test(int constX) {}
+void test([int constX]) {}
+void test([int constX = 42]) {}
+void test({int constX}) {}
+void test({int constX: 42}) {}
+void test({int constX = 42}) {}
+
+void test(int continueX) {}
+void test([int continueX]) {}
+void test([int continueX = 42]) {}
+void test({int continueX}) {}
+void test({int continueX: 42}) {}
+void test({int continueX = 42}) {}
+
+void test(int covariantX) {}
+void test([int covariantX]) {}
+void test([int covariantX = 42]) {}
+void test({int covariantX}) {}
+void test({int covariantX: 42}) {}
+void test({int covariantX = 42}) {}
+
+void test(int defaultX) {}
+void test([int defaultX]) {}
+void test([int defaultX = 42]) {}
+void test({int defaultX}) {}
+void test({int defaultX: 42}) {}
+void test({int defaultX = 42}) {}
+
+void test(int deferredX) {}
+void test([int deferredX]) {}
+void test([int deferredX = 42]) {}
+void test({int deferredX}) {}
+void test({int deferredX: 42}) {}
+void test({int deferredX = 42}) {}
+
+void test(int doX) {}
+void test([int doX]) {}
+void test([int doX = 42]) {}
+void test({int doX}) {}
+void test({int doX: 42}) {}
+void test({int doX = 42}) {}
+
+void test(int dynamicX) {}
+void test([int dynamicX]) {}
+void test([int dynamicX = 42]) {}
+void test({int dynamicX}) {}
+void test({int dynamicX: 42}) {}
+void test({int dynamicX = 42}) {}
+
+void test(int elseX) {}
+void test([int elseX]) {}
+void test([int elseX = 42]) {}
+void test({int elseX}) {}
+void test({int elseX: 42}) {}
+void test({int elseX = 42}) {}
+
+void test(int enumX) {}
+void test([int enumX]) {}
+void test([int enumX = 42]) {}
+void test({int enumX}) {}
+void test({int enumX: 42}) {}
+void test({int enumX = 42}) {}
+
+void test(int exportX) {}
+void test([int exportX]) {}
+void test([int exportX = 42]) {}
+void test({int exportX}) {}
+void test({int exportX: 42}) {}
+void test({int exportX = 42}) {}
+
+void test(int extendsX) {}
+void test([int extendsX]) {}
+void test([int extendsX = 42]) {}
+void test({int extendsX}) {}
+void test({int extendsX: 42}) {}
+void test({int extendsX = 42}) {}
+
+void test(int extensionX) {}
+void test([int extensionX]) {}
+void test([int extensionX = 42]) {}
+void test({int extensionX}) {}
+void test({int extensionX: 42}) {}
+void test({int extensionX = 42}) {}
+
+void test(int externalX) {}
+void test([int externalX]) {}
+void test([int externalX = 42]) {}
+void test({int externalX}) {}
+void test({int externalX: 42}) {}
+void test({int externalX = 42}) {}
+
+void test(int factoryX) {}
+void test([int factoryX]) {}
+void test([int factoryX = 42]) {}
+void test({int factoryX}) {}
+void test({int factoryX: 42}) {}
+void test({int factoryX = 42}) {}
+
+void test(int falseX) {}
+void test([int falseX]) {}
+void test([int falseX = 42]) {}
+void test({int falseX}) {}
+void test({int falseX: 42}) {}
+void test({int falseX = 42}) {}
+
+void test(int finalX) {}
+void test([int finalX]) {}
+void test([int finalX = 42]) {}
+void test({int finalX}) {}
+void test({int finalX: 42}) {}
+void test({int finalX = 42}) {}
+
+void test(int finallyX) {}
+void test([int finallyX]) {}
+void test([int finallyX = 42]) {}
+void test({int finallyX}) {}
+void test({int finallyX: 42}) {}
+void test({int finallyX = 42}) {}
+
+void test(int forX) {}
+void test([int forX]) {}
+void test([int forX = 42]) {}
+void test({int forX}) {}
+void test({int forX: 42}) {}
+void test({int forX = 42}) {}
+
+void test(int FunctionX) {}
+void test([int FunctionX]) {}
+void test([int FunctionX = 42]) {}
+void test({int FunctionX}) {}
+void test({int FunctionX: 42}) {}
+void test({int FunctionX = 42}) {}
+
+void test(int getX) {}
+void test([int getX]) {}
+void test([int getX = 42]) {}
+void test({int getX}) {}
+void test({int getX: 42}) {}
+void test({int getX = 42}) {}
+
+void test(int hideX) {}
+void test([int hideX]) {}
+void test([int hideX = 42]) {}
+void test({int hideX}) {}
+void test({int hideX: 42}) {}
+void test({int hideX = 42}) {}
+
+void test(int ifX) {}
+void test([int ifX]) {}
+void test([int ifX = 42]) {}
+void test({int ifX}) {}
+void test({int ifX: 42}) {}
+void test({int ifX = 42}) {}
+
+void test(int implementsX) {}
+void test([int implementsX]) {}
+void test([int implementsX = 42]) {}
+void test({int implementsX}) {}
+void test({int implementsX: 42}) {}
+void test({int implementsX = 42}) {}
+
+void test(int importX) {}
+void test([int importX]) {}
+void test([int importX = 42]) {}
+void test({int importX}) {}
+void test({int importX: 42}) {}
+void test({int importX = 42}) {}
+
+void test(int inX) {}
+void test([int inX]) {}
+void test([int inX = 42]) {}
+void test({int inX}) {}
+void test({int inX: 42}) {}
+void test({int inX = 42}) {}
+
+void test(int inoutX) {}
+void test([int inoutX]) {}
+void test([int inoutX = 42]) {}
+void test({int inoutX}) {}
+void test({int inoutX: 42}) {}
+void test({int inoutX = 42}) {}
+
+void test(int interfaceX) {}
+void test([int interfaceX]) {}
+void test([int interfaceX = 42]) {}
+void test({int interfaceX}) {}
+void test({int interfaceX: 42}) {}
+void test({int interfaceX = 42}) {}
+
+void test(int isX) {}
+void test([int isX]) {}
+void test([int isX = 42]) {}
+void test({int isX}) {}
+void test({int isX: 42}) {}
+void test({int isX = 42}) {}
+
+void test(int lateX) {}
+void test([int lateX]) {}
+void test([int lateX = 42]) {}
+void test({int lateX}) {}
+void test({int lateX: 42}) {}
+void test({int lateX = 42}) {}
+
+void test(int libraryX) {}
+void test([int libraryX]) {}
+void test([int libraryX = 42]) {}
+void test({int libraryX}) {}
+void test({int libraryX: 42}) {}
+void test({int libraryX = 42}) {}
+
+void test(int mixinX) {}
+void test([int mixinX]) {}
+void test([int mixinX = 42]) {}
+void test({int mixinX}) {}
+void test({int mixinX: 42}) {}
+void test({int mixinX = 42}) {}
+
+void test(int nativeX) {}
+void test([int nativeX]) {}
+void test([int nativeX = 42]) {}
+void test({int nativeX}) {}
+void test({int nativeX: 42}) {}
+void test({int nativeX = 42}) {}
+
+void test(int newX) {}
+void test([int newX]) {}
+void test([int newX = 42]) {}
+void test({int newX}) {}
+void test({int newX: 42}) {}
+void test({int newX = 42}) {}
+
+void test(int nullX) {}
+void test([int nullX]) {}
+void test([int nullX = 42]) {}
+void test({int nullX}) {}
+void test({int nullX: 42}) {}
+void test({int nullX = 42}) {}
+
+void test(int ofX) {}
+void test([int ofX]) {}
+void test([int ofX = 42]) {}
+void test({int ofX}) {}
+void test({int ofX: 42}) {}
+void test({int ofX = 42}) {}
+
+void test(int onX) {}
+void test([int onX]) {}
+void test([int onX = 42]) {}
+void test({int onX}) {}
+void test({int onX: 42}) {}
+void test({int onX = 42}) {}
+
+void test(int operatorX) {}
+void test([int operatorX]) {}
+void test([int operatorX = 42]) {}
+void test({int operatorX}) {}
+void test({int operatorX: 42}) {}
+void test({int operatorX = 42}) {}
+
+void test(int outX) {}
+void test([int outX]) {}
+void test([int outX = 42]) {}
+void test({int outX}) {}
+void test({int outX: 42}) {}
+void test({int outX = 42}) {}
+
+void test(int partX) {}
+void test([int partX]) {}
+void test([int partX = 42]) {}
+void test({int partX}) {}
+void test({int partX: 42}) {}
+void test({int partX = 42}) {}
+
+void test(int patchX) {}
+void test([int patchX]) {}
+void test([int patchX = 42]) {}
+void test({int patchX}) {}
+void test({int patchX: 42}) {}
+void test({int patchX = 42}) {}
+
+void test(int requiredX) {}
+void test([int requiredX]) {}
+void test([int requiredX = 42]) {}
+void test({int requiredX}) {}
+void test({int requiredX: 42}) {}
+void test({int requiredX = 42}) {}
+
+void test(int rethrowX) {}
+void test([int rethrowX]) {}
+void test([int rethrowX = 42]) {}
+void test({int rethrowX}) {}
+void test({int rethrowX: 42}) {}
+void test({int rethrowX = 42}) {}
+
+void test(int returnX) {}
+void test([int returnX]) {}
+void test([int returnX = 42]) {}
+void test({int returnX}) {}
+void test({int returnX: 42}) {}
+void test({int returnX = 42}) {}
+
+void test(int setX) {}
+void test([int setX]) {}
+void test([int setX = 42]) {}
+void test({int setX}) {}
+void test({int setX: 42}) {}
+void test({int setX = 42}) {}
+
+void test(int showX) {}
+void test([int showX]) {}
+void test([int showX = 42]) {}
+void test({int showX}) {}
+void test({int showX: 42}) {}
+void test({int showX = 42}) {}
+
+void test(int sourceX) {}
+void test([int sourceX]) {}
+void test([int sourceX = 42]) {}
+void test({int sourceX}) {}
+void test({int sourceX: 42}) {}
+void test({int sourceX = 42}) {}
+
+void test(int staticX) {}
+void test([int staticX]) {}
+void test([int staticX = 42]) {}
+void test({int staticX}) {}
+void test({int staticX: 42}) {}
+void test({int staticX = 42}) {}
+
+void test(int superX) {}
+void test([int superX]) {}
+void test([int superX = 42]) {}
+void test({int superX}) {}
+void test({int superX: 42}) {}
+void test({int superX = 42}) {}
+
+void test(int switchX) {}
+void test([int switchX]) {}
+void test([int switchX = 42]) {}
+void test({int switchX}) {}
+void test({int switchX: 42}) {}
+void test({int switchX = 42}) {}
+
+void test(int syncX) {}
+void test([int syncX]) {}
+void test([int syncX = 42]) {}
+void test({int syncX}) {}
+void test({int syncX: 42}) {}
+void test({int syncX = 42}) {}
+
+void test(int thisX) {}
+void test([int thisX]) {}
+void test([int thisX = 42]) {}
+void test({int thisX}) {}
+void test({int thisX: 42}) {}
+void test({int thisX = 42}) {}
+
+void test(int throwX) {}
+void test([int throwX]) {}
+void test([int throwX = 42]) {}
+void test({int throwX}) {}
+void test({int throwX: 42}) {}
+void test({int throwX = 42}) {}
+
+void test(int trueX) {}
+void test([int trueX]) {}
+void test([int trueX = 42]) {}
+void test({int trueX}) {}
+void test({int trueX: 42}) {}
+void test({int trueX = 42}) {}
+
+void test(int tryX) {}
+void test([int tryX]) {}
+void test([int tryX = 42]) {}
+void test({int tryX}) {}
+void test({int tryX: 42}) {}
+void test({int tryX = 42}) {}
+
+void test(int typedefX) {}
+void test([int typedefX]) {}
+void test([int typedefX = 42]) {}
+void test({int typedefX}) {}
+void test({int typedefX: 42}) {}
+void test({int typedefX = 42}) {}
+
+void test(int varX) {}
+void test([int varX]) {}
+void test([int varX = 42]) {}
+void test({int varX}) {}
+void test({int varX: 42}) {}
+void test({int varX = 42}) {}
+
+void test(int voidX) {}
+void test([int voidX]) {}
+void test([int voidX = 42]) {}
+void test({int voidX}) {}
+void test({int voidX: 42}) {}
+void test({int voidX = 42}) {}
+
+void test(int whileX) {}
+void test([int whileX]) {}
+void test([int whileX = 42]) {}
+void test({int whileX}) {}
+void test({int whileX: 42}) {}
+void test({int whileX = 42}) {}
+
+void test(int withX) {}
+void test([int withX]) {}
+void test([int withX = 42]) {}
+void test({int withX}) {}
+void test({int withX: 42}) {}
+void test({int withX = 42}) {}
+
+void test(int yieldX) {}
+void test([int yieldX]) {}
+void test([int yieldX = 42]) {}
+void test({int yieldX}) {}
+void test({int yieldX: 42}) {}
+void test({int yieldX = 42}) {}
+
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] abstractX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] abstractX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] abstractX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] abstractX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] abstractX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] abstractX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] asX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] asX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] asX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] asX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] asX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] asX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] assertX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] assertX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] assertX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] assertX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] assertX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] assertX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] asyncX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] asyncX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] asyncX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] asyncX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] asyncX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] asyncX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] awaitX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] awaitX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] awaitX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] awaitX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] awaitX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] awaitX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] breakX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] breakX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] breakX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] breakX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] breakX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] breakX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] caseX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] caseX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] caseX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] caseX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] caseX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] caseX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] catchX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] catchX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] catchX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] catchX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] catchX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] catchX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] classX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] classX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] classX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] classX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] classX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] classX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] constX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] constX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] constX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] constX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] constX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] constX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] continueX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] continueX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] continueX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] continueX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] continueX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] continueX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] covariantX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] covariantX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] covariantX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] covariantX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] covariantX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] covariantX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] defaultX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] defaultX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] defaultX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] defaultX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] defaultX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] defaultX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] deferredX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] deferredX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] deferredX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] deferredX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] deferredX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] deferredX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] doX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] doX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] doX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] doX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] doX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] doX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] dynamicX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] dynamicX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] dynamicX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] dynamicX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] dynamicX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] dynamicX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] elseX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] elseX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] elseX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] elseX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] elseX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] elseX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] enumX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] enumX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] enumX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] enumX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] enumX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] enumX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] exportX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] exportX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] exportX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] exportX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] exportX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] exportX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] extendsX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extendsX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extendsX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extendsX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extendsX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extendsX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] extensionX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extensionX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] extensionX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extensionX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extensionX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] extensionX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] externalX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] externalX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] externalX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] externalX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] externalX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] externalX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] factoryX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] factoryX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] factoryX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] factoryX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] factoryX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] factoryX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] falseX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] falseX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] falseX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] falseX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] falseX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] falseX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] finalX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] finalX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] finalX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finalX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finalX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finalX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] finallyX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] finallyX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] finallyX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finallyX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finallyX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] finallyX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] forX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] forX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] forX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] forX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] forX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] forX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] FunctionX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] FunctionX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] FunctionX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] FunctionX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] FunctionX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] FunctionX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] getX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] getX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] getX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] getX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] getX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] getX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] hideX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] hideX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] hideX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] hideX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] hideX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] hideX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] ifX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] ifX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] ifX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] ifX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] ifX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] ifX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] implementsX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] implementsX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] implementsX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] implementsX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] implementsX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] implementsX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] importX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] importX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] importX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] importX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] importX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] importX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] inX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] inX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] inX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] inoutX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] inoutX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] inoutX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inoutX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inoutX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] inoutX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] interfaceX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] interfaceX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] interfaceX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] interfaceX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] interfaceX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] interfaceX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] isX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] isX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] isX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] isX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] isX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] isX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] lateX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] lateX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] lateX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] lateX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] lateX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] lateX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] libraryX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] libraryX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] libraryX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] libraryX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] libraryX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] libraryX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] mixinX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] mixinX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] mixinX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] mixinX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] mixinX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] mixinX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] nativeX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] nativeX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] nativeX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] nativeX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] nativeX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] nativeX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] newX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] newX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] newX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] newX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] newX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] newX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] nullX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] nullX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] nullX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] nullX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] nullX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] nullX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] ofX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] ofX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] ofX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] ofX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] ofX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] ofX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] onX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] onX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] onX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] onX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] onX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] onX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] operatorX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] operatorX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] operatorX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] operatorX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] operatorX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] operatorX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] outX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] outX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] outX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] outX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] outX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] outX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] partX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] partX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] partX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] partX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] partX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] partX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] patchX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] patchX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] patchX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] patchX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] patchX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] patchX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] requiredX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] requiredX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] requiredX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] requiredX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] requiredX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] requiredX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] rethrowX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] rethrowX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] rethrowX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] rethrowX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] rethrowX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] rethrowX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] returnX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] returnX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] returnX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] returnX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] returnX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] returnX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] setX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] setX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] setX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] setX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] setX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] setX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] showX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] showX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] showX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] showX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] showX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] showX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] sourceX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] sourceX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] sourceX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] sourceX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] sourceX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] sourceX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] staticX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] staticX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] staticX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] staticX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] staticX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] staticX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] superX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] superX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] superX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] superX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] superX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] superX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] switchX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] switchX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] switchX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] switchX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] switchX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] switchX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] syncX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] syncX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] syncX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] syncX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] syncX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] syncX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] thisX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] thisX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] thisX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] thisX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] thisX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] thisX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] throwX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] throwX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] throwX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] throwX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] throwX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] throwX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] trueX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] trueX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] trueX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] trueX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] trueX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] trueX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] tryX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] tryX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] tryX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] tryX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] tryX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] tryX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] typedefX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] typedefX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] typedefX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] typedefX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] typedefX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] typedefX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] varX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] varX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] varX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] varX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] varX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] varX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] voidX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] voidX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] voidX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] voidX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] voidX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] voidX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] whileX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] whileX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] whileX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] whileX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] whileX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] whileX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] withX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] withX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] withX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] withX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] withX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] withX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+void[KeywordToken] test[StringToken]([BeginToken]int[StringToken] yieldX[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] yieldX[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken][[BeginToken]int[StringToken] yieldX[StringToken] =[SimpleToken] 42[StringToken]][SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] yieldX[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] yieldX[StringToken]:[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+void[KeywordToken] test[StringToken]([BeginToken]{[BeginToken]int[StringToken] yieldX[StringToken] =[SimpleToken] 42[StringToken]}[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart
new file mode 100644
index 0000000..fc06480
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart
@@ -0,0 +1,2 @@
+f(x /* guess the user was typing here... */
+class C {}
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.expect
new file mode 100644
index 0000000..ef7191f
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.expect
@@ -0,0 +1,50 @@
+Problems reported:
+
+parser/error_recovery/keyword_named_formal_parameter_start_of_next_top_level:2:1: Expected a function body, but got 'class'.
+class C {}
+^^^^^
+
+parser/error_recovery/keyword_named_formal_parameter_start_of_next_top_level:1:2: Can't find ')' to match '('.
+f(x /* guess the user was typing here... */
+ ^
+
+beginCompilationUnit(f)
+  beginMetadataStar(f)
+  endMetadataStar(0)
+  beginTopLevelMember(f)
+    beginTopLevelMethod(UnmatchedToken((), null)
+      handleNoType(UnmatchedToken(())
+      handleIdentifier(f, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(x)
+        endMetadataStar(0)
+        beginFormalParameter(x, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(x, formalParameterDeclaration)
+          handleFormalParameterWithoutValue(class)
+        endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got 'class'., null, {lexeme: class}], class, class)
+      handleInvalidFunctionBody({)
+    endTopLevelMethod(f, null, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(C, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, C)
+      handleNoType(C)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleClassOrMixinImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinBody(DeclarationKind.Class, {)
+      endClassOrMixinBody(DeclarationKind.Class, 0, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
+  handleErrorToken(UnmatchedToken(())
+  handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), lexeme: (}], UnmatchedToken((), UnmatchedToken(())
+endCompilationUnit(2, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.intertwined.expect
new file mode 100644
index 0000000..044cefa
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.intertwined.expect
@@ -0,0 +1,79 @@
+parseUnit(UnmatchedToken(())
+  skipErrorTokens(UnmatchedToken(())
+  listener: beginCompilationUnit(f)
+  syntheticPreviousToken(f)
+  parseTopLevelDeclarationImpl(UnmatchedToken((), Instance of 'DirectiveContext')
+    parseMetadataStar(UnmatchedToken(())
+      listener: beginMetadataStar(f)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(UnmatchedToken(())
+      listener: beginTopLevelMember(f)
+      isReservedKeyword(()
+      parseTopLevelMethod(UnmatchedToken((), null, UnmatchedToken((), Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(UnmatchedToken((), null)
+        listener: handleNoType(UnmatchedToken(())
+        ensureIdentifierPotentiallyRecovered(UnmatchedToken((), topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(f, topLevelFunctionDeclaration)
+        parseMethodTypeVar(f)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(f, f, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(f, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+                parseMetadataStar(()
+                  listener: beginMetadataStar(x)
+                  listener: endMetadataStar(0)
+                listener: beginFormalParameter(x, MemberKind.TopLevelMethod, null, null, null)
+                listener: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(x, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue(class)
+                listener: endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              rewriter()
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+            reportRecoverableError(class, Message[ExpectedFunctionBody, Expected a function body, but got 'class'., null, {lexeme: class}])
+              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got 'class'., null, {lexeme: class}], class, class)
+            insertBlock())
+              rewriter()
+              rewriter()
+          listener: handleInvalidFunctionBody({)
+        listener: endTopLevelMethod(f, null, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, class)
+        listener: beginClassOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(C, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginClassDeclaration(class, null, C)
+        parseClass(C, class, class, C)
+          parseClassHeaderOpt(C, class, class)
+            parseClassExtendsOpt(C)
+              listener: handleNoType(C)
+              listener: handleClassExtends(null, 1)
+            parseWithClauseOpt(C)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinImplementsOpt(C)
+              listener: handleClassOrMixinImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(C, DeclarationKind.Class, C)
+            listener: beginClassOrMixinBody(DeclarationKind.Class, {)
+            notEofOrValue(}, })
+            listener: endClassOrMixinBody(DeclarationKind.Class, 0, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration()
+  reportAllErrorTokens(UnmatchedToken(())
+    listener: handleErrorToken(UnmatchedToken(())
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), lexeme: (}], UnmatchedToken((), UnmatchedToken(())
+  listener: endCompilationUnit(2, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.parser.expect
new file mode 100644
index 0000000..2ce1661
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.parser.expect
@@ -0,0 +1,9 @@
+NOTICE: Stream was rewritten by parser!
+
+f(x
+){}class C {}
+
+
+[UnmatchedToken]f[StringToken]([BeginToken]x[StringToken]
+)[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]class[KeywordToken] C[StringToken] {[BeginToken]}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.scanner.expect
new file mode 100644
index 0000000..ca0f491
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.scanner.expect
@@ -0,0 +1,7 @@
+f(x
+class C {}
+)
+
+[UnmatchedToken]f[StringToken]([BeginToken]x[StringToken]
+class[KeywordToken] C[StringToken] {[BeginToken]}[SimpleToken]
+)[SyntheticToken][SimpleToken]
diff --git a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.textual_outline.expect b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.textual_outline.expect
index 00f5ffc..2795d4c 100644
--- a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.textual_outline.expect
@@ -1,7 +1,7 @@
 // @dart = 2.9
 class C {
-  C.a(this.);
+  C.a(this);
   C.b(this.);
-  C.c(this., p);
+  C.c(this, p);
   C.d(this., p);
 }
diff --git a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.expect b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.expect
index ec23930..2967d68 100644
--- a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.expect
@@ -2,28 +2,20 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:6:11: Error: Expected '.' before this.
+// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:6:7: Error: 'this' can't be used as an identifier because it's a keyword.
+// Try renaming this to be an identifier that isn't a keyword.
 //   C.a(this);
-//           ^
-//
-// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:6:11: Error: Expected an identifier, but got ')'.
-// Try inserting an identifier before ')'.
-//   C.a(this);
-//           ^
+//       ^^^^
 //
 // pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:7:12: Error: Expected an identifier, but got ')'.
 // Try inserting an identifier before ')'.
 //   C.b(this.);
 //            ^
 //
-// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:8:11: Error: Expected '.' before this.
+// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:8:7: Error: 'this' can't be used as an identifier because it's a keyword.
+// Try renaming this to be an identifier that isn't a keyword.
 //   C.c(this, p);
-//           ^
-//
-// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:8:11: Error: Expected an identifier, but got ','.
-// Try inserting an identifier before ','.
-//   C.c(this, p);
-//           ^
+//       ^^^^
 //
 // pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:9:12: Error: Expected an identifier, but got ','.
 // Try inserting an identifier before ','.
@@ -34,13 +26,13 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor a() → self::C*
+  constructor a(dynamic this) → self::C*
     : super core::Object::•()
     ;
   constructor b() → self::C*
     : super core::Object::•()
     ;
-  constructor c() → self::C*
+  constructor c(dynamic this, dynamic p) → self::C*
     : super core::Object::•()
     ;
   constructor d() → self::C*
diff --git a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.outline.expect
index 39fdd1f..c23e2de 100644
--- a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.outline.expect
@@ -2,28 +2,20 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:6:11: Error: Expected '.' before this.
+// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:6:7: Error: 'this' can't be used as an identifier because it's a keyword.
+// Try renaming this to be an identifier that isn't a keyword.
 //   C.a(this);
-//           ^
-//
-// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:6:11: Error: Expected an identifier, but got ')'.
-// Try inserting an identifier before ')'.
-//   C.a(this);
-//           ^
+//       ^^^^
 //
 // pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:7:12: Error: Expected an identifier, but got ')'.
 // Try inserting an identifier before ')'.
 //   C.b(this.);
 //            ^
 //
-// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:8:11: Error: Expected '.' before this.
+// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:8:7: Error: 'this' can't be used as an identifier because it's a keyword.
+// Try renaming this to be an identifier that isn't a keyword.
 //   C.c(this, p);
-//           ^
-//
-// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:8:11: Error: Expected an identifier, but got ','.
-// Try inserting an identifier before ','.
-//   C.c(this, p);
-//           ^
+//       ^^^^
 //
 // pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:9:12: Error: Expected an identifier, but got ','.
 // Try inserting an identifier before ','.
@@ -34,11 +26,11 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor a() → self::C*
+  constructor a(dynamic this) → self::C*
     ;
   constructor b() → self::C*
     ;
-  constructor c() → self::C*
+  constructor c(dynamic this, dynamic p) → self::C*
     ;
   constructor d() → self::C*
     ;
diff --git a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.transformed.expect
index ec23930..2967d68 100644
--- a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.transformed.expect
@@ -2,28 +2,20 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:6:11: Error: Expected '.' before this.
+// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:6:7: Error: 'this' can't be used as an identifier because it's a keyword.
+// Try renaming this to be an identifier that isn't a keyword.
 //   C.a(this);
-//           ^
-//
-// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:6:11: Error: Expected an identifier, but got ')'.
-// Try inserting an identifier before ')'.
-//   C.a(this);
-//           ^
+//       ^^^^
 //
 // pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:7:12: Error: Expected an identifier, but got ')'.
 // Try inserting an identifier before ')'.
 //   C.b(this.);
 //            ^
 //
-// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:8:11: Error: Expected '.' before this.
+// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:8:7: Error: 'this' can't be used as an identifier because it's a keyword.
+// Try renaming this to be an identifier that isn't a keyword.
 //   C.c(this, p);
-//           ^
-//
-// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:8:11: Error: Expected an identifier, but got ','.
-// Try inserting an identifier before ','.
-//   C.c(this, p);
-//           ^
+//       ^^^^
 //
 // pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:9:12: Error: Expected an identifier, but got ','.
 // Try inserting an identifier before ','.
@@ -34,13 +26,13 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor a() → self::C*
+  constructor a(dynamic this) → self::C*
     : super core::Object::•()
     ;
   constructor b() → self::C*
     : super core::Object::•()
     ;
-  constructor c() → self::C*
+  constructor c(dynamic this, dynamic p) → self::C*
     : super core::Object::•()
     ;
   constructor d() → self::C*
diff --git a/tests/language/constructor/reference_test.dart b/tests/language/constructor/reference_test.dart
index 46892bb..ddbd57d 100644
--- a/tests/language/constructor/reference_test.dart
+++ b/tests/language/constructor/reference_test.dart
@@ -105,11 +105,13 @@
   // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
   Foo.bar<int>.baz();
 //^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
+// [analyzer] COMPILE_TIME_ERROR.DISALLOWED_TYPE_INSTANTIATION_EXPRESSION
 //    ^
 // [cfe] A constructor invocation can't have type arguments after the constructor name.
 //             ^
 // [cfe] Method not found: 'Foo.bar.baz'.
+  //           ^^^
+  // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_METHOD
   Foo.bar.baz<int>();
 //    ^
 // [cfe] Getter not found: 'bar'.
diff --git a/tests/language_2/constructor/reference_test.dart b/tests/language_2/constructor/reference_test.dart
index ec284ab..402f266 100644
--- a/tests/language_2/constructor/reference_test.dart
+++ b/tests/language_2/constructor/reference_test.dart
@@ -107,11 +107,13 @@
   // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
   Foo.bar<int>.baz();
 //^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
+// [analyzer] COMPILE_TIME_ERROR.DISALLOWED_TYPE_INSTANTIATION_EXPRESSION
 //    ^
 // [cfe] A constructor invocation can't have type arguments after the constructor name.
 //             ^
 // [cfe] Method not found: 'Foo.bar.baz'.
+  //           ^^^
+  // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_METHOD
   Foo.bar.baz<int>();
 //    ^
 // [cfe] Getter not found: 'bar'.
diff --git a/tools/VERSION b/tools/VERSION
index 798680b..b6717ad 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 15
 PATCH 0
-PRERELEASE 44
+PRERELEASE 45
 PRERELEASE_PATCH 0
\ No newline at end of file