More optimizations for summary2 storage format.

1. Unwrap ArgumentList and TypeArgumentList.

2. Don't even try to write and read tokens.

Performance difference does not look significant, but we are now
talking about something like 5% or 10% difference with summary1, so
probably any improvement matters.

R=brianwilkerson@google.com

Change-Id: I5bdd090e1897cfdf596a99af8a198d0078fc7d18
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102280
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/summary/format.dart b/pkg/analyzer/lib/src/summary/format.dart
index a83f7c0..0f0f93e 100644
--- a/pkg/analyzer/lib/src/summary/format.dart
+++ b/pkg/analyzer/lib/src/summary/format.dart
@@ -4726,14 +4726,11 @@
   LinkedNodeBuilder _variantField_11;
   List<LinkedNodeBuilder> _variantField_4;
   LinkedNodeBuilder _variantField_6;
-  int _variantField_15;
   LinkedNodeBuilder _variantField_7;
   int _variantField_17;
   LinkedNodeTypeBuilder _variantField_23;
   LinkedNodeBuilder _variantField_8;
-  int _variantField_16;
-  int _variantField_18;
-  int _variantField_19;
+  int _variantField_15;
   idl.UnlinkedTokenType _variantField_28;
   bool _variantField_27;
   LinkedNodeBuilder _variantField_9;
@@ -4748,20 +4745,20 @@
   LinkedNodeBuilder _variantField_10;
   idl.LinkedNodeFormalParameterKind _variantField_26;
   double _variantField_21;
-  bool _variantField_37;
   LinkedNodeTypeBuilder _variantField_25;
   int _flags;
-  String _variantField_41;
+  String _variantField_1;
+  int _variantField_16;
   String _variantField_30;
   LinkedNodeBuilder _variantField_14;
-  bool _isSynthetic;
   idl.LinkedNodeKind _kind;
   String _name;
   String _variantField_20;
   bool _variantField_31;
-  idl.UnlinkedTokenType _variantField_40;
+  idl.UnlinkedTokenType _variantField_38;
   TopLevelInferenceErrorBuilder _variantField_35;
   String _variantField_22;
+  int _variantField_19;
   LinkedNodeVariablesDeclarationBuilder _variantField_32;
 
   @override
@@ -4892,6 +4889,12 @@
   }
 
   @override
+  List<LinkedNodeBuilder> get instanceCreationExpression_arguments {
+    assert(kind == idl.LinkedNodeKind.instanceCreationExpression);
+    return _variantField_2 ??= <LinkedNodeBuilder>[];
+  }
+
+  @override
   List<LinkedNodeBuilder> get labeledStatement_labels {
     assert(kind == idl.LinkedNodeKind.labeledStatement);
     return _variantField_2 ??= <LinkedNodeBuilder>[];
@@ -4904,12 +4907,6 @@
   }
 
   @override
-  List<LinkedNodeBuilder> get listLiteral_elements {
-    assert(kind == idl.LinkedNodeKind.listLiteral);
-    return _variantField_2 ??= <LinkedNodeBuilder>[];
-  }
-
-  @override
   List<LinkedNodeBuilder> get namespaceDirective_combinators {
     assert(kind == idl.LinkedNodeKind.exportDirective ||
         kind == idl.LinkedNodeKind.importDirective);
@@ -4923,12 +4920,6 @@
   }
 
   @override
-  List<LinkedNodeBuilder> get setOrMapLiteral_elements {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    return _variantField_2 ??= <LinkedNodeBuilder>[];
-  }
-
-  @override
   List<LinkedNodeBuilder> get stringInterpolation_elements {
     assert(kind == idl.LinkedNodeKind.stringInterpolation);
     return _variantField_2 ??= <LinkedNodeBuilder>[];
@@ -4953,6 +4944,19 @@
   }
 
   @override
+  List<LinkedNodeBuilder> get typedLiteral_typeArguments {
+    assert(kind == idl.LinkedNodeKind.listLiteral ||
+        kind == idl.LinkedNodeKind.setOrMapLiteral);
+    return _variantField_2 ??= <LinkedNodeBuilder>[];
+  }
+
+  @override
+  List<LinkedNodeBuilder> get typeName_typeArguments {
+    assert(kind == idl.LinkedNodeKind.typeName);
+    return _variantField_2 ??= <LinkedNodeBuilder>[];
+  }
+
+  @override
   List<LinkedNodeBuilder> get typeParameterList_typeParameters {
     assert(kind == idl.LinkedNodeKind.typeParameterList);
     return _variantField_2 ??= <LinkedNodeBuilder>[];
@@ -5025,6 +5029,11 @@
     _variantField_2 = value;
   }
 
+  set instanceCreationExpression_arguments(List<LinkedNodeBuilder> value) {
+    assert(kind == idl.LinkedNodeKind.instanceCreationExpression);
+    _variantField_2 = value;
+  }
+
   set labeledStatement_labels(List<LinkedNodeBuilder> value) {
     assert(kind == idl.LinkedNodeKind.labeledStatement);
     _variantField_2 = value;
@@ -5035,11 +5044,6 @@
     _variantField_2 = value;
   }
 
-  set listLiteral_elements(List<LinkedNodeBuilder> value) {
-    assert(kind == idl.LinkedNodeKind.listLiteral);
-    _variantField_2 = value;
-  }
-
   set namespaceDirective_combinators(List<LinkedNodeBuilder> value) {
     assert(kind == idl.LinkedNodeKind.exportDirective ||
         kind == idl.LinkedNodeKind.importDirective);
@@ -5051,11 +5055,6 @@
     _variantField_2 = value;
   }
 
-  set setOrMapLiteral_elements(List<LinkedNodeBuilder> value) {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    _variantField_2 = value;
-  }
-
   set stringInterpolation_elements(List<LinkedNodeBuilder> value) {
     assert(kind == idl.LinkedNodeKind.stringInterpolation);
     _variantField_2 = value;
@@ -5076,6 +5075,17 @@
     _variantField_2 = value;
   }
 
+  set typedLiteral_typeArguments(List<LinkedNodeBuilder> value) {
+    assert(kind == idl.LinkedNodeKind.listLiteral ||
+        kind == idl.LinkedNodeKind.setOrMapLiteral);
+    _variantField_2 = value;
+  }
+
+  set typeName_typeArguments(List<LinkedNodeBuilder> value) {
+    assert(kind == idl.LinkedNodeKind.typeName);
+    _variantField_2 = value;
+  }
+
   set typeParameterList_typeParameters(List<LinkedNodeBuilder> value) {
     assert(kind == idl.LinkedNodeKind.typeParameterList);
     _variantField_2 = value;
@@ -5478,12 +5488,6 @@
   }
 
   @override
-  LinkedNodeBuilder get instanceCreationExpression_arguments {
-    assert(kind == idl.LinkedNodeKind.instanceCreationExpression);
-    return _variantField_6;
-  }
-
-  @override
   LinkedNodeBuilder get interpolationExpression_expression {
     assert(kind == idl.LinkedNodeKind.interpolationExpression);
     return _variantField_6;
@@ -5902,11 +5906,6 @@
     _variantField_6 = value;
   }
 
-  set instanceCreationExpression_arguments(LinkedNodeBuilder value) {
-    assert(kind == idl.LinkedNodeKind.instanceCreationExpression);
-    _variantField_6 = value;
-  }
-
   set interpolationExpression_expression(LinkedNodeBuilder value) {
     assert(kind == idl.LinkedNodeKind.interpolationExpression);
     _variantField_6 = value;
@@ -6078,940 +6077,6 @@
   }
 
   @override
-  int get annotation_atSign {
-    assert(kind == idl.LinkedNodeKind.annotation);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get argumentList_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.argumentList);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get asExpression_asOperator {
-    assert(kind == idl.LinkedNodeKind.asExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get assertInitializer_assertKeyword {
-    assert(kind == idl.LinkedNodeKind.assertInitializer);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get assertStatement_assertKeyword {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get assignmentExpression_element {
-    assert(kind == idl.LinkedNodeKind.assignmentExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get awaitExpression_awaitKeyword {
-    assert(kind == idl.LinkedNodeKind.awaitExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get binaryExpression_element {
-    assert(kind == idl.LinkedNodeKind.binaryExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get block_leftBracket {
-    assert(kind == idl.LinkedNodeKind.block);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get blockFunctionBody_keyword {
-    assert(kind == idl.LinkedNodeKind.blockFunctionBody);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get breakStatement_breakKeyword {
-    assert(kind == idl.LinkedNodeKind.breakStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get catchClause_catchKeyword {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get commentReference_newKeyword {
-    assert(kind == idl.LinkedNodeKind.commentReference);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get compilationUnit_beginToken {
-    assert(kind == idl.LinkedNodeKind.compilationUnit);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get conditionalExpression_colon {
-    assert(kind == idl.LinkedNodeKind.conditionalExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get configuration_ifKeyword {
-    assert(kind == idl.LinkedNodeKind.configuration);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get constructorFieldInitializer_equals {
-    assert(kind == idl.LinkedNodeKind.constructorFieldInitializer);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get constructorName_element {
-    assert(kind == idl.LinkedNodeKind.constructorName);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get continueStatement_continueKeyword {
-    assert(kind == idl.LinkedNodeKind.continueStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get declaredIdentifier_keyword {
-    assert(kind == idl.LinkedNodeKind.declaredIdentifier);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get defaultFormalParameter_separator {
-    assert(kind == idl.LinkedNodeKind.defaultFormalParameter);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get doStatement_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get emptyFunctionBody_semicolon {
-    assert(kind == idl.LinkedNodeKind.emptyFunctionBody);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get emptyStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.emptyStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get expressionFunctionBody_arrow {
-    assert(kind == idl.LinkedNodeKind.expressionFunctionBody);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get expressionStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.expressionStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get extendsClause_extendsKeyword {
-    assert(kind == idl.LinkedNodeKind.extendsClause);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get forEachParts_inKeyword {
-    assert(kind == idl.LinkedNodeKind.forEachPartsWithDeclaration ||
-        kind == idl.LinkedNodeKind.forEachPartsWithIdentifier);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get formalParameterList_leftDelimiter {
-    assert(kind == idl.LinkedNodeKind.formalParameterList);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get forMixin_awaitKeyword {
-    assert(kind == idl.LinkedNodeKind.forElement ||
-        kind == idl.LinkedNodeKind.forStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get forParts_leftSeparator {
-    assert(kind == idl.LinkedNodeKind.forPartsWithDeclarations ||
-        kind == idl.LinkedNodeKind.forPartsWithExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get genericFunctionType_functionKeyword {
-    assert(kind == idl.LinkedNodeKind.genericFunctionType);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get ifMixin_elseKeyword {
-    assert(kind == idl.LinkedNodeKind.ifElement ||
-        kind == idl.LinkedNodeKind.ifStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get implementsClause_implementsKeyword {
-    assert(kind == idl.LinkedNodeKind.implementsClause);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get importDirective_prefixOffset {
-    assert(kind == idl.LinkedNodeKind.importDirective);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get indexExpression_element {
-    assert(kind == idl.LinkedNodeKind.indexExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get interpolationExpression_leftBracket {
-    assert(kind == idl.LinkedNodeKind.interpolationExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get interpolationString_token {
-    assert(kind == idl.LinkedNodeKind.interpolationString);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get isExpression_isOperator {
-    assert(kind == idl.LinkedNodeKind.isExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get label_colon {
-    assert(kind == idl.LinkedNodeKind.label);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get listLiteral_leftBracket {
-    assert(kind == idl.LinkedNodeKind.listLiteral);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get mapLiteralEntry_separator {
-    assert(kind == idl.LinkedNodeKind.mapLiteralEntry);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get methodInvocation_operator {
-    assert(kind == idl.LinkedNodeKind.methodInvocation);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get mixinDeclaration_mixinKeyword {
-    assert(kind == idl.LinkedNodeKind.mixinDeclaration);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get nativeClause_nativeKeyword {
-    assert(kind == idl.LinkedNodeKind.nativeClause);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get nativeFunctionBody_nativeKeyword {
-    assert(kind == idl.LinkedNodeKind.nativeFunctionBody);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get nullLiteral_literal {
-    assert(kind == idl.LinkedNodeKind.nullLiteral);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get onClause_onKeyword {
-    assert(kind == idl.LinkedNodeKind.onClause);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get parenthesizedExpression_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.parenthesizedExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get postfixExpression_element {
-    assert(kind == idl.LinkedNodeKind.postfixExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get prefixedIdentifier_period {
-    assert(kind == idl.LinkedNodeKind.prefixedIdentifier);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get prefixExpression_element {
-    assert(kind == idl.LinkedNodeKind.prefixExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get propertyAccess_operator {
-    assert(kind == idl.LinkedNodeKind.propertyAccess);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get redirectingConstructorInvocation_element {
-    assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get rethrowExpression_rethrowKeyword {
-    assert(kind == idl.LinkedNodeKind.rethrowExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get returnStatement_returnKeyword {
-    assert(kind == idl.LinkedNodeKind.returnStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get scriptTag_scriptTag {
-    assert(kind == idl.LinkedNodeKind.scriptTag);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get setOrMapLiteral_leftBracket {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get simpleIdentifier_element {
-    assert(kind == idl.LinkedNodeKind.simpleIdentifier);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get superConstructorInvocation_element {
-    assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get superExpression_superKeyword {
-    assert(kind == idl.LinkedNodeKind.superExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get switchMember_keyword {
-    assert(kind == idl.LinkedNodeKind.switchCase ||
-        kind == idl.LinkedNodeKind.switchDefault);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get switchStatement_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get symbolLiteral_poundSign {
-    assert(kind == idl.LinkedNodeKind.symbolLiteral);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get thisExpression_thisKeyword {
-    assert(kind == idl.LinkedNodeKind.thisExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get throwExpression_throwKeyword {
-    assert(kind == idl.LinkedNodeKind.throwExpression);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get topLevelVariableDeclaration_semicolon {
-    assert(kind == idl.LinkedNodeKind.topLevelVariableDeclaration);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get tryStatement_finallyKeyword {
-    assert(kind == idl.LinkedNodeKind.tryStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get typeArgumentList_leftBracket {
-    assert(kind == idl.LinkedNodeKind.typeArgumentList);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get typeName_question {
-    assert(kind == idl.LinkedNodeKind.typeName);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get typeParameter_extendsKeyword {
-    assert(kind == idl.LinkedNodeKind.typeParameter);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get typeParameterList_leftBracket {
-    assert(kind == idl.LinkedNodeKind.typeParameterList);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get variableDeclaration_equals {
-    assert(kind == idl.LinkedNodeKind.variableDeclaration);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get variableDeclarationStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.variableDeclarationStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get whileStatement_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.whileStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get withClause_withKeyword {
-    assert(kind == idl.LinkedNodeKind.withClause);
-    return _variantField_15 ??= 0;
-  }
-
-  @override
-  int get yieldStatement_yieldKeyword {
-    assert(kind == idl.LinkedNodeKind.yieldStatement);
-    return _variantField_15 ??= 0;
-  }
-
-  set annotation_atSign(int value) {
-    assert(kind == idl.LinkedNodeKind.annotation);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set argumentList_leftParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.argumentList);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set asExpression_asOperator(int value) {
-    assert(kind == idl.LinkedNodeKind.asExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set assertInitializer_assertKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.assertInitializer);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set assertStatement_assertKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set assignmentExpression_element(int value) {
-    assert(kind == idl.LinkedNodeKind.assignmentExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set awaitExpression_awaitKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.awaitExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set binaryExpression_element(int value) {
-    assert(kind == idl.LinkedNodeKind.binaryExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set block_leftBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.block);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set blockFunctionBody_keyword(int value) {
-    assert(kind == idl.LinkedNodeKind.blockFunctionBody);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set breakStatement_breakKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.breakStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set catchClause_catchKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set commentReference_newKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.commentReference);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set compilationUnit_beginToken(int value) {
-    assert(kind == idl.LinkedNodeKind.compilationUnit);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set conditionalExpression_colon(int value) {
-    assert(kind == idl.LinkedNodeKind.conditionalExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set configuration_ifKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.configuration);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set constructorFieldInitializer_equals(int value) {
-    assert(kind == idl.LinkedNodeKind.constructorFieldInitializer);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set constructorName_element(int value) {
-    assert(kind == idl.LinkedNodeKind.constructorName);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set continueStatement_continueKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.continueStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set declaredIdentifier_keyword(int value) {
-    assert(kind == idl.LinkedNodeKind.declaredIdentifier);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set defaultFormalParameter_separator(int value) {
-    assert(kind == idl.LinkedNodeKind.defaultFormalParameter);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set doStatement_leftParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set emptyFunctionBody_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.emptyFunctionBody);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set emptyStatement_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.emptyStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set expressionFunctionBody_arrow(int value) {
-    assert(kind == idl.LinkedNodeKind.expressionFunctionBody);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set expressionStatement_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.expressionStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set extendsClause_extendsKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.extendsClause);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set forEachParts_inKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.forEachPartsWithDeclaration ||
-        kind == idl.LinkedNodeKind.forEachPartsWithIdentifier);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set formalParameterList_leftDelimiter(int value) {
-    assert(kind == idl.LinkedNodeKind.formalParameterList);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set forMixin_awaitKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.forElement ||
-        kind == idl.LinkedNodeKind.forStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set forParts_leftSeparator(int value) {
-    assert(kind == idl.LinkedNodeKind.forPartsWithDeclarations ||
-        kind == idl.LinkedNodeKind.forPartsWithExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set genericFunctionType_functionKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.genericFunctionType);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set ifMixin_elseKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.ifElement ||
-        kind == idl.LinkedNodeKind.ifStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set implementsClause_implementsKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.implementsClause);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set importDirective_prefixOffset(int value) {
-    assert(kind == idl.LinkedNodeKind.importDirective);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set indexExpression_element(int value) {
-    assert(kind == idl.LinkedNodeKind.indexExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set interpolationExpression_leftBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.interpolationExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set interpolationString_token(int value) {
-    assert(kind == idl.LinkedNodeKind.interpolationString);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set isExpression_isOperator(int value) {
-    assert(kind == idl.LinkedNodeKind.isExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set label_colon(int value) {
-    assert(kind == idl.LinkedNodeKind.label);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set listLiteral_leftBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.listLiteral);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set mapLiteralEntry_separator(int value) {
-    assert(kind == idl.LinkedNodeKind.mapLiteralEntry);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set methodInvocation_operator(int value) {
-    assert(kind == idl.LinkedNodeKind.methodInvocation);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set mixinDeclaration_mixinKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.mixinDeclaration);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set nativeClause_nativeKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.nativeClause);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set nativeFunctionBody_nativeKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.nativeFunctionBody);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set nullLiteral_literal(int value) {
-    assert(kind == idl.LinkedNodeKind.nullLiteral);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set onClause_onKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.onClause);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set parenthesizedExpression_leftParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.parenthesizedExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set postfixExpression_element(int value) {
-    assert(kind == idl.LinkedNodeKind.postfixExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set prefixedIdentifier_period(int value) {
-    assert(kind == idl.LinkedNodeKind.prefixedIdentifier);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set prefixExpression_element(int value) {
-    assert(kind == idl.LinkedNodeKind.prefixExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set propertyAccess_operator(int value) {
-    assert(kind == idl.LinkedNodeKind.propertyAccess);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set redirectingConstructorInvocation_element(int value) {
-    assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set rethrowExpression_rethrowKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.rethrowExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set returnStatement_returnKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.returnStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set scriptTag_scriptTag(int value) {
-    assert(kind == idl.LinkedNodeKind.scriptTag);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set setOrMapLiteral_leftBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set simpleIdentifier_element(int value) {
-    assert(kind == idl.LinkedNodeKind.simpleIdentifier);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set superConstructorInvocation_element(int value) {
-    assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set superExpression_superKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.superExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set switchMember_keyword(int value) {
-    assert(kind == idl.LinkedNodeKind.switchCase ||
-        kind == idl.LinkedNodeKind.switchDefault);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set switchStatement_leftParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set symbolLiteral_poundSign(int value) {
-    assert(kind == idl.LinkedNodeKind.symbolLiteral);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set thisExpression_thisKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.thisExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set throwExpression_throwKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.throwExpression);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set topLevelVariableDeclaration_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.topLevelVariableDeclaration);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set tryStatement_finallyKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.tryStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set typeArgumentList_leftBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.typeArgumentList);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set typeName_question(int value) {
-    assert(kind == idl.LinkedNodeKind.typeName);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set typeParameter_extendsKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.typeParameter);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set typeParameterList_leftBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.typeParameterList);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set variableDeclaration_equals(int value) {
-    assert(kind == idl.LinkedNodeKind.variableDeclaration);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set variableDeclarationStatement_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.variableDeclarationStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set whileStatement_leftParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.whileStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set withClause_withKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.withClause);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  set yieldStatement_yieldKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.yieldStatement);
-    assert(value == null || value >= 0);
-    _variantField_15 = value;
-  }
-
-  @override
   LinkedNodeBuilder get annotation_constructorName {
     assert(kind == idl.LinkedNodeKind.annotation);
     return _variantField_7;
@@ -7276,12 +6341,6 @@
   }
 
   @override
-  LinkedNodeBuilder get typeName_typeArguments {
-    assert(kind == idl.LinkedNodeKind.typeName);
-    return _variantField_7;
-  }
-
-  @override
   LinkedNodeBuilder get whileStatement_condition {
     assert(kind == idl.LinkedNodeKind.whileStatement);
     return _variantField_7;
@@ -7508,11 +6567,6 @@
     _variantField_7 = value;
   }
 
-  set typeName_typeArguments(LinkedNodeBuilder value) {
-    assert(kind == idl.LinkedNodeKind.typeName);
-    _variantField_7 = value;
-  }
-
   set whileStatement_condition(LinkedNodeBuilder value) {
     assert(kind == idl.LinkedNodeKind.whileStatement);
     _variantField_7 = value;
@@ -7525,243 +6579,23 @@
   }
 
   @override
-  int get assertInitializer_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.assertInitializer);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get assertStatement_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get catchClause_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get configuration_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.configuration);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get constructorFieldInitializer_thisKeyword {
-    assert(kind == idl.LinkedNodeKind.constructorFieldInitializer);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get doStatement_doKeyword {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get expressionFunctionBody_semicolon {
-    assert(kind == idl.LinkedNodeKind.expressionFunctionBody);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get fieldFormalParameter_thisKeyword {
-    assert(kind == idl.LinkedNodeKind.fieldFormalParameter);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get formalParameterList_rightDelimiter {
-    assert(kind == idl.LinkedNodeKind.formalParameterList);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get forMixin_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.forElement ||
-        kind == idl.LinkedNodeKind.forStatement);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
   int get genericFunctionType_id {
     assert(kind == idl.LinkedNodeKind.genericFunctionType);
     return _variantField_17 ??= 0;
   }
 
-  @override
-  int get ifMixin_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.ifElement ||
-        kind == idl.LinkedNodeKind.ifStatement);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get indexExpression_leftBracket {
-    assert(kind == idl.LinkedNodeKind.indexExpression);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get methodDeclaration_operatorKeyword {
-    assert(kind == idl.LinkedNodeKind.methodDeclaration);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get redirectingConstructorInvocation_thisKeyword {
-    assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get superConstructorInvocation_superKeyword {
-    assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get switchStatement_switchKeyword {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get whileStatement_whileKeyword {
-    assert(kind == idl.LinkedNodeKind.whileStatement);
-    return _variantField_17 ??= 0;
-  }
-
-  @override
-  int get yieldStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.yieldStatement);
-    return _variantField_17 ??= 0;
-  }
-
   set annotation_element(int value) {
     assert(kind == idl.LinkedNodeKind.annotation);
     assert(value == null || value >= 0);
     _variantField_17 = value;
   }
 
-  set assertInitializer_leftParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.assertInitializer);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set assertStatement_leftParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set catchClause_leftParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set configuration_rightParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.configuration);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set constructorFieldInitializer_thisKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.constructorFieldInitializer);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set doStatement_doKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set expressionFunctionBody_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.expressionFunctionBody);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set fieldFormalParameter_thisKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.fieldFormalParameter);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set formalParameterList_rightDelimiter(int value) {
-    assert(kind == idl.LinkedNodeKind.formalParameterList);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set forMixin_leftParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.forElement ||
-        kind == idl.LinkedNodeKind.forStatement);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
   set genericFunctionType_id(int value) {
     assert(kind == idl.LinkedNodeKind.genericFunctionType);
     assert(value == null || value >= 0);
     _variantField_17 = value;
   }
 
-  set ifMixin_leftParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.ifElement ||
-        kind == idl.LinkedNodeKind.ifStatement);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set indexExpression_leftBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.indexExpression);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set methodDeclaration_operatorKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.methodDeclaration);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set redirectingConstructorInvocation_thisKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set superConstructorInvocation_superKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set switchStatement_switchKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set whileStatement_whileKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.whileStatement);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
-  set yieldStatement_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.yieldStatement);
-    assert(value == null || value >= 0);
-    _variantField_17 = value;
-  }
-
   @override
   LinkedNodeTypeBuilder get annotation_elementType {
     assert(kind == idl.LinkedNodeKind.annotation);
@@ -8072,907 +6906,165 @@
   }
 
   @override
-  int get annotation_period {
-    assert(kind == idl.LinkedNodeKind.annotation);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get argumentList_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.argumentList);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get assertInitializer_comma {
-    assert(kind == idl.LinkedNodeKind.assertInitializer);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get assertStatement_comma {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get assignmentExpression_operator {
+  int get assignmentExpression_element {
     assert(kind == idl.LinkedNodeKind.assignmentExpression);
-    return _variantField_16 ??= 0;
+    return _variantField_15 ??= 0;
   }
 
   @override
-  int get block_rightBracket {
-    assert(kind == idl.LinkedNodeKind.block);
-    return _variantField_16 ??= 0;
+  int get binaryExpression_element {
+    assert(kind == idl.LinkedNodeKind.binaryExpression);
+    return _variantField_15 ??= 0;
   }
 
   @override
-  int get blockFunctionBody_star {
-    assert(kind == idl.LinkedNodeKind.blockFunctionBody);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get breakStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.breakStatement);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get catchClause_comma {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get compilationUnit_endToken {
-    assert(kind == idl.LinkedNodeKind.compilationUnit);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get conditionalExpression_question {
-    assert(kind == idl.LinkedNodeKind.conditionalExpression);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get configuration_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.configuration);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get constructorFieldInitializer_period {
-    assert(kind == idl.LinkedNodeKind.constructorFieldInitializer);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get constructorName_period {
+  int get constructorName_element {
     assert(kind == idl.LinkedNodeKind.constructorName);
-    return _variantField_16 ??= 0;
+    return _variantField_15 ??= 0;
   }
 
   @override
-  int get continueStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.continueStatement);
-    return _variantField_16 ??= 0;
+  int get emptyFunctionBody_fake {
+    assert(kind == idl.LinkedNodeKind.emptyFunctionBody);
+    return _variantField_15 ??= 0;
   }
 
   @override
-  int get doStatement_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    return _variantField_16 ??= 0;
+  int get emptyStatement_fake {
+    assert(kind == idl.LinkedNodeKind.emptyStatement);
+    return _variantField_15 ??= 0;
   }
 
   @override
-  int get expressionFunctionBody_keyword {
-    assert(kind == idl.LinkedNodeKind.expressionFunctionBody);
-    return _variantField_16 ??= 0;
+  int get importDirective_prefixOffset {
+    assert(kind == idl.LinkedNodeKind.importDirective);
+    return _variantField_15 ??= 0;
   }
 
   @override
-  int get fieldDeclaration_semicolon {
-    assert(kind == idl.LinkedNodeKind.fieldDeclaration);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get formalParameterList_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.formalParameterList);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get forMixin_forKeyword {
-    assert(kind == idl.LinkedNodeKind.forElement ||
-        kind == idl.LinkedNodeKind.forStatement);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get forParts_rightSeparator {
-    assert(kind == idl.LinkedNodeKind.forPartsWithDeclarations ||
-        kind == idl.LinkedNodeKind.forPartsWithExpression);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get genericFunctionType_question {
-    assert(kind == idl.LinkedNodeKind.genericFunctionType);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get ifMixin_ifKeyword {
-    assert(kind == idl.LinkedNodeKind.ifElement ||
-        kind == idl.LinkedNodeKind.ifStatement);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get indexExpression_period {
+  int get indexExpression_element {
     assert(kind == idl.LinkedNodeKind.indexExpression);
-    return _variantField_16 ??= 0;
+    return _variantField_15 ??= 0;
   }
 
   @override
-  int get integerLiteral_value {
-    assert(kind == idl.LinkedNodeKind.integerLiteral);
-    return _variantField_16 ??= 0;
+  int get nullLiteral_fake {
+    assert(kind == idl.LinkedNodeKind.nullLiteral);
+    return _variantField_15 ??= 0;
   }
 
   @override
-  int get interpolationExpression_rightBracket {
-    assert(kind == idl.LinkedNodeKind.interpolationExpression);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get isExpression_notOperator {
-    assert(kind == idl.LinkedNodeKind.isExpression);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get listLiteral_rightBracket {
-    assert(kind == idl.LinkedNodeKind.listLiteral);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get nameOffset {
-    assert(kind == idl.LinkedNodeKind.classDeclaration ||
-        kind == idl.LinkedNodeKind.classTypeAlias ||
-        kind == idl.LinkedNodeKind.constructorDeclaration ||
-        kind == idl.LinkedNodeKind.enumConstantDeclaration ||
-        kind == idl.LinkedNodeKind.enumDeclaration ||
-        kind == idl.LinkedNodeKind.exportDirective ||
-        kind == idl.LinkedNodeKind.fieldFormalParameter ||
-        kind == idl.LinkedNodeKind.functionDeclaration ||
-        kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
-        kind == idl.LinkedNodeKind.functionTypeAlias ||
-        kind == idl.LinkedNodeKind.genericTypeAlias ||
-        kind == idl.LinkedNodeKind.importDirective ||
-        kind == idl.LinkedNodeKind.methodDeclaration ||
-        kind == idl.LinkedNodeKind.mixinDeclaration ||
-        kind == idl.LinkedNodeKind.partDirective ||
-        kind == idl.LinkedNodeKind.simpleFormalParameter ||
-        kind == idl.LinkedNodeKind.typeParameter ||
-        kind == idl.LinkedNodeKind.variableDeclaration);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get nativeFunctionBody_semicolon {
-    assert(kind == idl.LinkedNodeKind.nativeFunctionBody);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get parenthesizedExpression_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.parenthesizedExpression);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get partOfDirective_ofKeyword {
-    assert(kind == idl.LinkedNodeKind.partOfDirective);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get postfixExpression_operator {
+  int get postfixExpression_element {
     assert(kind == idl.LinkedNodeKind.postfixExpression);
-    return _variantField_16 ??= 0;
+    return _variantField_15 ??= 0;
   }
 
   @override
-  int get redirectingConstructorInvocation_period {
+  int get prefixExpression_element {
+    assert(kind == idl.LinkedNodeKind.prefixExpression);
+    return _variantField_15 ??= 0;
+  }
+
+  @override
+  int get redirectingConstructorInvocation_element {
     assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
-    return _variantField_16 ??= 0;
+    return _variantField_15 ??= 0;
   }
 
   @override
-  int get returnStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.returnStatement);
-    return _variantField_16 ??= 0;
+  int get simpleIdentifier_element {
+    assert(kind == idl.LinkedNodeKind.simpleIdentifier);
+    return _variantField_15 ??= 0;
   }
 
   @override
-  int get setOrMapLiteral_rightBracket {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get superConstructorInvocation_period {
+  int get superConstructorInvocation_element {
     assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
-    return _variantField_16 ??= 0;
+    return _variantField_15 ??= 0;
   }
 
-  @override
-  int get switchMember_colon {
-    assert(kind == idl.LinkedNodeKind.switchCase ||
-        kind == idl.LinkedNodeKind.switchDefault);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get switchStatement_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get tryStatement_tryKeyword {
-    assert(kind == idl.LinkedNodeKind.tryStatement);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get typeArgumentList_rightBracket {
-    assert(kind == idl.LinkedNodeKind.typeArgumentList);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get typeParameterList_rightBracket {
-    assert(kind == idl.LinkedNodeKind.typeParameterList);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get whileStatement_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.whileStatement);
-    return _variantField_16 ??= 0;
-  }
-
-  @override
-  int get yieldStatement_star {
-    assert(kind == idl.LinkedNodeKind.yieldStatement);
-    return _variantField_16 ??= 0;
-  }
-
-  set annotation_period(int value) {
-    assert(kind == idl.LinkedNodeKind.annotation);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set argumentList_rightParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.argumentList);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set assertInitializer_comma(int value) {
-    assert(kind == idl.LinkedNodeKind.assertInitializer);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set assertStatement_comma(int value) {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set assignmentExpression_operator(int value) {
+  set assignmentExpression_element(int value) {
     assert(kind == idl.LinkedNodeKind.assignmentExpression);
     assert(value == null || value >= 0);
-    _variantField_16 = value;
+    _variantField_15 = value;
   }
 
-  set block_rightBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.block);
+  set binaryExpression_element(int value) {
+    assert(kind == idl.LinkedNodeKind.binaryExpression);
     assert(value == null || value >= 0);
-    _variantField_16 = value;
+    _variantField_15 = value;
   }
 
-  set blockFunctionBody_star(int value) {
-    assert(kind == idl.LinkedNodeKind.blockFunctionBody);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set breakStatement_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.breakStatement);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set catchClause_comma(int value) {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set compilationUnit_endToken(int value) {
-    assert(kind == idl.LinkedNodeKind.compilationUnit);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set conditionalExpression_question(int value) {
-    assert(kind == idl.LinkedNodeKind.conditionalExpression);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set configuration_leftParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.configuration);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set constructorFieldInitializer_period(int value) {
-    assert(kind == idl.LinkedNodeKind.constructorFieldInitializer);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set constructorName_period(int value) {
+  set constructorName_element(int value) {
     assert(kind == idl.LinkedNodeKind.constructorName);
     assert(value == null || value >= 0);
-    _variantField_16 = value;
+    _variantField_15 = value;
   }
 
-  set continueStatement_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.continueStatement);
+  set emptyFunctionBody_fake(int value) {
+    assert(kind == idl.LinkedNodeKind.emptyFunctionBody);
     assert(value == null || value >= 0);
-    _variantField_16 = value;
+    _variantField_15 = value;
   }
 
-  set doStatement_rightParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.doStatement);
+  set emptyStatement_fake(int value) {
+    assert(kind == idl.LinkedNodeKind.emptyStatement);
     assert(value == null || value >= 0);
-    _variantField_16 = value;
+    _variantField_15 = value;
   }
 
-  set expressionFunctionBody_keyword(int value) {
-    assert(kind == idl.LinkedNodeKind.expressionFunctionBody);
+  set importDirective_prefixOffset(int value) {
+    assert(kind == idl.LinkedNodeKind.importDirective);
     assert(value == null || value >= 0);
-    _variantField_16 = value;
+    _variantField_15 = value;
   }
 
-  set fieldDeclaration_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.fieldDeclaration);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set formalParameterList_leftParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.formalParameterList);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set forMixin_forKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.forElement ||
-        kind == idl.LinkedNodeKind.forStatement);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set forParts_rightSeparator(int value) {
-    assert(kind == idl.LinkedNodeKind.forPartsWithDeclarations ||
-        kind == idl.LinkedNodeKind.forPartsWithExpression);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set genericFunctionType_question(int value) {
-    assert(kind == idl.LinkedNodeKind.genericFunctionType);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set ifMixin_ifKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.ifElement ||
-        kind == idl.LinkedNodeKind.ifStatement);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set indexExpression_period(int value) {
+  set indexExpression_element(int value) {
     assert(kind == idl.LinkedNodeKind.indexExpression);
     assert(value == null || value >= 0);
-    _variantField_16 = value;
+    _variantField_15 = value;
   }
 
-  set integerLiteral_value(int value) {
-    assert(kind == idl.LinkedNodeKind.integerLiteral);
+  set nullLiteral_fake(int value) {
+    assert(kind == idl.LinkedNodeKind.nullLiteral);
     assert(value == null || value >= 0);
-    _variantField_16 = value;
+    _variantField_15 = value;
   }
 
-  set interpolationExpression_rightBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.interpolationExpression);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set isExpression_notOperator(int value) {
-    assert(kind == idl.LinkedNodeKind.isExpression);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set listLiteral_rightBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.listLiteral);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set nameOffset(int value) {
-    assert(kind == idl.LinkedNodeKind.classDeclaration ||
-        kind == idl.LinkedNodeKind.classTypeAlias ||
-        kind == idl.LinkedNodeKind.constructorDeclaration ||
-        kind == idl.LinkedNodeKind.enumConstantDeclaration ||
-        kind == idl.LinkedNodeKind.enumDeclaration ||
-        kind == idl.LinkedNodeKind.exportDirective ||
-        kind == idl.LinkedNodeKind.fieldFormalParameter ||
-        kind == idl.LinkedNodeKind.functionDeclaration ||
-        kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
-        kind == idl.LinkedNodeKind.functionTypeAlias ||
-        kind == idl.LinkedNodeKind.genericTypeAlias ||
-        kind == idl.LinkedNodeKind.importDirective ||
-        kind == idl.LinkedNodeKind.methodDeclaration ||
-        kind == idl.LinkedNodeKind.mixinDeclaration ||
-        kind == idl.LinkedNodeKind.partDirective ||
-        kind == idl.LinkedNodeKind.simpleFormalParameter ||
-        kind == idl.LinkedNodeKind.typeParameter ||
-        kind == idl.LinkedNodeKind.variableDeclaration);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set nativeFunctionBody_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.nativeFunctionBody);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set parenthesizedExpression_rightParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.parenthesizedExpression);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set partOfDirective_ofKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.partOfDirective);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set postfixExpression_operator(int value) {
+  set postfixExpression_element(int value) {
     assert(kind == idl.LinkedNodeKind.postfixExpression);
     assert(value == null || value >= 0);
-    _variantField_16 = value;
+    _variantField_15 = value;
   }
 
-  set redirectingConstructorInvocation_period(int value) {
+  set prefixExpression_element(int value) {
+    assert(kind == idl.LinkedNodeKind.prefixExpression);
+    assert(value == null || value >= 0);
+    _variantField_15 = value;
+  }
+
+  set redirectingConstructorInvocation_element(int value) {
     assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
     assert(value == null || value >= 0);
-    _variantField_16 = value;
+    _variantField_15 = value;
   }
 
-  set returnStatement_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.returnStatement);
+  set simpleIdentifier_element(int value) {
+    assert(kind == idl.LinkedNodeKind.simpleIdentifier);
     assert(value == null || value >= 0);
-    _variantField_16 = value;
+    _variantField_15 = value;
   }
 
-  set setOrMapLiteral_rightBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set superConstructorInvocation_period(int value) {
+  set superConstructorInvocation_element(int value) {
     assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
     assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set switchMember_colon(int value) {
-    assert(kind == idl.LinkedNodeKind.switchCase ||
-        kind == idl.LinkedNodeKind.switchDefault);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set switchStatement_rightParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set tryStatement_tryKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.tryStatement);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set typeArgumentList_rightBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.typeArgumentList);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set typeParameterList_rightBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.typeParameterList);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set whileStatement_rightParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.whileStatement);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
-  }
-
-  set yieldStatement_star(int value) {
-    assert(kind == idl.LinkedNodeKind.yieldStatement);
-    assert(value == null || value >= 0);
-    _variantField_16 = value;
+    _variantField_15 = value;
   }
 
   @override
-  int get assertInitializer_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.assertInitializer);
-    return _variantField_18 ??= 0;
-  }
-
-  @override
-  int get assertStatement_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    return _variantField_18 ??= 0;
-  }
-
-  @override
-  int get catchClause_onKeyword {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    return _variantField_18 ??= 0;
-  }
-
-  @override
-  int get classOrMixinDeclaration_rightBracket {
-    assert(kind == idl.LinkedNodeKind.classDeclaration ||
-        kind == idl.LinkedNodeKind.mixinDeclaration);
-    return _variantField_18 ??= 0;
-  }
-
-  @override
-  int get configuration_equalToken {
-    assert(kind == idl.LinkedNodeKind.configuration);
-    return _variantField_18 ??= 0;
-  }
-
-  @override
-  int get constructorDeclaration_period {
-    assert(kind == idl.LinkedNodeKind.constructorDeclaration);
-    return _variantField_18 ??= 0;
-  }
-
-  @override
-  int get directive_keyword {
-    assert(kind == idl.LinkedNodeKind.exportDirective ||
-        kind == idl.LinkedNodeKind.importDirective ||
-        kind == idl.LinkedNodeKind.libraryDirective ||
-        kind == idl.LinkedNodeKind.partDirective ||
-        kind == idl.LinkedNodeKind.partOfDirective);
-    return _variantField_18 ??= 0;
-  }
-
-  @override
-  int get doStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    return _variantField_18 ??= 0;
-  }
-
-  @override
-  int get formalParameterList_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.formalParameterList);
-    return _variantField_18 ??= 0;
-  }
-
-  @override
-  int get ifMixin_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.ifElement ||
-        kind == idl.LinkedNodeKind.ifStatement);
-    return _variantField_18 ??= 0;
-  }
-
-  @override
-  int get indexExpression_rightBracket {
-    assert(kind == idl.LinkedNodeKind.indexExpression);
-    return _variantField_18 ??= 0;
-  }
-
-  @override
-  int get normalFormalParameter_requiredKeyword {
-    assert(kind == idl.LinkedNodeKind.fieldFormalParameter ||
-        kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
-        kind == idl.LinkedNodeKind.simpleFormalParameter);
-    return _variantField_18 ??= 0;
-  }
-
-  @override
-  int get switchStatement_leftBracket {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    return _variantField_18 ??= 0;
-  }
-
-  @override
-  int get typeAlias_typedefKeyword {
-    assert(kind == idl.LinkedNodeKind.classTypeAlias ||
-        kind == idl.LinkedNodeKind.functionTypeAlias ||
-        kind == idl.LinkedNodeKind.genericTypeAlias);
-    return _variantField_18 ??= 0;
-  }
-
-  set assertInitializer_rightParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.assertInitializer);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  set assertStatement_rightParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  set catchClause_onKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  set classOrMixinDeclaration_rightBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.classDeclaration ||
-        kind == idl.LinkedNodeKind.mixinDeclaration);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  set configuration_equalToken(int value) {
-    assert(kind == idl.LinkedNodeKind.configuration);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  set constructorDeclaration_period(int value) {
-    assert(kind == idl.LinkedNodeKind.constructorDeclaration);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  set directive_keyword(int value) {
-    assert(kind == idl.LinkedNodeKind.exportDirective ||
-        kind == idl.LinkedNodeKind.importDirective ||
-        kind == idl.LinkedNodeKind.libraryDirective ||
-        kind == idl.LinkedNodeKind.partDirective ||
-        kind == idl.LinkedNodeKind.partOfDirective);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  set doStatement_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  set formalParameterList_rightParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.formalParameterList);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  set ifMixin_rightParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.ifElement ||
-        kind == idl.LinkedNodeKind.ifStatement);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  set indexExpression_rightBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.indexExpression);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  set normalFormalParameter_requiredKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.fieldFormalParameter ||
-        kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
-        kind == idl.LinkedNodeKind.simpleFormalParameter);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  set switchStatement_leftBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  set typeAlias_typedefKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.classTypeAlias ||
-        kind == idl.LinkedNodeKind.functionTypeAlias ||
-        kind == idl.LinkedNodeKind.genericTypeAlias);
-    assert(value == null || value >= 0);
-    _variantField_18 = value;
-  }
-
-  @override
-  int get assertStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    return _variantField_19 ??= 0;
-  }
-
-  @override
-  int get catchClause_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    return _variantField_19 ??= 0;
-  }
-
-  @override
-  int get classOrMixinDeclaration_leftBracket {
-    assert(kind == idl.LinkedNodeKind.classDeclaration ||
-        kind == idl.LinkedNodeKind.mixinDeclaration);
-    return _variantField_19 ??= 0;
-  }
-
-  @override
-  int get combinator_keyword {
-    assert(kind == idl.LinkedNodeKind.hideCombinator ||
-        kind == idl.LinkedNodeKind.showCombinator);
-    return _variantField_19 ??= 0;
-  }
-
-  @override
-  int get constructorDeclaration_separator {
-    assert(kind == idl.LinkedNodeKind.constructorDeclaration);
-    return _variantField_19 ??= 0;
-  }
-
-  @override
-  int get doStatement_whileKeyword {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    return _variantField_19 ??= 0;
-  }
-
-  @override
-  int get forMixin_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.forElement ||
-        kind == idl.LinkedNodeKind.forStatement);
-    return _variantField_19 ??= 0;
-  }
-
-  @override
-  int get methodDeclaration_actualProperty {
-    assert(kind == idl.LinkedNodeKind.methodDeclaration);
-    return _variantField_19 ??= 0;
-  }
-
-  @override
-  int get switchStatement_rightBracket {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    return _variantField_19 ??= 0;
-  }
-
-  @override
-  int get typeAlias_semicolon {
-    assert(kind == idl.LinkedNodeKind.classTypeAlias ||
-        kind == idl.LinkedNodeKind.functionTypeAlias ||
-        kind == idl.LinkedNodeKind.genericTypeAlias);
-    return _variantField_19 ??= 0;
-  }
-
-  @override
-  int get uriBasedDirective_uriElement {
-    assert(kind == idl.LinkedNodeKind.exportDirective ||
-        kind == idl.LinkedNodeKind.importDirective ||
-        kind == idl.LinkedNodeKind.partDirective);
-    return _variantField_19 ??= 0;
-  }
-
-  set assertStatement_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    assert(value == null || value >= 0);
-    _variantField_19 = value;
-  }
-
-  set catchClause_rightParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    assert(value == null || value >= 0);
-    _variantField_19 = value;
-  }
-
-  set classOrMixinDeclaration_leftBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.classDeclaration ||
-        kind == idl.LinkedNodeKind.mixinDeclaration);
-    assert(value == null || value >= 0);
-    _variantField_19 = value;
-  }
-
-  set combinator_keyword(int value) {
-    assert(kind == idl.LinkedNodeKind.hideCombinator ||
-        kind == idl.LinkedNodeKind.showCombinator);
-    assert(value == null || value >= 0);
-    _variantField_19 = value;
-  }
-
-  set constructorDeclaration_separator(int value) {
-    assert(kind == idl.LinkedNodeKind.constructorDeclaration);
-    assert(value == null || value >= 0);
-    _variantField_19 = value;
-  }
-
-  set doStatement_whileKeyword(int value) {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    assert(value == null || value >= 0);
-    _variantField_19 = value;
-  }
-
-  set forMixin_rightParenthesis(int value) {
-    assert(kind == idl.LinkedNodeKind.forElement ||
-        kind == idl.LinkedNodeKind.forStatement);
-    assert(value == null || value >= 0);
-    _variantField_19 = value;
-  }
-
-  set methodDeclaration_actualProperty(int value) {
-    assert(kind == idl.LinkedNodeKind.methodDeclaration);
-    assert(value == null || value >= 0);
-    _variantField_19 = value;
-  }
-
-  set switchStatement_rightBracket(int value) {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    assert(value == null || value >= 0);
-    _variantField_19 = value;
-  }
-
-  set typeAlias_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.classTypeAlias ||
-        kind == idl.LinkedNodeKind.functionTypeAlias ||
-        kind == idl.LinkedNodeKind.genericTypeAlias);
-    assert(value == null || value >= 0);
-    _variantField_19 = value;
-  }
-
-  set uriBasedDirective_uriElement(int value) {
-    assert(kind == idl.LinkedNodeKind.exportDirective ||
-        kind == idl.LinkedNodeKind.importDirective ||
-        kind == idl.LinkedNodeKind.partDirective);
-    assert(value == null || value >= 0);
-    _variantField_19 = value;
+  idl.UnlinkedTokenType get assignmentExpression_operator {
+    assert(kind == idl.LinkedNodeKind.assignmentExpression);
+    return _variantField_28 ??= idl.UnlinkedTokenType.NOTHING;
   }
 
   @override
@@ -8982,21 +7074,48 @@
   }
 
   @override
+  idl.UnlinkedTokenType get postfixExpression_operator {
+    assert(kind == idl.LinkedNodeKind.postfixExpression);
+    return _variantField_28 ??= idl.UnlinkedTokenType.NOTHING;
+  }
+
+  @override
   idl.UnlinkedTokenType get prefixExpression_operator {
     assert(kind == idl.LinkedNodeKind.prefixExpression);
     return _variantField_28 ??= idl.UnlinkedTokenType.NOTHING;
   }
 
+  @override
+  idl.UnlinkedTokenType get propertyAccess_operator {
+    assert(kind == idl.LinkedNodeKind.propertyAccess);
+    return _variantField_28 ??= idl.UnlinkedTokenType.NOTHING;
+  }
+
+  set assignmentExpression_operator(idl.UnlinkedTokenType value) {
+    assert(kind == idl.LinkedNodeKind.assignmentExpression);
+    _variantField_28 = value;
+  }
+
   set binaryExpression_operator(idl.UnlinkedTokenType value) {
     assert(kind == idl.LinkedNodeKind.binaryExpression);
     _variantField_28 = value;
   }
 
+  set postfixExpression_operator(idl.UnlinkedTokenType value) {
+    assert(kind == idl.LinkedNodeKind.postfixExpression);
+    _variantField_28 = value;
+  }
+
   set prefixExpression_operator(idl.UnlinkedTokenType value) {
     assert(kind == idl.LinkedNodeKind.prefixExpression);
     _variantField_28 = value;
   }
 
+  set propertyAccess_operator(idl.UnlinkedTokenType value) {
+    assert(kind == idl.LinkedNodeKind.propertyAccess);
+    _variantField_28 = value;
+  }
+
   @override
   bool get booleanLiteral_value {
     assert(kind == idl.LinkedNodeKind.booleanLiteral);
@@ -9010,14 +7129,6 @@
   }
 
   @override
-  bool get executable_isAsynchronous {
-    assert(kind == idl.LinkedNodeKind.constructorDeclaration ||
-        kind == idl.LinkedNodeKind.functionExpression ||
-        kind == idl.LinkedNodeKind.methodDeclaration);
-    return _variantField_27 ??= false;
-  }
-
-  @override
   bool get inheritsCovariant {
     assert(kind == idl.LinkedNodeKind.fieldFormalParameter ||
         kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
@@ -9027,18 +7138,6 @@
   }
 
   @override
-  bool get setOrMapLiteral_isMap {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    return _variantField_27 ??= false;
-  }
-
-  @override
-  bool get simpleIdentifier_isDeclaration {
-    assert(kind == idl.LinkedNodeKind.simpleIdentifier);
-    return _variantField_27 ??= false;
-  }
-
-  @override
   bool get typeAlias_hasSelfReference {
     assert(kind == idl.LinkedNodeKind.functionTypeAlias ||
         kind == idl.LinkedNodeKind.genericTypeAlias);
@@ -9055,13 +7154,6 @@
     _variantField_27 = value;
   }
 
-  set executable_isAsynchronous(bool value) {
-    assert(kind == idl.LinkedNodeKind.constructorDeclaration ||
-        kind == idl.LinkedNodeKind.functionExpression ||
-        kind == idl.LinkedNodeKind.methodDeclaration);
-    _variantField_27 = value;
-  }
-
   set inheritsCovariant(bool value) {
     assert(kind == idl.LinkedNodeKind.fieldFormalParameter ||
         kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
@@ -9070,16 +7162,6 @@
     _variantField_27 = value;
   }
 
-  set setOrMapLiteral_isMap(bool value) {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    _variantField_27 = value;
-  }
-
-  set simpleIdentifier_isDeclaration(bool value) {
-    assert(kind == idl.LinkedNodeKind.simpleIdentifier);
-    _variantField_27 = value;
-  }
-
   set typeAlias_hasSelfReference(bool value) {
     assert(kind == idl.LinkedNodeKind.functionTypeAlias ||
         kind == idl.LinkedNodeKind.genericTypeAlias);
@@ -9269,16 +7351,6 @@
     return _variantField_33 ??= 0;
   }
 
-  @override
-  int get directive_semicolon {
-    assert(kind == idl.LinkedNodeKind.exportDirective ||
-        kind == idl.LinkedNodeKind.importDirective ||
-        kind == idl.LinkedNodeKind.libraryDirective ||
-        kind == idl.LinkedNodeKind.partDirective ||
-        kind == idl.LinkedNodeKind.partOfDirective);
-    return _variantField_33 ??= 0;
-  }
-
   set codeOffset(int value) {
     assert(kind == idl.LinkedNodeKind.classDeclaration ||
         kind == idl.LinkedNodeKind.classTypeAlias ||
@@ -9300,16 +7372,6 @@
     _variantField_33 = value;
   }
 
-  set directive_semicolon(int value) {
-    assert(kind == idl.LinkedNodeKind.exportDirective ||
-        kind == idl.LinkedNodeKind.importDirective ||
-        kind == idl.LinkedNodeKind.libraryDirective ||
-        kind == idl.LinkedNodeKind.partDirective ||
-        kind == idl.LinkedNodeKind.partOfDirective);
-    assert(value == null || value >= 0);
-    _variantField_33 = value;
-  }
-
   @override
   List<String> get comment_tokens {
     assert(kind == idl.LinkedNodeKind.comment);
@@ -9365,6 +7427,12 @@
   }
 
   @override
+  List<LinkedNodeBuilder> get listLiteral_elements {
+    assert(kind == idl.LinkedNodeKind.listLiteral);
+    return _variantField_3 ??= <LinkedNodeBuilder>[];
+  }
+
+  @override
   List<LinkedNodeBuilder> get namespaceDirective_configurations {
     assert(kind == idl.LinkedNodeKind.exportDirective ||
         kind == idl.LinkedNodeKind.importDirective);
@@ -9372,6 +7440,12 @@
   }
 
   @override
+  List<LinkedNodeBuilder> get setOrMapLiteral_elements {
+    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
+    return _variantField_3 ??= <LinkedNodeBuilder>[];
+  }
+
+  @override
   List<LinkedNodeBuilder> get switchMember_labels {
     assert(kind == idl.LinkedNodeKind.switchCase ||
         kind == idl.LinkedNodeKind.switchDefault);
@@ -9383,12 +7457,22 @@
     _variantField_3 = value;
   }
 
+  set listLiteral_elements(List<LinkedNodeBuilder> value) {
+    assert(kind == idl.LinkedNodeKind.listLiteral);
+    _variantField_3 = value;
+  }
+
   set namespaceDirective_configurations(List<LinkedNodeBuilder> value) {
     assert(kind == idl.LinkedNodeKind.exportDirective ||
         kind == idl.LinkedNodeKind.importDirective);
     _variantField_3 = value;
   }
 
+  set setOrMapLiteral_elements(List<LinkedNodeBuilder> value) {
+    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
+    _variantField_3 = value;
+  }
+
   set switchMember_labels(List<LinkedNodeBuilder> value) {
     assert(kind == idl.LinkedNodeKind.switchCase ||
         kind == idl.LinkedNodeKind.switchDefault);
@@ -9430,21 +7514,6 @@
   }
 
   @override
-  bool get executable_isGenerator {
-    assert(kind == idl.LinkedNodeKind.constructorDeclaration ||
-        kind == idl.LinkedNodeKind.functionExpression ||
-        kind == idl.LinkedNodeKind.methodDeclaration);
-    return _variantField_37 ??= false;
-  }
-
-  set executable_isGenerator(bool value) {
-    assert(kind == idl.LinkedNodeKind.constructorDeclaration ||
-        kind == idl.LinkedNodeKind.functionExpression ||
-        kind == idl.LinkedNodeKind.methodDeclaration);
-    _variantField_37 = value;
-  }
-
-  @override
   LinkedNodeTypeBuilder get expression_type {
     assert(kind == idl.LinkedNodeKind.assignmentExpression ||
         kind == idl.LinkedNodeKind.asExpression ||
@@ -9523,12 +7592,70 @@
   @override
   String get importDirective_prefix {
     assert(kind == idl.LinkedNodeKind.importDirective);
-    return _variantField_41 ??= '';
+    return _variantField_1 ??= '';
   }
 
   set importDirective_prefix(String value) {
     assert(kind == idl.LinkedNodeKind.importDirective);
-    _variantField_41 = value;
+    _variantField_1 = value;
+  }
+
+  @override
+  int get integerLiteral_value {
+    assert(kind == idl.LinkedNodeKind.integerLiteral);
+    return _variantField_16 ??= 0;
+  }
+
+  @override
+  int get nameOffset {
+    assert(kind == idl.LinkedNodeKind.classDeclaration ||
+        kind == idl.LinkedNodeKind.classTypeAlias ||
+        kind == idl.LinkedNodeKind.constructorDeclaration ||
+        kind == idl.LinkedNodeKind.enumConstantDeclaration ||
+        kind == idl.LinkedNodeKind.enumDeclaration ||
+        kind == idl.LinkedNodeKind.exportDirective ||
+        kind == idl.LinkedNodeKind.fieldFormalParameter ||
+        kind == idl.LinkedNodeKind.functionDeclaration ||
+        kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
+        kind == idl.LinkedNodeKind.functionTypeAlias ||
+        kind == idl.LinkedNodeKind.genericTypeAlias ||
+        kind == idl.LinkedNodeKind.importDirective ||
+        kind == idl.LinkedNodeKind.methodDeclaration ||
+        kind == idl.LinkedNodeKind.mixinDeclaration ||
+        kind == idl.LinkedNodeKind.partDirective ||
+        kind == idl.LinkedNodeKind.simpleFormalParameter ||
+        kind == idl.LinkedNodeKind.typeParameter ||
+        kind == idl.LinkedNodeKind.variableDeclaration);
+    return _variantField_16 ??= 0;
+  }
+
+  set integerLiteral_value(int value) {
+    assert(kind == idl.LinkedNodeKind.integerLiteral);
+    assert(value == null || value >= 0);
+    _variantField_16 = value;
+  }
+
+  set nameOffset(int value) {
+    assert(kind == idl.LinkedNodeKind.classDeclaration ||
+        kind == idl.LinkedNodeKind.classTypeAlias ||
+        kind == idl.LinkedNodeKind.constructorDeclaration ||
+        kind == idl.LinkedNodeKind.enumConstantDeclaration ||
+        kind == idl.LinkedNodeKind.enumDeclaration ||
+        kind == idl.LinkedNodeKind.exportDirective ||
+        kind == idl.LinkedNodeKind.fieldFormalParameter ||
+        kind == idl.LinkedNodeKind.functionDeclaration ||
+        kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
+        kind == idl.LinkedNodeKind.functionTypeAlias ||
+        kind == idl.LinkedNodeKind.genericTypeAlias ||
+        kind == idl.LinkedNodeKind.importDirective ||
+        kind == idl.LinkedNodeKind.methodDeclaration ||
+        kind == idl.LinkedNodeKind.mixinDeclaration ||
+        kind == idl.LinkedNodeKind.partDirective ||
+        kind == idl.LinkedNodeKind.simpleFormalParameter ||
+        kind == idl.LinkedNodeKind.typeParameter ||
+        kind == idl.LinkedNodeKind.variableDeclaration);
+    assert(value == null || value >= 0);
+    _variantField_16 = value;
   }
 
   @override
@@ -9558,13 +7685,6 @@
   }
 
   @override
-  LinkedNodeBuilder get typedLiteral_typeArguments {
-    assert(kind == idl.LinkedNodeKind.listLiteral ||
-        kind == idl.LinkedNodeKind.setOrMapLiteral);
-    return _variantField_14;
-  }
-
-  @override
   LinkedNodeBuilder get uriBasedDirective_uri {
     assert(kind == idl.LinkedNodeKind.exportDirective ||
         kind == idl.LinkedNodeKind.importDirective ||
@@ -9585,12 +7705,6 @@
     _variantField_14 = value;
   }
 
-  set typedLiteral_typeArguments(LinkedNodeBuilder value) {
-    assert(kind == idl.LinkedNodeKind.listLiteral ||
-        kind == idl.LinkedNodeKind.setOrMapLiteral);
-    _variantField_14 = value;
-  }
-
   set uriBasedDirective_uri(LinkedNodeBuilder value) {
     assert(kind == idl.LinkedNodeKind.exportDirective ||
         kind == idl.LinkedNodeKind.importDirective ||
@@ -9599,13 +7713,6 @@
   }
 
   @override
-  bool get isSynthetic => _isSynthetic ??= false;
-
-  set isSynthetic(bool value) {
-    this._isSynthetic = value;
-  }
-
-  @override
   idl.LinkedNodeKind get kind => _kind ??= idl.LinkedNodeKind.adjacentStrings;
 
   set kind(idl.LinkedNodeKind value) {
@@ -9644,12 +7751,6 @@
   }
 
   @override
-  bool get setOrMapLiteral_isSet {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    return _variantField_31 ??= false;
-  }
-
-  @override
   bool get simplyBoundable_isSimplyBounded {
     assert(kind == idl.LinkedNodeKind.classDeclaration ||
         kind == idl.LinkedNodeKind.classTypeAlias ||
@@ -9659,11 +7760,6 @@
     return _variantField_31 ??= false;
   }
 
-  set setOrMapLiteral_isSet(bool value) {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    _variantField_31 = value;
-  }
-
   set simplyBoundable_isSimplyBounded(bool value) {
     assert(kind == idl.LinkedNodeKind.classDeclaration ||
         kind == idl.LinkedNodeKind.classTypeAlias ||
@@ -9674,14 +7770,14 @@
   }
 
   @override
-  idl.UnlinkedTokenType get spreadElement_spreadOperator2 {
+  idl.UnlinkedTokenType get spreadElement_spreadOperator {
     assert(kind == idl.LinkedNodeKind.spreadElement);
-    return _variantField_40 ??= idl.UnlinkedTokenType.NOTHING;
+    return _variantField_38 ??= idl.UnlinkedTokenType.NOTHING;
   }
 
-  set spreadElement_spreadOperator2(idl.UnlinkedTokenType value) {
+  set spreadElement_spreadOperator(idl.UnlinkedTokenType value) {
     assert(kind == idl.LinkedNodeKind.spreadElement);
-    _variantField_40 = value;
+    _variantField_38 = value;
   }
 
   @override
@@ -9713,6 +7809,22 @@
   }
 
   @override
+  int get uriBasedDirective_uriElement {
+    assert(kind == idl.LinkedNodeKind.exportDirective ||
+        kind == idl.LinkedNodeKind.importDirective ||
+        kind == idl.LinkedNodeKind.partDirective);
+    return _variantField_19 ??= 0;
+  }
+
+  set uriBasedDirective_uriElement(int value) {
+    assert(kind == idl.LinkedNodeKind.exportDirective ||
+        kind == idl.LinkedNodeKind.importDirective ||
+        kind == idl.LinkedNodeKind.partDirective);
+    assert(value == null || value >= 0);
+    _variantField_19 = value;
+  }
+
+  @override
   LinkedNodeVariablesDeclarationBuilder get variableDeclaration_declaration {
     assert(kind == idl.LinkedNodeKind.variableDeclaration);
     return _variantField_32;
@@ -9730,33 +7842,29 @@
     List<LinkedNodeBuilder> annotatedNode_metadata,
     LinkedNodeBuilder functionDeclaration_functionExpression,
     LinkedNodeBuilder functionDeclaration_returnType,
-    int nameOffset,
     int codeLength,
     int codeOffset,
+    int nameOffset,
   })  : _kind = idl.LinkedNodeKind.functionDeclaration,
         _variantField_24 = actualReturnType,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
         _variantField_6 = functionDeclaration_functionExpression,
         _variantField_7 = functionDeclaration_returnType,
-        _variantField_16 = nameOffset,
         _variantField_34 = codeLength,
-        _variantField_33 = codeOffset;
+        _variantField_33 = codeOffset,
+        _variantField_16 = nameOffset;
 
   LinkedNodeBuilder.functionExpression({
     LinkedNodeTypeBuilder actualReturnType,
     LinkedNodeBuilder functionExpression_body,
     LinkedNodeBuilder functionExpression_formalParameters,
     LinkedNodeBuilder functionExpression_typeParameters,
-    bool executable_isAsynchronous,
-    bool executable_isGenerator,
   })  : _kind = idl.LinkedNodeKind.functionExpression,
         _variantField_24 = actualReturnType,
         _variantField_6 = functionExpression_body,
         _variantField_7 = functionExpression_formalParameters,
-        _variantField_8 = functionExpression_typeParameters,
-        _variantField_27 = executable_isAsynchronous,
-        _variantField_37 = executable_isGenerator;
+        _variantField_8 = functionExpression_typeParameters;
 
   LinkedNodeBuilder.functionTypeAlias({
     LinkedNodeTypeBuilder actualReturnType,
@@ -9765,12 +7873,10 @@
     LinkedNodeBuilder functionTypeAlias_formalParameters,
     LinkedNodeBuilder functionTypeAlias_returnType,
     LinkedNodeBuilder functionTypeAlias_typeParameters,
-    int nameOffset,
-    int typeAlias_typedefKeyword,
-    int typeAlias_semicolon,
     bool typeAlias_hasSelfReference,
     int codeLength,
     int codeOffset,
+    int nameOffset,
     bool simplyBoundable_isSimplyBounded,
   })  : _kind = idl.LinkedNodeKind.functionTypeAlias,
         _variantField_24 = actualReturnType,
@@ -9779,31 +7885,25 @@
         _variantField_6 = functionTypeAlias_formalParameters,
         _variantField_7 = functionTypeAlias_returnType,
         _variantField_8 = functionTypeAlias_typeParameters,
-        _variantField_16 = nameOffset,
-        _variantField_18 = typeAlias_typedefKeyword,
-        _variantField_19 = typeAlias_semicolon,
         _variantField_27 = typeAlias_hasSelfReference,
         _variantField_34 = codeLength,
         _variantField_33 = codeOffset,
+        _variantField_16 = nameOffset,
         _variantField_31 = simplyBoundable_isSimplyBounded;
 
   LinkedNodeBuilder.genericFunctionType({
     LinkedNodeTypeBuilder actualReturnType,
     LinkedNodeBuilder genericFunctionType_typeParameters,
-    int genericFunctionType_functionKeyword,
     LinkedNodeBuilder genericFunctionType_returnType,
     int genericFunctionType_id,
     LinkedNodeBuilder genericFunctionType_formalParameters,
-    int genericFunctionType_question,
     LinkedNodeTypeBuilder genericFunctionType_type,
   })  : _kind = idl.LinkedNodeKind.genericFunctionType,
         _variantField_24 = actualReturnType,
         _variantField_6 = genericFunctionType_typeParameters,
-        _variantField_15 = genericFunctionType_functionKeyword,
         _variantField_7 = genericFunctionType_returnType,
         _variantField_17 = genericFunctionType_id,
         _variantField_8 = genericFunctionType_formalParameters,
-        _variantField_16 = genericFunctionType_question,
         _variantField_25 = genericFunctionType_type;
 
   LinkedNodeBuilder.methodDeclaration({
@@ -9812,56 +7912,44 @@
     List<LinkedNodeBuilder> annotatedNode_metadata,
     LinkedNodeBuilder methodDeclaration_body,
     LinkedNodeBuilder methodDeclaration_formalParameters,
-    int methodDeclaration_operatorKeyword,
     LinkedNodeBuilder methodDeclaration_returnType,
-    int nameOffset,
-    int methodDeclaration_actualProperty,
-    bool executable_isAsynchronous,
     LinkedNodeBuilder methodDeclaration_typeParameters,
     int codeLength,
     int codeOffset,
-    bool executable_isGenerator,
+    int nameOffset,
   })  : _kind = idl.LinkedNodeKind.methodDeclaration,
         _variantField_24 = actualReturnType,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
         _variantField_6 = methodDeclaration_body,
         _variantField_7 = methodDeclaration_formalParameters,
-        _variantField_17 = methodDeclaration_operatorKeyword,
         _variantField_8 = methodDeclaration_returnType,
-        _variantField_16 = nameOffset,
-        _variantField_19 = methodDeclaration_actualProperty,
-        _variantField_27 = executable_isAsynchronous,
         _variantField_9 = methodDeclaration_typeParameters,
         _variantField_34 = codeLength,
         _variantField_33 = codeOffset,
-        _variantField_37 = executable_isGenerator;
+        _variantField_16 = nameOffset;
 
   LinkedNodeBuilder.fieldFormalParameter({
     LinkedNodeTypeBuilder actualType,
     List<LinkedNodeBuilder> normalFormalParameter_metadata,
     LinkedNodeBuilder fieldFormalParameter_type,
     LinkedNodeBuilder fieldFormalParameter_typeParameters,
-    int fieldFormalParameter_thisKeyword,
     LinkedNodeBuilder fieldFormalParameter_formalParameters,
-    int nameOffset,
-    int normalFormalParameter_requiredKeyword,
     bool inheritsCovariant,
     int codeLength,
     int codeOffset,
+    int nameOffset,
     LinkedNodeBuilder normalFormalParameter_comment,
   })  : _kind = idl.LinkedNodeKind.fieldFormalParameter,
         _variantField_24 = actualType,
         _variantField_4 = normalFormalParameter_metadata,
         _variantField_6 = fieldFormalParameter_type,
         _variantField_7 = fieldFormalParameter_typeParameters,
-        _variantField_17 = fieldFormalParameter_thisKeyword,
         _variantField_8 = fieldFormalParameter_formalParameters,
-        _variantField_16 = nameOffset,
-        _variantField_18 = normalFormalParameter_requiredKeyword,
         _variantField_27 = inheritsCovariant,
         _variantField_34 = codeLength,
         _variantField_33 = codeOffset,
+        _variantField_16 = nameOffset,
         _variantField_14 = normalFormalParameter_comment;
 
   LinkedNodeBuilder.functionTypedFormalParameter({
@@ -9870,11 +7958,10 @@
     LinkedNodeBuilder functionTypedFormalParameter_formalParameters,
     LinkedNodeBuilder functionTypedFormalParameter_returnType,
     LinkedNodeBuilder functionTypedFormalParameter_typeParameters,
-    int nameOffset,
-    int normalFormalParameter_requiredKeyword,
     bool inheritsCovariant,
     int codeLength,
     int codeOffset,
+    int nameOffset,
     LinkedNodeBuilder normalFormalParameter_comment,
   })  : _kind = idl.LinkedNodeKind.functionTypedFormalParameter,
         _variantField_24 = actualType,
@@ -9882,33 +7969,30 @@
         _variantField_6 = functionTypedFormalParameter_formalParameters,
         _variantField_7 = functionTypedFormalParameter_returnType,
         _variantField_8 = functionTypedFormalParameter_typeParameters,
-        _variantField_16 = nameOffset,
-        _variantField_18 = normalFormalParameter_requiredKeyword,
         _variantField_27 = inheritsCovariant,
         _variantField_34 = codeLength,
         _variantField_33 = codeOffset,
+        _variantField_16 = nameOffset,
         _variantField_14 = normalFormalParameter_comment;
 
   LinkedNodeBuilder.simpleFormalParameter({
     LinkedNodeTypeBuilder actualType,
     List<LinkedNodeBuilder> normalFormalParameter_metadata,
     LinkedNodeBuilder simpleFormalParameter_type,
-    int nameOffset,
-    int normalFormalParameter_requiredKeyword,
     bool inheritsCovariant,
     int codeLength,
     int codeOffset,
+    int nameOffset,
     LinkedNodeBuilder normalFormalParameter_comment,
     TopLevelInferenceErrorBuilder topLevelTypeInferenceError,
   })  : _kind = idl.LinkedNodeKind.simpleFormalParameter,
         _variantField_24 = actualType,
         _variantField_4 = normalFormalParameter_metadata,
         _variantField_6 = simpleFormalParameter_type,
-        _variantField_16 = nameOffset,
-        _variantField_18 = normalFormalParameter_requiredKeyword,
         _variantField_27 = inheritsCovariant,
         _variantField_34 = codeLength,
         _variantField_33 = codeOffset,
+        _variantField_16 = nameOffset,
         _variantField_14 = normalFormalParameter_comment,
         _variantField_35 = topLevelTypeInferenceError;
 
@@ -9917,11 +8001,10 @@
     LinkedNodeBuilder annotatedNode_comment,
     List<LinkedNodeBuilder> annotatedNode_metadata,
     LinkedNodeBuilder variableDeclaration_initializer,
-    int variableDeclaration_equals,
-    int nameOffset,
     bool inheritsCovariant,
     int codeLength,
     int codeOffset,
+    int nameOffset,
     TopLevelInferenceErrorBuilder topLevelTypeInferenceError,
     LinkedNodeVariablesDeclarationBuilder variableDeclaration_declaration,
   })  : _kind = idl.LinkedNodeKind.variableDeclaration,
@@ -9929,28 +8012,27 @@
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
         _variantField_6 = variableDeclaration_initializer,
-        _variantField_15 = variableDeclaration_equals,
-        _variantField_16 = nameOffset,
         _variantField_27 = inheritsCovariant,
         _variantField_34 = codeLength,
         _variantField_33 = codeOffset,
+        _variantField_16 = nameOffset,
         _variantField_35 = topLevelTypeInferenceError,
         _variantField_32 = variableDeclaration_declaration;
 
   LinkedNodeBuilder.binaryExpression({
     LinkedNodeTypeBuilder binaryExpression_invokeType,
     LinkedNodeBuilder binaryExpression_leftOperand,
-    int binaryExpression_element,
     LinkedNodeBuilder binaryExpression_rightOperand,
     LinkedNodeTypeBuilder binaryExpression_elementType,
+    int binaryExpression_element,
     idl.UnlinkedTokenType binaryExpression_operator,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.binaryExpression,
         _variantField_24 = binaryExpression_invokeType,
         _variantField_6 = binaryExpression_leftOperand,
-        _variantField_15 = binaryExpression_element,
         _variantField_7 = binaryExpression_rightOperand,
         _variantField_23 = binaryExpression_elementType,
+        _variantField_15 = binaryExpression_element,
         _variantField_28 = binaryExpression_operator,
         _variantField_25 = expression_type;
 
@@ -9970,7 +8052,6 @@
   LinkedNodeBuilder.methodInvocation({
     LinkedNodeTypeBuilder invocationExpression_invokeType,
     LinkedNodeBuilder methodInvocation_methodName,
-    int methodInvocation_operator,
     LinkedNodeBuilder methodInvocation_target,
     LinkedNodeBuilder invocationExpression_typeArguments,
     LinkedNodeTypeBuilder expression_type,
@@ -9978,7 +8059,6 @@
   })  : _kind = idl.LinkedNodeKind.methodInvocation,
         _variantField_24 = invocationExpression_invokeType,
         _variantField_6 = methodInvocation_methodName,
-        _variantField_15 = methodInvocation_operator,
         _variantField_7 = methodInvocation_target,
         _variantField_12 = invocationExpression_typeArguments,
         _variantField_25 = expression_type,
@@ -9991,21 +8071,13 @@
 
   LinkedNodeBuilder.argumentList({
     List<LinkedNodeBuilder> argumentList_arguments,
-    int argumentList_leftParenthesis,
-    int argumentList_rightParenthesis,
   })  : _kind = idl.LinkedNodeKind.argumentList,
-        _variantField_2 = argumentList_arguments,
-        _variantField_15 = argumentList_leftParenthesis,
-        _variantField_16 = argumentList_rightParenthesis;
+        _variantField_2 = argumentList_arguments;
 
   LinkedNodeBuilder.block({
     List<LinkedNodeBuilder> block_statements,
-    int block_leftBracket,
-    int block_rightBracket,
   })  : _kind = idl.LinkedNodeKind.block,
-        _variantField_2 = block_statements,
-        _variantField_15 = block_leftBracket,
-        _variantField_16 = block_rightBracket;
+        _variantField_2 = block_statements;
 
   LinkedNodeBuilder.cascadeExpression({
     List<LinkedNodeBuilder> cascadeExpression_sections,
@@ -10028,16 +8100,12 @@
   LinkedNodeBuilder.compilationUnit({
     List<LinkedNodeBuilder> compilationUnit_declarations,
     LinkedNodeBuilder compilationUnit_scriptTag,
-    int compilationUnit_beginToken,
-    int compilationUnit_endToken,
     int codeLength,
     int codeOffset,
     List<LinkedNodeBuilder> compilationUnit_directives,
   })  : _kind = idl.LinkedNodeKind.compilationUnit,
         _variantField_2 = compilationUnit_declarations,
         _variantField_6 = compilationUnit_scriptTag,
-        _variantField_15 = compilationUnit_beginToken,
-        _variantField_16 = compilationUnit_endToken,
         _variantField_34 = codeLength,
         _variantField_33 = codeOffset,
         _variantField_3 = compilationUnit_directives;
@@ -10048,30 +8116,22 @@
     List<LinkedNodeBuilder> annotatedNode_metadata,
     LinkedNodeBuilder constructorDeclaration_body,
     LinkedNodeBuilder constructorDeclaration_parameters,
-    int nameOffset,
-    int constructorDeclaration_period,
-    int constructorDeclaration_separator,
-    bool executable_isAsynchronous,
     LinkedNodeBuilder constructorDeclaration_redirectedConstructor,
     int codeLength,
     int codeOffset,
     LinkedNodeBuilder constructorDeclaration_returnType,
-    bool executable_isGenerator,
+    int nameOffset,
   })  : _kind = idl.LinkedNodeKind.constructorDeclaration,
         _variantField_2 = constructorDeclaration_initializers,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
         _variantField_6 = constructorDeclaration_body,
         _variantField_8 = constructorDeclaration_parameters,
-        _variantField_16 = nameOffset,
-        _variantField_18 = constructorDeclaration_period,
-        _variantField_19 = constructorDeclaration_separator,
-        _variantField_27 = executable_isAsynchronous,
         _variantField_9 = constructorDeclaration_redirectedConstructor,
         _variantField_34 = codeLength,
         _variantField_33 = codeOffset,
         _variantField_10 = constructorDeclaration_returnType,
-        _variantField_37 = executable_isGenerator;
+        _variantField_16 = nameOffset;
 
   LinkedNodeBuilder.dottedName({
     List<LinkedNodeBuilder> dottedName_components,
@@ -10082,36 +8142,37 @@
     List<LinkedNodeBuilder> enumDeclaration_constants,
     LinkedNodeBuilder annotatedNode_comment,
     List<LinkedNodeBuilder> annotatedNode_metadata,
-    int nameOffset,
     int codeLength,
     int codeOffset,
+    int nameOffset,
   })  : _kind = idl.LinkedNodeKind.enumDeclaration,
         _variantField_2 = enumDeclaration_constants,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
-        _variantField_16 = nameOffset,
         _variantField_34 = codeLength,
-        _variantField_33 = codeOffset;
+        _variantField_33 = codeOffset,
+        _variantField_16 = nameOffset;
 
   LinkedNodeBuilder.formalParameterList({
     List<LinkedNodeBuilder> formalParameterList_parameters,
-    int formalParameterList_leftDelimiter,
-    int formalParameterList_rightDelimiter,
-    int formalParameterList_leftParenthesis,
-    int formalParameterList_rightParenthesis,
   })  : _kind = idl.LinkedNodeKind.formalParameterList,
-        _variantField_2 = formalParameterList_parameters,
-        _variantField_15 = formalParameterList_leftDelimiter,
-        _variantField_17 = formalParameterList_rightDelimiter,
-        _variantField_16 = formalParameterList_leftParenthesis,
-        _variantField_18 = formalParameterList_rightParenthesis;
+        _variantField_2 = formalParameterList_parameters;
 
   LinkedNodeBuilder.implementsClause({
     List<LinkedNodeBuilder> implementsClause_interfaces,
-    int implementsClause_implementsKeyword,
   })  : _kind = idl.LinkedNodeKind.implementsClause,
-        _variantField_2 = implementsClause_interfaces,
-        _variantField_15 = implementsClause_implementsKeyword;
+        _variantField_2 = implementsClause_interfaces;
+
+  LinkedNodeBuilder.instanceCreationExpression({
+    List<LinkedNodeBuilder> instanceCreationExpression_arguments,
+    LinkedNodeBuilder instanceCreationExpression_constructorName,
+    LinkedNodeBuilder instanceCreationExpression_typeArguments,
+    LinkedNodeTypeBuilder expression_type,
+  })  : _kind = idl.LinkedNodeKind.instanceCreationExpression,
+        _variantField_2 = instanceCreationExpression_arguments,
+        _variantField_7 = instanceCreationExpression_constructorName,
+        _variantField_8 = instanceCreationExpression_typeArguments,
+        _variantField_25 = expression_type;
 
   LinkedNodeBuilder.labeledStatement({
     List<LinkedNodeBuilder> labeledStatement_labels,
@@ -10125,96 +8186,56 @@
   })  : _kind = idl.LinkedNodeKind.libraryIdentifier,
         _variantField_2 = libraryIdentifier_components;
 
-  LinkedNodeBuilder.listLiteral({
-    List<LinkedNodeBuilder> listLiteral_elements,
-    int listLiteral_leftBracket,
-    int listLiteral_rightBracket,
-    LinkedNodeTypeBuilder expression_type,
-    LinkedNodeBuilder typedLiteral_typeArguments,
-  })  : _kind = idl.LinkedNodeKind.listLiteral,
-        _variantField_2 = listLiteral_elements,
-        _variantField_15 = listLiteral_leftBracket,
-        _variantField_16 = listLiteral_rightBracket,
-        _variantField_25 = expression_type,
-        _variantField_14 = typedLiteral_typeArguments;
-
   LinkedNodeBuilder.exportDirective({
     List<LinkedNodeBuilder> namespaceDirective_combinators,
     LinkedNodeBuilder annotatedNode_comment,
     List<LinkedNodeBuilder> annotatedNode_metadata,
-    int nameOffset,
-    int directive_keyword,
-    int uriBasedDirective_uriElement,
-    int directive_semicolon,
     List<LinkedNodeBuilder> namespaceDirective_configurations,
+    int nameOffset,
     LinkedNodeBuilder uriBasedDirective_uri,
     String namespaceDirective_selectedUri,
     String uriBasedDirective_uriContent,
+    int uriBasedDirective_uriElement,
   })  : _kind = idl.LinkedNodeKind.exportDirective,
         _variantField_2 = namespaceDirective_combinators,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
-        _variantField_16 = nameOffset,
-        _variantField_18 = directive_keyword,
-        _variantField_19 = uriBasedDirective_uriElement,
-        _variantField_33 = directive_semicolon,
         _variantField_3 = namespaceDirective_configurations,
+        _variantField_16 = nameOffset,
         _variantField_14 = uriBasedDirective_uri,
         _variantField_20 = namespaceDirective_selectedUri,
-        _variantField_22 = uriBasedDirective_uriContent;
+        _variantField_22 = uriBasedDirective_uriContent,
+        _variantField_19 = uriBasedDirective_uriElement;
 
   LinkedNodeBuilder.importDirective({
     List<LinkedNodeBuilder> namespaceDirective_combinators,
     LinkedNodeBuilder annotatedNode_comment,
     List<LinkedNodeBuilder> annotatedNode_metadata,
     int importDirective_prefixOffset,
-    int nameOffset,
-    int directive_keyword,
-    int uriBasedDirective_uriElement,
-    int directive_semicolon,
     List<LinkedNodeBuilder> namespaceDirective_configurations,
     String importDirective_prefix,
+    int nameOffset,
     LinkedNodeBuilder uriBasedDirective_uri,
     String namespaceDirective_selectedUri,
     String uriBasedDirective_uriContent,
+    int uriBasedDirective_uriElement,
   })  : _kind = idl.LinkedNodeKind.importDirective,
         _variantField_2 = namespaceDirective_combinators,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
         _variantField_15 = importDirective_prefixOffset,
-        _variantField_16 = nameOffset,
-        _variantField_18 = directive_keyword,
-        _variantField_19 = uriBasedDirective_uriElement,
-        _variantField_33 = directive_semicolon,
         _variantField_3 = namespaceDirective_configurations,
-        _variantField_41 = importDirective_prefix,
+        _variantField_1 = importDirective_prefix,
+        _variantField_16 = nameOffset,
         _variantField_14 = uriBasedDirective_uri,
         _variantField_20 = namespaceDirective_selectedUri,
-        _variantField_22 = uriBasedDirective_uriContent;
+        _variantField_22 = uriBasedDirective_uriContent,
+        _variantField_19 = uriBasedDirective_uriElement;
 
   LinkedNodeBuilder.onClause({
     List<LinkedNodeBuilder> onClause_superclassConstraints,
-    int onClause_onKeyword,
   })  : _kind = idl.LinkedNodeKind.onClause,
-        _variantField_2 = onClause_superclassConstraints,
-        _variantField_15 = onClause_onKeyword;
-
-  LinkedNodeBuilder.setOrMapLiteral({
-    List<LinkedNodeBuilder> setOrMapLiteral_elements,
-    int setOrMapLiteral_leftBracket,
-    int setOrMapLiteral_rightBracket,
-    bool setOrMapLiteral_isMap,
-    LinkedNodeTypeBuilder expression_type,
-    LinkedNodeBuilder typedLiteral_typeArguments,
-    bool setOrMapLiteral_isSet,
-  })  : _kind = idl.LinkedNodeKind.setOrMapLiteral,
-        _variantField_2 = setOrMapLiteral_elements,
-        _variantField_15 = setOrMapLiteral_leftBracket,
-        _variantField_16 = setOrMapLiteral_rightBracket,
-        _variantField_27 = setOrMapLiteral_isMap,
-        _variantField_25 = expression_type,
-        _variantField_14 = typedLiteral_typeArguments,
-        _variantField_31 = setOrMapLiteral_isSet;
+        _variantField_2 = onClause_superclassConstraints;
 
   LinkedNodeBuilder.stringInterpolation({
     List<LinkedNodeBuilder> stringInterpolation_elements,
@@ -10223,51 +8244,56 @@
 
   LinkedNodeBuilder.switchStatement({
     List<LinkedNodeBuilder> switchStatement_members,
-    int switchStatement_leftParenthesis,
     LinkedNodeBuilder switchStatement_expression,
-    int switchStatement_switchKeyword,
-    int switchStatement_rightParenthesis,
-    int switchStatement_leftBracket,
-    int switchStatement_rightBracket,
   })  : _kind = idl.LinkedNodeKind.switchStatement,
         _variantField_2 = switchStatement_members,
-        _variantField_15 = switchStatement_leftParenthesis,
-        _variantField_7 = switchStatement_expression,
-        _variantField_17 = switchStatement_switchKeyword,
-        _variantField_16 = switchStatement_rightParenthesis,
-        _variantField_18 = switchStatement_leftBracket,
-        _variantField_19 = switchStatement_rightBracket;
+        _variantField_7 = switchStatement_expression;
 
   LinkedNodeBuilder.tryStatement({
     List<LinkedNodeBuilder> tryStatement_catchClauses,
     LinkedNodeBuilder tryStatement_body,
-    int tryStatement_finallyKeyword,
     LinkedNodeBuilder tryStatement_finallyBlock,
-    int tryStatement_tryKeyword,
   })  : _kind = idl.LinkedNodeKind.tryStatement,
         _variantField_2 = tryStatement_catchClauses,
         _variantField_6 = tryStatement_body,
-        _variantField_15 = tryStatement_finallyKeyword,
-        _variantField_7 = tryStatement_finallyBlock,
-        _variantField_16 = tryStatement_tryKeyword;
+        _variantField_7 = tryStatement_finallyBlock;
 
   LinkedNodeBuilder.typeArgumentList({
     List<LinkedNodeBuilder> typeArgumentList_arguments,
-    int typeArgumentList_leftBracket,
-    int typeArgumentList_rightBracket,
   })  : _kind = idl.LinkedNodeKind.typeArgumentList,
-        _variantField_2 = typeArgumentList_arguments,
-        _variantField_15 = typeArgumentList_leftBracket,
-        _variantField_16 = typeArgumentList_rightBracket;
+        _variantField_2 = typeArgumentList_arguments;
+
+  LinkedNodeBuilder.listLiteral({
+    List<LinkedNodeBuilder> typedLiteral_typeArguments,
+    List<LinkedNodeBuilder> listLiteral_elements,
+    LinkedNodeTypeBuilder expression_type,
+  })  : _kind = idl.LinkedNodeKind.listLiteral,
+        _variantField_2 = typedLiteral_typeArguments,
+        _variantField_3 = listLiteral_elements,
+        _variantField_25 = expression_type;
+
+  LinkedNodeBuilder.setOrMapLiteral({
+    List<LinkedNodeBuilder> typedLiteral_typeArguments,
+    List<LinkedNodeBuilder> setOrMapLiteral_elements,
+    LinkedNodeTypeBuilder expression_type,
+  })  : _kind = idl.LinkedNodeKind.setOrMapLiteral,
+        _variantField_2 = typedLiteral_typeArguments,
+        _variantField_3 = setOrMapLiteral_elements,
+        _variantField_25 = expression_type;
+
+  LinkedNodeBuilder.typeName({
+    List<LinkedNodeBuilder> typeName_typeArguments,
+    LinkedNodeBuilder typeName_name,
+    LinkedNodeTypeBuilder typeName_type,
+  })  : _kind = idl.LinkedNodeKind.typeName,
+        _variantField_2 = typeName_typeArguments,
+        _variantField_6 = typeName_name,
+        _variantField_23 = typeName_type;
 
   LinkedNodeBuilder.typeParameterList({
     List<LinkedNodeBuilder> typeParameterList_typeParameters,
-    int typeParameterList_leftBracket,
-    int typeParameterList_rightBracket,
   })  : _kind = idl.LinkedNodeKind.typeParameterList,
-        _variantField_2 = typeParameterList_typeParameters,
-        _variantField_15 = typeParameterList_leftBracket,
-        _variantField_16 = typeParameterList_rightBracket;
+        _variantField_2 = typeParameterList_typeParameters;
 
   LinkedNodeBuilder.variableDeclarationList({
     List<LinkedNodeBuilder> variableDeclarationList_variables,
@@ -10282,10 +8308,8 @@
 
   LinkedNodeBuilder.withClause({
     List<LinkedNodeBuilder> withClause_mixinTypes,
-    int withClause_withKeyword,
   })  : _kind = idl.LinkedNodeKind.withClause,
-        _variantField_2 = withClause_mixinTypes,
-        _variantField_15 = withClause_withKeyword;
+        _variantField_2 = withClause_mixinTypes;
 
   LinkedNodeBuilder.classDeclaration({
     LinkedNodeBuilder annotatedNode_comment,
@@ -10293,15 +8317,13 @@
     LinkedNodeBuilder classDeclaration_extendsClause,
     LinkedNodeBuilder classDeclaration_withClause,
     LinkedNodeBuilder classDeclaration_nativeClause,
-    int nameOffset,
-    int classOrMixinDeclaration_rightBracket,
-    int classOrMixinDeclaration_leftBracket,
     bool classDeclaration_isDartObject,
     LinkedNodeBuilder classOrMixinDeclaration_implementsClause,
     List<LinkedNodeBuilder> classOrMixinDeclaration_members,
     LinkedNodeBuilder classOrMixinDeclaration_typeParameters,
     int codeLength,
     int codeOffset,
+    int nameOffset,
     bool simplyBoundable_isSimplyBounded,
   })  : _kind = idl.LinkedNodeKind.classDeclaration,
         _variantField_11 = annotatedNode_comment,
@@ -10309,15 +8331,13 @@
         _variantField_6 = classDeclaration_extendsClause,
         _variantField_7 = classDeclaration_withClause,
         _variantField_8 = classDeclaration_nativeClause,
-        _variantField_16 = nameOffset,
-        _variantField_18 = classOrMixinDeclaration_rightBracket,
-        _variantField_19 = classOrMixinDeclaration_leftBracket,
         _variantField_27 = classDeclaration_isDartObject,
         _variantField_12 = classOrMixinDeclaration_implementsClause,
         _variantField_5 = classOrMixinDeclaration_members,
         _variantField_13 = classOrMixinDeclaration_typeParameters,
         _variantField_34 = codeLength,
         _variantField_33 = codeOffset,
+        _variantField_16 = nameOffset,
         _variantField_31 = simplyBoundable_isSimplyBounded;
 
   LinkedNodeBuilder.classTypeAlias({
@@ -10326,12 +8346,10 @@
     LinkedNodeBuilder classTypeAlias_typeParameters,
     LinkedNodeBuilder classTypeAlias_superclass,
     LinkedNodeBuilder classTypeAlias_withClause,
-    int nameOffset,
-    int typeAlias_typedefKeyword,
-    int typeAlias_semicolon,
     LinkedNodeBuilder classTypeAlias_implementsClause,
     int codeLength,
     int codeOffset,
+    int nameOffset,
     bool simplyBoundable_isSimplyBounded,
   })  : _kind = idl.LinkedNodeKind.classTypeAlias,
         _variantField_11 = annotatedNode_comment,
@@ -10339,25 +8357,21 @@
         _variantField_6 = classTypeAlias_typeParameters,
         _variantField_7 = classTypeAlias_superclass,
         _variantField_8 = classTypeAlias_withClause,
-        _variantField_16 = nameOffset,
-        _variantField_18 = typeAlias_typedefKeyword,
-        _variantField_19 = typeAlias_semicolon,
         _variantField_9 = classTypeAlias_implementsClause,
         _variantField_34 = codeLength,
         _variantField_33 = codeOffset,
+        _variantField_16 = nameOffset,
         _variantField_31 = simplyBoundable_isSimplyBounded;
 
   LinkedNodeBuilder.declaredIdentifier({
     LinkedNodeBuilder annotatedNode_comment,
     List<LinkedNodeBuilder> annotatedNode_metadata,
     LinkedNodeBuilder declaredIdentifier_identifier,
-    int declaredIdentifier_keyword,
     LinkedNodeBuilder declaredIdentifier_type,
   })  : _kind = idl.LinkedNodeKind.declaredIdentifier,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
         _variantField_6 = declaredIdentifier_identifier,
-        _variantField_15 = declaredIdentifier_keyword,
         _variantField_7 = declaredIdentifier_type;
 
   LinkedNodeBuilder.enumConstantDeclaration({
@@ -10373,379 +8387,269 @@
     LinkedNodeBuilder annotatedNode_comment,
     List<LinkedNodeBuilder> annotatedNode_metadata,
     LinkedNodeBuilder fieldDeclaration_fields,
-    int fieldDeclaration_semicolon,
   })  : _kind = idl.LinkedNodeKind.fieldDeclaration,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
-        _variantField_6 = fieldDeclaration_fields,
-        _variantField_16 = fieldDeclaration_semicolon;
+        _variantField_6 = fieldDeclaration_fields;
 
   LinkedNodeBuilder.genericTypeAlias({
     LinkedNodeBuilder annotatedNode_comment,
     List<LinkedNodeBuilder> annotatedNode_metadata,
     LinkedNodeBuilder genericTypeAlias_typeParameters,
     LinkedNodeBuilder genericTypeAlias_functionType,
-    int nameOffset,
-    int typeAlias_typedefKeyword,
-    int typeAlias_semicolon,
     bool typeAlias_hasSelfReference,
     int codeLength,
     int codeOffset,
+    int nameOffset,
     bool simplyBoundable_isSimplyBounded,
   })  : _kind = idl.LinkedNodeKind.genericTypeAlias,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
         _variantField_6 = genericTypeAlias_typeParameters,
         _variantField_7 = genericTypeAlias_functionType,
-        _variantField_16 = nameOffset,
-        _variantField_18 = typeAlias_typedefKeyword,
-        _variantField_19 = typeAlias_semicolon,
         _variantField_27 = typeAlias_hasSelfReference,
         _variantField_34 = codeLength,
         _variantField_33 = codeOffset,
+        _variantField_16 = nameOffset,
         _variantField_31 = simplyBoundable_isSimplyBounded;
 
   LinkedNodeBuilder.libraryDirective({
     LinkedNodeBuilder annotatedNode_comment,
     List<LinkedNodeBuilder> annotatedNode_metadata,
     LinkedNodeBuilder libraryDirective_name,
-    int directive_keyword,
-    int directive_semicolon,
   })  : _kind = idl.LinkedNodeKind.libraryDirective,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
-        _variantField_6 = libraryDirective_name,
-        _variantField_18 = directive_keyword,
-        _variantField_33 = directive_semicolon;
+        _variantField_6 = libraryDirective_name;
 
   LinkedNodeBuilder.mixinDeclaration({
     LinkedNodeBuilder annotatedNode_comment,
     List<LinkedNodeBuilder> annotatedNode_metadata,
     LinkedNodeBuilder mixinDeclaration_onClause,
-    int mixinDeclaration_mixinKeyword,
-    int nameOffset,
-    int classOrMixinDeclaration_rightBracket,
-    int classOrMixinDeclaration_leftBracket,
     LinkedNodeBuilder classOrMixinDeclaration_implementsClause,
     List<LinkedNodeBuilder> classOrMixinDeclaration_members,
     LinkedNodeBuilder classOrMixinDeclaration_typeParameters,
     int codeLength,
     int codeOffset,
     List<String> mixinDeclaration_superInvokedNames,
+    int nameOffset,
     bool simplyBoundable_isSimplyBounded,
   })  : _kind = idl.LinkedNodeKind.mixinDeclaration,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
         _variantField_6 = mixinDeclaration_onClause,
-        _variantField_15 = mixinDeclaration_mixinKeyword,
-        _variantField_16 = nameOffset,
-        _variantField_18 = classOrMixinDeclaration_rightBracket,
-        _variantField_19 = classOrMixinDeclaration_leftBracket,
         _variantField_12 = classOrMixinDeclaration_implementsClause,
         _variantField_5 = classOrMixinDeclaration_members,
         _variantField_13 = classOrMixinDeclaration_typeParameters,
         _variantField_34 = codeLength,
         _variantField_33 = codeOffset,
         _variantField_36 = mixinDeclaration_superInvokedNames,
+        _variantField_16 = nameOffset,
         _variantField_31 = simplyBoundable_isSimplyBounded;
 
   LinkedNodeBuilder.partDirective({
     LinkedNodeBuilder annotatedNode_comment,
     List<LinkedNodeBuilder> annotatedNode_metadata,
     int nameOffset,
-    int directive_keyword,
-    int uriBasedDirective_uriElement,
-    int directive_semicolon,
     LinkedNodeBuilder uriBasedDirective_uri,
     String uriBasedDirective_uriContent,
+    int uriBasedDirective_uriElement,
   })  : _kind = idl.LinkedNodeKind.partDirective,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
         _variantField_16 = nameOffset,
-        _variantField_18 = directive_keyword,
-        _variantField_19 = uriBasedDirective_uriElement,
-        _variantField_33 = directive_semicolon,
         _variantField_14 = uriBasedDirective_uri,
-        _variantField_22 = uriBasedDirective_uriContent;
+        _variantField_22 = uriBasedDirective_uriContent,
+        _variantField_19 = uriBasedDirective_uriElement;
 
   LinkedNodeBuilder.partOfDirective({
     LinkedNodeBuilder annotatedNode_comment,
     List<LinkedNodeBuilder> annotatedNode_metadata,
     LinkedNodeBuilder partOfDirective_libraryName,
     LinkedNodeBuilder partOfDirective_uri,
-    int partOfDirective_ofKeyword,
-    int directive_keyword,
-    int directive_semicolon,
   })  : _kind = idl.LinkedNodeKind.partOfDirective,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
         _variantField_6 = partOfDirective_libraryName,
-        _variantField_7 = partOfDirective_uri,
-        _variantField_16 = partOfDirective_ofKeyword,
-        _variantField_18 = directive_keyword,
-        _variantField_33 = directive_semicolon;
+        _variantField_7 = partOfDirective_uri;
 
   LinkedNodeBuilder.topLevelVariableDeclaration({
     LinkedNodeBuilder annotatedNode_comment,
     List<LinkedNodeBuilder> annotatedNode_metadata,
     LinkedNodeBuilder topLevelVariableDeclaration_variableList,
-    int topLevelVariableDeclaration_semicolon,
   })  : _kind = idl.LinkedNodeKind.topLevelVariableDeclaration,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
-        _variantField_6 = topLevelVariableDeclaration_variableList,
-        _variantField_15 = topLevelVariableDeclaration_semicolon;
+        _variantField_6 = topLevelVariableDeclaration_variableList;
 
   LinkedNodeBuilder.typeParameter({
     LinkedNodeBuilder annotatedNode_comment,
     List<LinkedNodeBuilder> annotatedNode_metadata,
     LinkedNodeBuilder typeParameter_bound,
-    int typeParameter_extendsKeyword,
     LinkedNodeTypeBuilder typeParameter_defaultType,
-    int nameOffset,
     int codeLength,
     int codeOffset,
+    int nameOffset,
   })  : _kind = idl.LinkedNodeKind.typeParameter,
         _variantField_11 = annotatedNode_comment,
         _variantField_4 = annotatedNode_metadata,
         _variantField_6 = typeParameter_bound,
-        _variantField_15 = typeParameter_extendsKeyword,
         _variantField_23 = typeParameter_defaultType,
-        _variantField_16 = nameOffset,
         _variantField_34 = codeLength,
-        _variantField_33 = codeOffset;
+        _variantField_33 = codeOffset,
+        _variantField_16 = nameOffset;
 
   LinkedNodeBuilder.switchCase({
     List<LinkedNodeBuilder> switchMember_statements,
     LinkedNodeBuilder switchCase_expression,
-    int switchMember_keyword,
-    int switchMember_colon,
     List<LinkedNodeBuilder> switchMember_labels,
   })  : _kind = idl.LinkedNodeKind.switchCase,
         _variantField_4 = switchMember_statements,
         _variantField_6 = switchCase_expression,
-        _variantField_15 = switchMember_keyword,
-        _variantField_16 = switchMember_colon,
         _variantField_3 = switchMember_labels;
 
   LinkedNodeBuilder.switchDefault({
     List<LinkedNodeBuilder> switchMember_statements,
-    int switchMember_keyword,
-    int switchMember_colon,
     List<LinkedNodeBuilder> switchMember_labels,
   })  : _kind = idl.LinkedNodeKind.switchDefault,
         _variantField_4 = switchMember_statements,
-        _variantField_15 = switchMember_keyword,
-        _variantField_16 = switchMember_colon,
         _variantField_3 = switchMember_labels;
 
   LinkedNodeBuilder.annotation({
     LinkedNodeBuilder annotation_arguments,
-    int annotation_atSign,
     LinkedNodeBuilder annotation_constructorName,
     int annotation_element,
     LinkedNodeTypeBuilder annotation_elementType,
     LinkedNodeBuilder annotation_name,
-    int annotation_period,
   })  : _kind = idl.LinkedNodeKind.annotation,
         _variantField_6 = annotation_arguments,
-        _variantField_15 = annotation_atSign,
         _variantField_7 = annotation_constructorName,
         _variantField_17 = annotation_element,
         _variantField_23 = annotation_elementType,
-        _variantField_8 = annotation_name,
-        _variantField_16 = annotation_period;
+        _variantField_8 = annotation_name;
 
   LinkedNodeBuilder.asExpression({
     LinkedNodeBuilder asExpression_expression,
-    int asExpression_asOperator,
     LinkedNodeBuilder asExpression_type,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.asExpression,
         _variantField_6 = asExpression_expression,
-        _variantField_15 = asExpression_asOperator,
         _variantField_7 = asExpression_type,
         _variantField_25 = expression_type;
 
   LinkedNodeBuilder.assertInitializer({
     LinkedNodeBuilder assertInitializer_condition,
-    int assertInitializer_assertKeyword,
     LinkedNodeBuilder assertInitializer_message,
-    int assertInitializer_leftParenthesis,
-    int assertInitializer_comma,
-    int assertInitializer_rightParenthesis,
   })  : _kind = idl.LinkedNodeKind.assertInitializer,
         _variantField_6 = assertInitializer_condition,
-        _variantField_15 = assertInitializer_assertKeyword,
-        _variantField_7 = assertInitializer_message,
-        _variantField_17 = assertInitializer_leftParenthesis,
-        _variantField_16 = assertInitializer_comma,
-        _variantField_18 = assertInitializer_rightParenthesis;
+        _variantField_7 = assertInitializer_message;
 
   LinkedNodeBuilder.assertStatement({
     LinkedNodeBuilder assertStatement_condition,
-    int assertStatement_assertKeyword,
     LinkedNodeBuilder assertStatement_message,
-    int assertStatement_leftParenthesis,
-    int assertStatement_comma,
-    int assertStatement_rightParenthesis,
-    int assertStatement_semicolon,
   })  : _kind = idl.LinkedNodeKind.assertStatement,
         _variantField_6 = assertStatement_condition,
-        _variantField_15 = assertStatement_assertKeyword,
-        _variantField_7 = assertStatement_message,
-        _variantField_17 = assertStatement_leftParenthesis,
-        _variantField_16 = assertStatement_comma,
-        _variantField_18 = assertStatement_rightParenthesis,
-        _variantField_19 = assertStatement_semicolon;
+        _variantField_7 = assertStatement_message;
 
   LinkedNodeBuilder.assignmentExpression({
     LinkedNodeBuilder assignmentExpression_leftHandSide,
-    int assignmentExpression_element,
     LinkedNodeBuilder assignmentExpression_rightHandSide,
     LinkedNodeTypeBuilder assignmentExpression_elementType,
-    int assignmentExpression_operator,
+    int assignmentExpression_element,
+    idl.UnlinkedTokenType assignmentExpression_operator,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.assignmentExpression,
         _variantField_6 = assignmentExpression_leftHandSide,
-        _variantField_15 = assignmentExpression_element,
         _variantField_7 = assignmentExpression_rightHandSide,
         _variantField_23 = assignmentExpression_elementType,
-        _variantField_16 = assignmentExpression_operator,
+        _variantField_15 = assignmentExpression_element,
+        _variantField_28 = assignmentExpression_operator,
         _variantField_25 = expression_type;
 
   LinkedNodeBuilder.awaitExpression({
     LinkedNodeBuilder awaitExpression_expression,
-    int awaitExpression_awaitKeyword,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.awaitExpression,
         _variantField_6 = awaitExpression_expression,
-        _variantField_15 = awaitExpression_awaitKeyword,
         _variantField_25 = expression_type;
 
   LinkedNodeBuilder.blockFunctionBody({
     LinkedNodeBuilder blockFunctionBody_block,
-    int blockFunctionBody_keyword,
-    int blockFunctionBody_star,
   })  : _kind = idl.LinkedNodeKind.blockFunctionBody,
-        _variantField_6 = blockFunctionBody_block,
-        _variantField_15 = blockFunctionBody_keyword,
-        _variantField_16 = blockFunctionBody_star;
+        _variantField_6 = blockFunctionBody_block;
 
   LinkedNodeBuilder.breakStatement({
     LinkedNodeBuilder breakStatement_label,
-    int breakStatement_breakKeyword,
-    int breakStatement_semicolon,
   })  : _kind = idl.LinkedNodeKind.breakStatement,
-        _variantField_6 = breakStatement_label,
-        _variantField_15 = breakStatement_breakKeyword,
-        _variantField_16 = breakStatement_semicolon;
+        _variantField_6 = breakStatement_label;
 
   LinkedNodeBuilder.catchClause({
     LinkedNodeBuilder catchClause_body,
-    int catchClause_catchKeyword,
     LinkedNodeBuilder catchClause_exceptionParameter,
-    int catchClause_leftParenthesis,
     LinkedNodeBuilder catchClause_exceptionType,
-    int catchClause_comma,
-    int catchClause_onKeyword,
-    int catchClause_rightParenthesis,
     LinkedNodeBuilder catchClause_stackTraceParameter,
   })  : _kind = idl.LinkedNodeKind.catchClause,
         _variantField_6 = catchClause_body,
-        _variantField_15 = catchClause_catchKeyword,
         _variantField_7 = catchClause_exceptionParameter,
-        _variantField_17 = catchClause_leftParenthesis,
         _variantField_8 = catchClause_exceptionType,
-        _variantField_16 = catchClause_comma,
-        _variantField_18 = catchClause_onKeyword,
-        _variantField_19 = catchClause_rightParenthesis,
         _variantField_9 = catchClause_stackTraceParameter;
 
   LinkedNodeBuilder.commentReference({
     LinkedNodeBuilder commentReference_identifier,
-    int commentReference_newKeyword,
   })  : _kind = idl.LinkedNodeKind.commentReference,
-        _variantField_6 = commentReference_identifier,
-        _variantField_15 = commentReference_newKeyword;
+        _variantField_6 = commentReference_identifier;
 
   LinkedNodeBuilder.conditionalExpression({
     LinkedNodeBuilder conditionalExpression_condition,
-    int conditionalExpression_colon,
     LinkedNodeBuilder conditionalExpression_elseExpression,
     LinkedNodeBuilder conditionalExpression_thenExpression,
-    int conditionalExpression_question,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.conditionalExpression,
         _variantField_6 = conditionalExpression_condition,
-        _variantField_15 = conditionalExpression_colon,
         _variantField_7 = conditionalExpression_elseExpression,
         _variantField_8 = conditionalExpression_thenExpression,
-        _variantField_16 = conditionalExpression_question,
         _variantField_25 = expression_type;
 
   LinkedNodeBuilder.configuration({
     LinkedNodeBuilder configuration_name,
-    int configuration_ifKeyword,
     LinkedNodeBuilder configuration_value,
-    int configuration_rightParenthesis,
     LinkedNodeBuilder configuration_uri,
-    int configuration_leftParenthesis,
-    int configuration_equalToken,
   })  : _kind = idl.LinkedNodeKind.configuration,
         _variantField_6 = configuration_name,
-        _variantField_15 = configuration_ifKeyword,
         _variantField_7 = configuration_value,
-        _variantField_17 = configuration_rightParenthesis,
-        _variantField_8 = configuration_uri,
-        _variantField_16 = configuration_leftParenthesis,
-        _variantField_18 = configuration_equalToken;
+        _variantField_8 = configuration_uri;
 
   LinkedNodeBuilder.constructorFieldInitializer({
     LinkedNodeBuilder constructorFieldInitializer_expression,
-    int constructorFieldInitializer_equals,
     LinkedNodeBuilder constructorFieldInitializer_fieldName,
-    int constructorFieldInitializer_thisKeyword,
-    int constructorFieldInitializer_period,
   })  : _kind = idl.LinkedNodeKind.constructorFieldInitializer,
         _variantField_6 = constructorFieldInitializer_expression,
-        _variantField_15 = constructorFieldInitializer_equals,
-        _variantField_7 = constructorFieldInitializer_fieldName,
-        _variantField_17 = constructorFieldInitializer_thisKeyword,
-        _variantField_16 = constructorFieldInitializer_period;
+        _variantField_7 = constructorFieldInitializer_fieldName;
 
   LinkedNodeBuilder.constructorName({
     LinkedNodeBuilder constructorName_name,
-    int constructorName_element,
     LinkedNodeBuilder constructorName_type,
     LinkedNodeTypeBuilder constructorName_elementType,
-    int constructorName_period,
+    int constructorName_element,
   })  : _kind = idl.LinkedNodeKind.constructorName,
         _variantField_6 = constructorName_name,
-        _variantField_15 = constructorName_element,
         _variantField_7 = constructorName_type,
         _variantField_23 = constructorName_elementType,
-        _variantField_16 = constructorName_period;
+        _variantField_15 = constructorName_element;
 
   LinkedNodeBuilder.continueStatement({
     LinkedNodeBuilder continueStatement_label,
-    int continueStatement_continueKeyword,
-    int continueStatement_semicolon,
   })  : _kind = idl.LinkedNodeKind.continueStatement,
-        _variantField_6 = continueStatement_label,
-        _variantField_15 = continueStatement_continueKeyword,
-        _variantField_16 = continueStatement_semicolon;
+        _variantField_6 = continueStatement_label;
 
   LinkedNodeBuilder.defaultFormalParameter({
     LinkedNodeBuilder defaultFormalParameter_defaultValue,
-    int defaultFormalParameter_separator,
     LinkedNodeBuilder defaultFormalParameter_parameter,
     int codeLength,
     int codeOffset,
     idl.LinkedNodeFormalParameterKind defaultFormalParameter_kind,
   })  : _kind = idl.LinkedNodeKind.defaultFormalParameter,
         _variantField_6 = defaultFormalParameter_defaultValue,
-        _variantField_15 = defaultFormalParameter_separator,
         _variantField_7 = defaultFormalParameter_parameter,
         _variantField_34 = codeLength,
         _variantField_33 = codeOffset,
@@ -10753,118 +8657,70 @@
 
   LinkedNodeBuilder.doStatement({
     LinkedNodeBuilder doStatement_body,
-    int doStatement_leftParenthesis,
     LinkedNodeBuilder doStatement_condition,
-    int doStatement_doKeyword,
-    int doStatement_rightParenthesis,
-    int doStatement_semicolon,
-    int doStatement_whileKeyword,
   })  : _kind = idl.LinkedNodeKind.doStatement,
         _variantField_6 = doStatement_body,
-        _variantField_15 = doStatement_leftParenthesis,
-        _variantField_7 = doStatement_condition,
-        _variantField_17 = doStatement_doKeyword,
-        _variantField_16 = doStatement_rightParenthesis,
-        _variantField_18 = doStatement_semicolon,
-        _variantField_19 = doStatement_whileKeyword;
+        _variantField_7 = doStatement_condition;
 
   LinkedNodeBuilder.expressionFunctionBody({
     LinkedNodeBuilder expressionFunctionBody_expression,
-    int expressionFunctionBody_arrow,
-    int expressionFunctionBody_semicolon,
-    int expressionFunctionBody_keyword,
   })  : _kind = idl.LinkedNodeKind.expressionFunctionBody,
-        _variantField_6 = expressionFunctionBody_expression,
-        _variantField_15 = expressionFunctionBody_arrow,
-        _variantField_17 = expressionFunctionBody_semicolon,
-        _variantField_16 = expressionFunctionBody_keyword;
+        _variantField_6 = expressionFunctionBody_expression;
 
   LinkedNodeBuilder.expressionStatement({
     LinkedNodeBuilder expressionStatement_expression,
-    int expressionStatement_semicolon,
   })  : _kind = idl.LinkedNodeKind.expressionStatement,
-        _variantField_6 = expressionStatement_expression,
-        _variantField_15 = expressionStatement_semicolon;
+        _variantField_6 = expressionStatement_expression;
 
   LinkedNodeBuilder.extendsClause({
     LinkedNodeBuilder extendsClause_superclass,
-    int extendsClause_extendsKeyword,
   })  : _kind = idl.LinkedNodeKind.extendsClause,
-        _variantField_6 = extendsClause_superclass,
-        _variantField_15 = extendsClause_extendsKeyword;
+        _variantField_6 = extendsClause_superclass;
 
   LinkedNodeBuilder.forEachPartsWithDeclaration({
     LinkedNodeBuilder forEachParts_iterable,
-    int forEachParts_inKeyword,
     LinkedNodeBuilder forEachPartsWithDeclaration_loopVariable,
   })  : _kind = idl.LinkedNodeKind.forEachPartsWithDeclaration,
         _variantField_6 = forEachParts_iterable,
-        _variantField_15 = forEachParts_inKeyword,
         _variantField_7 = forEachPartsWithDeclaration_loopVariable;
 
   LinkedNodeBuilder.forEachPartsWithIdentifier({
     LinkedNodeBuilder forEachParts_iterable,
-    int forEachParts_inKeyword,
     LinkedNodeBuilder forEachPartsWithIdentifier_identifier,
   })  : _kind = idl.LinkedNodeKind.forEachPartsWithIdentifier,
         _variantField_6 = forEachParts_iterable,
-        _variantField_15 = forEachParts_inKeyword,
         _variantField_7 = forEachPartsWithIdentifier_identifier;
 
   LinkedNodeBuilder.forElement({
     LinkedNodeBuilder forMixin_forLoopParts,
-    int forMixin_awaitKeyword,
     LinkedNodeBuilder forElement_body,
-    int forMixin_leftParenthesis,
-    int forMixin_forKeyword,
-    int forMixin_rightParenthesis,
   })  : _kind = idl.LinkedNodeKind.forElement,
         _variantField_6 = forMixin_forLoopParts,
-        _variantField_15 = forMixin_awaitKeyword,
-        _variantField_7 = forElement_body,
-        _variantField_17 = forMixin_leftParenthesis,
-        _variantField_16 = forMixin_forKeyword,
-        _variantField_19 = forMixin_rightParenthesis;
+        _variantField_7 = forElement_body;
 
   LinkedNodeBuilder.forStatement({
     LinkedNodeBuilder forMixin_forLoopParts,
-    int forMixin_awaitKeyword,
     LinkedNodeBuilder forStatement_body,
-    int forMixin_leftParenthesis,
-    int forMixin_forKeyword,
-    int forMixin_rightParenthesis,
   })  : _kind = idl.LinkedNodeKind.forStatement,
         _variantField_6 = forMixin_forLoopParts,
-        _variantField_15 = forMixin_awaitKeyword,
-        _variantField_7 = forStatement_body,
-        _variantField_17 = forMixin_leftParenthesis,
-        _variantField_16 = forMixin_forKeyword,
-        _variantField_19 = forMixin_rightParenthesis;
+        _variantField_7 = forStatement_body;
 
   LinkedNodeBuilder.forPartsWithDeclarations({
     LinkedNodeBuilder forParts_condition,
-    int forParts_leftSeparator,
     LinkedNodeBuilder forPartsWithDeclarations_variables,
-    int forParts_rightSeparator,
     List<LinkedNodeBuilder> forParts_updaters,
   })  : _kind = idl.LinkedNodeKind.forPartsWithDeclarations,
         _variantField_6 = forParts_condition,
-        _variantField_15 = forParts_leftSeparator,
         _variantField_7 = forPartsWithDeclarations_variables,
-        _variantField_16 = forParts_rightSeparator,
         _variantField_5 = forParts_updaters;
 
   LinkedNodeBuilder.forPartsWithExpression({
     LinkedNodeBuilder forParts_condition,
-    int forParts_leftSeparator,
     LinkedNodeBuilder forPartsWithExpression_initialization,
-    int forParts_rightSeparator,
     List<LinkedNodeBuilder> forParts_updaters,
   })  : _kind = idl.LinkedNodeKind.forPartsWithExpression,
         _variantField_6 = forParts_condition,
-        _variantField_15 = forParts_leftSeparator,
         _variantField_7 = forPartsWithExpression_initialization,
-        _variantField_16 = forParts_rightSeparator,
         _variantField_5 = forParts_updaters;
 
   LinkedNodeBuilder.functionDeclarationStatement({
@@ -10874,102 +8730,57 @@
 
   LinkedNodeBuilder.ifElement({
     LinkedNodeBuilder ifMixin_condition,
-    int ifMixin_elseKeyword,
-    int ifMixin_leftParenthesis,
     LinkedNodeBuilder ifElement_thenElement,
-    int ifMixin_ifKeyword,
-    int ifMixin_rightParenthesis,
     LinkedNodeBuilder ifElement_elseElement,
   })  : _kind = idl.LinkedNodeKind.ifElement,
         _variantField_6 = ifMixin_condition,
-        _variantField_15 = ifMixin_elseKeyword,
-        _variantField_17 = ifMixin_leftParenthesis,
         _variantField_8 = ifElement_thenElement,
-        _variantField_16 = ifMixin_ifKeyword,
-        _variantField_18 = ifMixin_rightParenthesis,
         _variantField_9 = ifElement_elseElement;
 
   LinkedNodeBuilder.ifStatement({
     LinkedNodeBuilder ifMixin_condition,
-    int ifMixin_elseKeyword,
     LinkedNodeBuilder ifStatement_elseStatement,
-    int ifMixin_leftParenthesis,
     LinkedNodeBuilder ifStatement_thenStatement,
-    int ifMixin_ifKeyword,
-    int ifMixin_rightParenthesis,
   })  : _kind = idl.LinkedNodeKind.ifStatement,
         _variantField_6 = ifMixin_condition,
-        _variantField_15 = ifMixin_elseKeyword,
         _variantField_7 = ifStatement_elseStatement,
-        _variantField_17 = ifMixin_leftParenthesis,
-        _variantField_8 = ifStatement_thenStatement,
-        _variantField_16 = ifMixin_ifKeyword,
-        _variantField_18 = ifMixin_rightParenthesis;
+        _variantField_8 = ifStatement_thenStatement;
 
   LinkedNodeBuilder.indexExpression({
     LinkedNodeBuilder indexExpression_index,
-    int indexExpression_element,
     LinkedNodeBuilder indexExpression_target,
-    int indexExpression_leftBracket,
     LinkedNodeTypeBuilder indexExpression_elementType,
-    int indexExpression_period,
-    int indexExpression_rightBracket,
+    int indexExpression_element,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.indexExpression,
         _variantField_6 = indexExpression_index,
-        _variantField_15 = indexExpression_element,
         _variantField_7 = indexExpression_target,
-        _variantField_17 = indexExpression_leftBracket,
         _variantField_23 = indexExpression_elementType,
-        _variantField_16 = indexExpression_period,
-        _variantField_18 = indexExpression_rightBracket,
-        _variantField_25 = expression_type;
-
-  LinkedNodeBuilder.instanceCreationExpression({
-    LinkedNodeBuilder instanceCreationExpression_arguments,
-    LinkedNodeBuilder instanceCreationExpression_constructorName,
-    LinkedNodeBuilder instanceCreationExpression_typeArguments,
-    LinkedNodeTypeBuilder expression_type,
-  })  : _kind = idl.LinkedNodeKind.instanceCreationExpression,
-        _variantField_6 = instanceCreationExpression_arguments,
-        _variantField_7 = instanceCreationExpression_constructorName,
-        _variantField_8 = instanceCreationExpression_typeArguments,
+        _variantField_15 = indexExpression_element,
         _variantField_25 = expression_type;
 
   LinkedNodeBuilder.interpolationExpression({
     LinkedNodeBuilder interpolationExpression_expression,
-    int interpolationExpression_leftBracket,
-    int interpolationExpression_rightBracket,
   })  : _kind = idl.LinkedNodeKind.interpolationExpression,
-        _variantField_6 = interpolationExpression_expression,
-        _variantField_15 = interpolationExpression_leftBracket,
-        _variantField_16 = interpolationExpression_rightBracket;
+        _variantField_6 = interpolationExpression_expression;
 
   LinkedNodeBuilder.isExpression({
     LinkedNodeBuilder isExpression_expression,
-    int isExpression_isOperator,
     LinkedNodeBuilder isExpression_type,
-    int isExpression_notOperator,
   })  : _kind = idl.LinkedNodeKind.isExpression,
         _variantField_6 = isExpression_expression,
-        _variantField_15 = isExpression_isOperator,
-        _variantField_7 = isExpression_type,
-        _variantField_16 = isExpression_notOperator;
+        _variantField_7 = isExpression_type;
 
   LinkedNodeBuilder.label({
     LinkedNodeBuilder label_label,
-    int label_colon,
   })  : _kind = idl.LinkedNodeKind.label,
-        _variantField_6 = label_label,
-        _variantField_15 = label_colon;
+        _variantField_6 = label_label;
 
   LinkedNodeBuilder.mapLiteralEntry({
     LinkedNodeBuilder mapLiteralEntry_key,
-    int mapLiteralEntry_separator,
     LinkedNodeBuilder mapLiteralEntry_value,
   })  : _kind = idl.LinkedNodeKind.mapLiteralEntry,
         _variantField_6 = mapLiteralEntry_key,
-        _variantField_15 = mapLiteralEntry_separator,
         _variantField_7 = mapLiteralEntry_value;
 
   LinkedNodeBuilder.namedExpression({
@@ -10981,244 +8792,191 @@
 
   LinkedNodeBuilder.nativeClause({
     LinkedNodeBuilder nativeClause_name,
-    int nativeClause_nativeKeyword,
   })  : _kind = idl.LinkedNodeKind.nativeClause,
-        _variantField_6 = nativeClause_name,
-        _variantField_15 = nativeClause_nativeKeyword;
+        _variantField_6 = nativeClause_name;
 
   LinkedNodeBuilder.nativeFunctionBody({
     LinkedNodeBuilder nativeFunctionBody_stringLiteral,
-    int nativeFunctionBody_nativeKeyword,
-    int nativeFunctionBody_semicolon,
   })  : _kind = idl.LinkedNodeKind.nativeFunctionBody,
-        _variantField_6 = nativeFunctionBody_stringLiteral,
-        _variantField_15 = nativeFunctionBody_nativeKeyword,
-        _variantField_16 = nativeFunctionBody_semicolon;
+        _variantField_6 = nativeFunctionBody_stringLiteral;
 
   LinkedNodeBuilder.parenthesizedExpression({
     LinkedNodeBuilder parenthesizedExpression_expression,
-    int parenthesizedExpression_leftParenthesis,
-    int parenthesizedExpression_rightParenthesis,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.parenthesizedExpression,
         _variantField_6 = parenthesizedExpression_expression,
-        _variantField_15 = parenthesizedExpression_leftParenthesis,
-        _variantField_16 = parenthesizedExpression_rightParenthesis,
         _variantField_25 = expression_type;
 
   LinkedNodeBuilder.postfixExpression({
     LinkedNodeBuilder postfixExpression_operand,
-    int postfixExpression_element,
     LinkedNodeTypeBuilder postfixExpression_elementType,
-    int postfixExpression_operator,
+    int postfixExpression_element,
+    idl.UnlinkedTokenType postfixExpression_operator,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.postfixExpression,
         _variantField_6 = postfixExpression_operand,
-        _variantField_15 = postfixExpression_element,
         _variantField_23 = postfixExpression_elementType,
-        _variantField_16 = postfixExpression_operator,
+        _variantField_15 = postfixExpression_element,
+        _variantField_28 = postfixExpression_operator,
         _variantField_25 = expression_type;
 
   LinkedNodeBuilder.prefixedIdentifier({
     LinkedNodeBuilder prefixedIdentifier_identifier,
-    int prefixedIdentifier_period,
     LinkedNodeBuilder prefixedIdentifier_prefix,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.prefixedIdentifier,
         _variantField_6 = prefixedIdentifier_identifier,
-        _variantField_15 = prefixedIdentifier_period,
         _variantField_7 = prefixedIdentifier_prefix,
         _variantField_25 = expression_type;
 
   LinkedNodeBuilder.prefixExpression({
     LinkedNodeBuilder prefixExpression_operand,
-    int prefixExpression_element,
     LinkedNodeTypeBuilder prefixExpression_elementType,
+    int prefixExpression_element,
     idl.UnlinkedTokenType prefixExpression_operator,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.prefixExpression,
         _variantField_6 = prefixExpression_operand,
-        _variantField_15 = prefixExpression_element,
         _variantField_23 = prefixExpression_elementType,
+        _variantField_15 = prefixExpression_element,
         _variantField_28 = prefixExpression_operator,
         _variantField_25 = expression_type;
 
   LinkedNodeBuilder.propertyAccess({
     LinkedNodeBuilder propertyAccess_propertyName,
-    int propertyAccess_operator,
     LinkedNodeBuilder propertyAccess_target,
+    idl.UnlinkedTokenType propertyAccess_operator,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.propertyAccess,
         _variantField_6 = propertyAccess_propertyName,
-        _variantField_15 = propertyAccess_operator,
         _variantField_7 = propertyAccess_target,
+        _variantField_28 = propertyAccess_operator,
         _variantField_25 = expression_type;
 
   LinkedNodeBuilder.redirectingConstructorInvocation({
     LinkedNodeBuilder redirectingConstructorInvocation_arguments,
-    int redirectingConstructorInvocation_element,
     LinkedNodeBuilder redirectingConstructorInvocation_constructorName,
-    int redirectingConstructorInvocation_thisKeyword,
     LinkedNodeTypeBuilder redirectingConstructorInvocation_elementType,
-    int redirectingConstructorInvocation_period,
+    int redirectingConstructorInvocation_element,
   })  : _kind = idl.LinkedNodeKind.redirectingConstructorInvocation,
         _variantField_6 = redirectingConstructorInvocation_arguments,
-        _variantField_15 = redirectingConstructorInvocation_element,
         _variantField_7 = redirectingConstructorInvocation_constructorName,
-        _variantField_17 = redirectingConstructorInvocation_thisKeyword,
         _variantField_23 = redirectingConstructorInvocation_elementType,
-        _variantField_16 = redirectingConstructorInvocation_period;
+        _variantField_15 = redirectingConstructorInvocation_element;
 
   LinkedNodeBuilder.returnStatement({
     LinkedNodeBuilder returnStatement_expression,
-    int returnStatement_returnKeyword,
-    int returnStatement_semicolon,
   })  : _kind = idl.LinkedNodeKind.returnStatement,
-        _variantField_6 = returnStatement_expression,
-        _variantField_15 = returnStatement_returnKeyword,
-        _variantField_16 = returnStatement_semicolon;
+        _variantField_6 = returnStatement_expression;
 
   LinkedNodeBuilder.spreadElement({
     LinkedNodeBuilder spreadElement_expression,
-    idl.UnlinkedTokenType spreadElement_spreadOperator2,
+    idl.UnlinkedTokenType spreadElement_spreadOperator,
   })  : _kind = idl.LinkedNodeKind.spreadElement,
         _variantField_6 = spreadElement_expression,
-        _variantField_40 = spreadElement_spreadOperator2;
+        _variantField_38 = spreadElement_spreadOperator;
 
   LinkedNodeBuilder.superConstructorInvocation({
     LinkedNodeBuilder superConstructorInvocation_arguments,
-    int superConstructorInvocation_element,
     LinkedNodeBuilder superConstructorInvocation_constructorName,
-    int superConstructorInvocation_superKeyword,
     LinkedNodeTypeBuilder superConstructorInvocation_elementType,
-    int superConstructorInvocation_period,
+    int superConstructorInvocation_element,
   })  : _kind = idl.LinkedNodeKind.superConstructorInvocation,
         _variantField_6 = superConstructorInvocation_arguments,
-        _variantField_15 = superConstructorInvocation_element,
         _variantField_7 = superConstructorInvocation_constructorName,
-        _variantField_17 = superConstructorInvocation_superKeyword,
         _variantField_23 = superConstructorInvocation_elementType,
-        _variantField_16 = superConstructorInvocation_period;
+        _variantField_15 = superConstructorInvocation_element;
 
   LinkedNodeBuilder.throwExpression({
     LinkedNodeBuilder throwExpression_expression,
-    int throwExpression_throwKeyword,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.throwExpression,
         _variantField_6 = throwExpression_expression,
-        _variantField_15 = throwExpression_throwKeyword,
         _variantField_25 = expression_type;
 
-  LinkedNodeBuilder.typeName({
-    LinkedNodeBuilder typeName_name,
-    int typeName_question,
-    LinkedNodeBuilder typeName_typeArguments,
-    LinkedNodeTypeBuilder typeName_type,
-  })  : _kind = idl.LinkedNodeKind.typeName,
-        _variantField_6 = typeName_name,
-        _variantField_15 = typeName_question,
-        _variantField_7 = typeName_typeArguments,
-        _variantField_23 = typeName_type;
-
   LinkedNodeBuilder.variableDeclarationStatement({
     LinkedNodeBuilder variableDeclarationStatement_variables,
-    int variableDeclarationStatement_semicolon,
   })  : _kind = idl.LinkedNodeKind.variableDeclarationStatement,
-        _variantField_6 = variableDeclarationStatement_variables,
-        _variantField_15 = variableDeclarationStatement_semicolon;
+        _variantField_6 = variableDeclarationStatement_variables;
 
   LinkedNodeBuilder.whileStatement({
     LinkedNodeBuilder whileStatement_body,
-    int whileStatement_leftParenthesis,
     LinkedNodeBuilder whileStatement_condition,
-    int whileStatement_whileKeyword,
-    int whileStatement_rightParenthesis,
   })  : _kind = idl.LinkedNodeKind.whileStatement,
         _variantField_6 = whileStatement_body,
-        _variantField_15 = whileStatement_leftParenthesis,
-        _variantField_7 = whileStatement_condition,
-        _variantField_17 = whileStatement_whileKeyword,
-        _variantField_16 = whileStatement_rightParenthesis;
+        _variantField_7 = whileStatement_condition;
 
   LinkedNodeBuilder.yieldStatement({
     LinkedNodeBuilder yieldStatement_expression,
-    int yieldStatement_yieldKeyword,
-    int yieldStatement_semicolon,
-    int yieldStatement_star,
   })  : _kind = idl.LinkedNodeKind.yieldStatement,
-        _variantField_6 = yieldStatement_expression,
-        _variantField_15 = yieldStatement_yieldKeyword,
-        _variantField_17 = yieldStatement_semicolon,
-        _variantField_16 = yieldStatement_star;
-
-  LinkedNodeBuilder.emptyFunctionBody({
-    int emptyFunctionBody_semicolon,
-  })  : _kind = idl.LinkedNodeKind.emptyFunctionBody,
-        _variantField_15 = emptyFunctionBody_semicolon;
-
-  LinkedNodeBuilder.emptyStatement({
-    int emptyStatement_semicolon,
-  })  : _kind = idl.LinkedNodeKind.emptyStatement,
-        _variantField_15 = emptyStatement_semicolon;
-
-  LinkedNodeBuilder.interpolationString({
-    int interpolationString_token,
-    String interpolationString_value,
-  })  : _kind = idl.LinkedNodeKind.interpolationString,
-        _variantField_15 = interpolationString_token,
-        _variantField_30 = interpolationString_value;
-
-  LinkedNodeBuilder.nullLiteral({
-    int nullLiteral_literal,
-    LinkedNodeTypeBuilder expression_type,
-  })  : _kind = idl.LinkedNodeKind.nullLiteral,
-        _variantField_15 = nullLiteral_literal,
-        _variantField_25 = expression_type;
-
-  LinkedNodeBuilder.rethrowExpression({
-    int rethrowExpression_rethrowKeyword,
-    LinkedNodeTypeBuilder expression_type,
-  })  : _kind = idl.LinkedNodeKind.rethrowExpression,
-        _variantField_15 = rethrowExpression_rethrowKeyword,
-        _variantField_25 = expression_type;
-
-  LinkedNodeBuilder.scriptTag({
-    int scriptTag_scriptTag,
-  })  : _kind = idl.LinkedNodeKind.scriptTag,
-        _variantField_15 = scriptTag_scriptTag;
+        _variantField_6 = yieldStatement_expression;
 
   LinkedNodeBuilder.simpleIdentifier({
-    int simpleIdentifier_element,
     LinkedNodeTypeBuilder simpleIdentifier_elementType,
-    bool simpleIdentifier_isDeclaration,
+    int simpleIdentifier_element,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.simpleIdentifier,
-        _variantField_15 = simpleIdentifier_element,
         _variantField_23 = simpleIdentifier_elementType,
-        _variantField_27 = simpleIdentifier_isDeclaration,
+        _variantField_15 = simpleIdentifier_element,
         _variantField_25 = expression_type;
 
-  LinkedNodeBuilder.superExpression({
-    int superExpression_superKeyword,
+  LinkedNodeBuilder.emptyFunctionBody({
+    int emptyFunctionBody_fake,
+  })  : _kind = idl.LinkedNodeKind.emptyFunctionBody,
+        _variantField_15 = emptyFunctionBody_fake;
+
+  LinkedNodeBuilder.emptyStatement({
+    int emptyStatement_fake,
+  })  : _kind = idl.LinkedNodeKind.emptyStatement,
+        _variantField_15 = emptyStatement_fake;
+
+  LinkedNodeBuilder.nullLiteral({
+    int nullLiteral_fake,
     LinkedNodeTypeBuilder expression_type,
-  })  : _kind = idl.LinkedNodeKind.superExpression,
-        _variantField_15 = superExpression_superKeyword,
+  })  : _kind = idl.LinkedNodeKind.nullLiteral,
+        _variantField_15 = nullLiteral_fake,
         _variantField_25 = expression_type;
 
+  LinkedNodeBuilder.booleanLiteral({
+    bool booleanLiteral_value,
+  })  : _kind = idl.LinkedNodeKind.booleanLiteral,
+        _variantField_27 = booleanLiteral_value;
+
+  LinkedNodeBuilder.hideCombinator({
+    List<String> names,
+  })  : _kind = idl.LinkedNodeKind.hideCombinator,
+        _variantField_36 = names;
+
+  LinkedNodeBuilder.showCombinator({
+    List<String> names,
+  })  : _kind = idl.LinkedNodeKind.showCombinator,
+        _variantField_36 = names;
+
   LinkedNodeBuilder.symbolLiteral({
-    int symbolLiteral_poundSign,
     List<String> names,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.symbolLiteral,
-        _variantField_15 = symbolLiteral_poundSign,
         _variantField_36 = names,
         _variantField_25 = expression_type;
 
+  LinkedNodeBuilder.doubleLiteral({
+    double doubleLiteral_value,
+  })  : _kind = idl.LinkedNodeKind.doubleLiteral,
+        _variantField_21 = doubleLiteral_value;
+
+  LinkedNodeBuilder.rethrowExpression({
+    LinkedNodeTypeBuilder expression_type,
+  })  : _kind = idl.LinkedNodeKind.rethrowExpression,
+        _variantField_25 = expression_type;
+
+  LinkedNodeBuilder.superExpression({
+    LinkedNodeTypeBuilder expression_type,
+  })  : _kind = idl.LinkedNodeKind.superExpression,
+        _variantField_25 = expression_type;
+
   LinkedNodeBuilder.thisExpression({
-    int thisExpression_thisKeyword,
     LinkedNodeTypeBuilder expression_type,
   })  : _kind = idl.LinkedNodeKind.thisExpression,
-        _variantField_15 = thisExpression_thisKeyword,
         _variantField_25 = expression_type;
 
   LinkedNodeBuilder.integerLiteral({
@@ -11226,29 +8984,10 @@
   })  : _kind = idl.LinkedNodeKind.integerLiteral,
         _variantField_16 = integerLiteral_value;
 
-  LinkedNodeBuilder.hideCombinator({
-    int combinator_keyword,
-    List<String> names,
-  })  : _kind = idl.LinkedNodeKind.hideCombinator,
-        _variantField_19 = combinator_keyword,
-        _variantField_36 = names;
-
-  LinkedNodeBuilder.showCombinator({
-    int combinator_keyword,
-    List<String> names,
-  })  : _kind = idl.LinkedNodeKind.showCombinator,
-        _variantField_19 = combinator_keyword,
-        _variantField_36 = names;
-
-  LinkedNodeBuilder.booleanLiteral({
-    bool booleanLiteral_value,
-  })  : _kind = idl.LinkedNodeKind.booleanLiteral,
-        _variantField_27 = booleanLiteral_value;
-
-  LinkedNodeBuilder.doubleLiteral({
-    double doubleLiteral_value,
-  })  : _kind = idl.LinkedNodeKind.doubleLiteral,
-        _variantField_21 = doubleLiteral_value;
+  LinkedNodeBuilder.interpolationString({
+    String interpolationString_value,
+  })  : _kind = idl.LinkedNodeKind.interpolationString,
+        _variantField_30 = interpolationString_value;
 
   LinkedNodeBuilder.simpleStringLiteral({
     String simpleStringLiteral_value,
@@ -11280,7 +9019,7 @@
   /// Accumulate non-[informative] data into [signature].
   void collectApiSignature(api_sig.ApiSignature signature) {
     signature.addInt(this._kind == null ? 0 : this._kind.index);
-    signature.addBool(this._isSynthetic == true);
+    signature.addString(this._variantField_1 ?? '');
     if (this._variantField_2 == null) {
       signature.addInt(0);
     } else {
@@ -11334,7 +9073,7 @@
     signature.addInt(this._variantField_15 ?? 0);
     signature.addInt(this._variantField_16 ?? 0);
     signature.addInt(this._variantField_17 ?? 0);
-    signature.addInt(this._variantField_18 ?? 0);
+    signature.addInt(this._flags ?? 0);
     signature.addInt(this._variantField_19 ?? 0);
     signature.addString(this._variantField_20 ?? '');
     signature.addDouble(this._variantField_21 ?? 0.0);
@@ -11368,12 +9107,9 @@
         signature.addString(x);
       }
     }
-    signature.addBool(this._variantField_37 == true);
     signature.addString(this._name ?? '');
-    signature.addInt(this._flags ?? 0);
     signature.addInt(
-        this._variantField_40 == null ? 0 : this._variantField_40.index);
-    signature.addString(this._variantField_41 ?? '');
+        this._variantField_38 == null ? 0 : this._variantField_38.index);
   }
 
   fb.Offset finish(fb.Builder fbBuilder) {
@@ -11393,7 +9129,7 @@
     fb.Offset offset_variantField_3;
     fb.Offset offset_variantField_10;
     fb.Offset offset_variantField_25;
-    fb.Offset offset_variantField_41;
+    fb.Offset offset_variantField_1;
     fb.Offset offset_variantField_30;
     fb.Offset offset_variantField_14;
     fb.Offset offset_name;
@@ -11454,8 +9190,8 @@
     if (_variantField_25 != null) {
       offset_variantField_25 = _variantField_25.finish(fbBuilder);
     }
-    if (_variantField_41 != null) {
-      offset_variantField_41 = fbBuilder.writeString(_variantField_41);
+    if (_variantField_1 != null) {
+      offset_variantField_1 = fbBuilder.writeString(_variantField_1);
     }
     if (_variantField_30 != null) {
       offset_variantField_30 = fbBuilder.writeString(_variantField_30);
@@ -11494,9 +9230,6 @@
     if (offset_variantField_6 != null) {
       fbBuilder.addOffset(6, offset_variantField_6);
     }
-    if (_variantField_15 != null && _variantField_15 != 0) {
-      fbBuilder.addUint32(15, _variantField_15);
-    }
     if (offset_variantField_7 != null) {
       fbBuilder.addOffset(7, offset_variantField_7);
     }
@@ -11509,14 +9242,8 @@
     if (offset_variantField_8 != null) {
       fbBuilder.addOffset(8, offset_variantField_8);
     }
-    if (_variantField_16 != null && _variantField_16 != 0) {
-      fbBuilder.addUint32(16, _variantField_16);
-    }
-    if (_variantField_18 != null && _variantField_18 != 0) {
-      fbBuilder.addUint32(18, _variantField_18);
-    }
-    if (_variantField_19 != null && _variantField_19 != 0) {
-      fbBuilder.addUint32(19, _variantField_19);
+    if (_variantField_15 != null && _variantField_15 != 0) {
+      fbBuilder.addUint32(15, _variantField_15);
     }
     if (_variantField_28 != null &&
         _variantField_28 != idl.UnlinkedTokenType.NOTHING) {
@@ -11564,17 +9291,17 @@
     if (_variantField_21 != null && _variantField_21 != 0.0) {
       fbBuilder.addFloat64(21, _variantField_21);
     }
-    if (_variantField_37 == true) {
-      fbBuilder.addBool(37, true);
-    }
     if (offset_variantField_25 != null) {
       fbBuilder.addOffset(25, offset_variantField_25);
     }
     if (_flags != null && _flags != 0) {
-      fbBuilder.addUint32(39, _flags);
+      fbBuilder.addUint32(18, _flags);
     }
-    if (offset_variantField_41 != null) {
-      fbBuilder.addOffset(41, offset_variantField_41);
+    if (offset_variantField_1 != null) {
+      fbBuilder.addOffset(1, offset_variantField_1);
+    }
+    if (_variantField_16 != null && _variantField_16 != 0) {
+      fbBuilder.addUint32(16, _variantField_16);
     }
     if (offset_variantField_30 != null) {
       fbBuilder.addOffset(30, offset_variantField_30);
@@ -11582,14 +9309,11 @@
     if (offset_variantField_14 != null) {
       fbBuilder.addOffset(14, offset_variantField_14);
     }
-    if (_isSynthetic == true) {
-      fbBuilder.addBool(1, true);
-    }
     if (_kind != null && _kind != idl.LinkedNodeKind.adjacentStrings) {
       fbBuilder.addUint8(0, _kind.index);
     }
     if (offset_name != null) {
-      fbBuilder.addOffset(38, offset_name);
+      fbBuilder.addOffset(37, offset_name);
     }
     if (offset_variantField_20 != null) {
       fbBuilder.addOffset(20, offset_variantField_20);
@@ -11597,9 +9321,9 @@
     if (_variantField_31 == true) {
       fbBuilder.addBool(31, true);
     }
-    if (_variantField_40 != null &&
-        _variantField_40 != idl.UnlinkedTokenType.NOTHING) {
-      fbBuilder.addUint8(40, _variantField_40.index);
+    if (_variantField_38 != null &&
+        _variantField_38 != idl.UnlinkedTokenType.NOTHING) {
+      fbBuilder.addUint8(38, _variantField_38.index);
     }
     if (offset_variantField_35 != null) {
       fbBuilder.addOffset(35, offset_variantField_35);
@@ -11607,6 +9331,9 @@
     if (offset_variantField_22 != null) {
       fbBuilder.addOffset(22, offset_variantField_22);
     }
+    if (_variantField_19 != null && _variantField_19 != 0) {
+      fbBuilder.addUint32(19, _variantField_19);
+    }
     if (offset_variantField_32 != null) {
       fbBuilder.addOffset(32, offset_variantField_32);
     }
@@ -11635,14 +9362,11 @@
   idl.LinkedNode _variantField_11;
   List<idl.LinkedNode> _variantField_4;
   idl.LinkedNode _variantField_6;
-  int _variantField_15;
   idl.LinkedNode _variantField_7;
   int _variantField_17;
   idl.LinkedNodeType _variantField_23;
   idl.LinkedNode _variantField_8;
-  int _variantField_16;
-  int _variantField_18;
-  int _variantField_19;
+  int _variantField_15;
   idl.UnlinkedTokenType _variantField_28;
   bool _variantField_27;
   idl.LinkedNode _variantField_9;
@@ -11657,20 +9381,20 @@
   idl.LinkedNode _variantField_10;
   idl.LinkedNodeFormalParameterKind _variantField_26;
   double _variantField_21;
-  bool _variantField_37;
   idl.LinkedNodeType _variantField_25;
   int _flags;
-  String _variantField_41;
+  String _variantField_1;
+  int _variantField_16;
   String _variantField_30;
   idl.LinkedNode _variantField_14;
-  bool _isSynthetic;
   idl.LinkedNodeKind _kind;
   String _name;
   String _variantField_20;
   bool _variantField_31;
-  idl.UnlinkedTokenType _variantField_40;
+  idl.UnlinkedTokenType _variantField_38;
   idl.TopLevelInferenceError _variantField_35;
   String _variantField_22;
+  int _variantField_19;
   idl.LinkedNodeVariablesDeclaration _variantField_32;
 
   @override
@@ -11813,6 +9537,15 @@
   }
 
   @override
+  List<idl.LinkedNode> get instanceCreationExpression_arguments {
+    assert(kind == idl.LinkedNodeKind.instanceCreationExpression);
+    _variantField_2 ??=
+        const fb.ListReader<idl.LinkedNode>(const _LinkedNodeReader())
+            .vTableGet(_bc, _bcOffset, 2, const <idl.LinkedNode>[]);
+    return _variantField_2;
+  }
+
+  @override
   List<idl.LinkedNode> get labeledStatement_labels {
     assert(kind == idl.LinkedNodeKind.labeledStatement);
     _variantField_2 ??=
@@ -11831,15 +9564,6 @@
   }
 
   @override
-  List<idl.LinkedNode> get listLiteral_elements {
-    assert(kind == idl.LinkedNodeKind.listLiteral);
-    _variantField_2 ??=
-        const fb.ListReader<idl.LinkedNode>(const _LinkedNodeReader())
-            .vTableGet(_bc, _bcOffset, 2, const <idl.LinkedNode>[]);
-    return _variantField_2;
-  }
-
-  @override
   List<idl.LinkedNode> get namespaceDirective_combinators {
     assert(kind == idl.LinkedNodeKind.exportDirective ||
         kind == idl.LinkedNodeKind.importDirective);
@@ -11859,15 +9583,6 @@
   }
 
   @override
-  List<idl.LinkedNode> get setOrMapLiteral_elements {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    _variantField_2 ??=
-        const fb.ListReader<idl.LinkedNode>(const _LinkedNodeReader())
-            .vTableGet(_bc, _bcOffset, 2, const <idl.LinkedNode>[]);
-    return _variantField_2;
-  }
-
-  @override
   List<idl.LinkedNode> get stringInterpolation_elements {
     assert(kind == idl.LinkedNodeKind.stringInterpolation);
     _variantField_2 ??=
@@ -11904,6 +9619,25 @@
   }
 
   @override
+  List<idl.LinkedNode> get typedLiteral_typeArguments {
+    assert(kind == idl.LinkedNodeKind.listLiteral ||
+        kind == idl.LinkedNodeKind.setOrMapLiteral);
+    _variantField_2 ??=
+        const fb.ListReader<idl.LinkedNode>(const _LinkedNodeReader())
+            .vTableGet(_bc, _bcOffset, 2, const <idl.LinkedNode>[]);
+    return _variantField_2;
+  }
+
+  @override
+  List<idl.LinkedNode> get typeName_typeArguments {
+    assert(kind == idl.LinkedNodeKind.typeName);
+    _variantField_2 ??=
+        const fb.ListReader<idl.LinkedNode>(const _LinkedNodeReader())
+            .vTableGet(_bc, _bcOffset, 2, const <idl.LinkedNode>[]);
+    return _variantField_2;
+  }
+
+  @override
   List<idl.LinkedNode> get typeParameterList_typeParameters {
     assert(kind == idl.LinkedNodeKind.typeParameterList);
     _variantField_2 ??=
@@ -12349,14 +10083,6 @@
   }
 
   @override
-  idl.LinkedNode get instanceCreationExpression_arguments {
-    assert(kind == idl.LinkedNodeKind.instanceCreationExpression);
-    _variantField_6 ??=
-        const _LinkedNodeReader().vTableGet(_bc, _bcOffset, 6, null);
-    return _variantField_6;
-  }
-
-  @override
   idl.LinkedNode get interpolationExpression_expression {
     assert(kind == idl.LinkedNodeKind.interpolationExpression);
     _variantField_6 ??=
@@ -12629,627 +10355,6 @@
   }
 
   @override
-  int get annotation_atSign {
-    assert(kind == idl.LinkedNodeKind.annotation);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get argumentList_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.argumentList);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get asExpression_asOperator {
-    assert(kind == idl.LinkedNodeKind.asExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get assertInitializer_assertKeyword {
-    assert(kind == idl.LinkedNodeKind.assertInitializer);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get assertStatement_assertKeyword {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get assignmentExpression_element {
-    assert(kind == idl.LinkedNodeKind.assignmentExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get awaitExpression_awaitKeyword {
-    assert(kind == idl.LinkedNodeKind.awaitExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get binaryExpression_element {
-    assert(kind == idl.LinkedNodeKind.binaryExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get block_leftBracket {
-    assert(kind == idl.LinkedNodeKind.block);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get blockFunctionBody_keyword {
-    assert(kind == idl.LinkedNodeKind.blockFunctionBody);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get breakStatement_breakKeyword {
-    assert(kind == idl.LinkedNodeKind.breakStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get catchClause_catchKeyword {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get commentReference_newKeyword {
-    assert(kind == idl.LinkedNodeKind.commentReference);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get compilationUnit_beginToken {
-    assert(kind == idl.LinkedNodeKind.compilationUnit);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get conditionalExpression_colon {
-    assert(kind == idl.LinkedNodeKind.conditionalExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get configuration_ifKeyword {
-    assert(kind == idl.LinkedNodeKind.configuration);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get constructorFieldInitializer_equals {
-    assert(kind == idl.LinkedNodeKind.constructorFieldInitializer);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get constructorName_element {
-    assert(kind == idl.LinkedNodeKind.constructorName);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get continueStatement_continueKeyword {
-    assert(kind == idl.LinkedNodeKind.continueStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get declaredIdentifier_keyword {
-    assert(kind == idl.LinkedNodeKind.declaredIdentifier);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get defaultFormalParameter_separator {
-    assert(kind == idl.LinkedNodeKind.defaultFormalParameter);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get doStatement_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get emptyFunctionBody_semicolon {
-    assert(kind == idl.LinkedNodeKind.emptyFunctionBody);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get emptyStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.emptyStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get expressionFunctionBody_arrow {
-    assert(kind == idl.LinkedNodeKind.expressionFunctionBody);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get expressionStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.expressionStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get extendsClause_extendsKeyword {
-    assert(kind == idl.LinkedNodeKind.extendsClause);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get forEachParts_inKeyword {
-    assert(kind == idl.LinkedNodeKind.forEachPartsWithDeclaration ||
-        kind == idl.LinkedNodeKind.forEachPartsWithIdentifier);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get formalParameterList_leftDelimiter {
-    assert(kind == idl.LinkedNodeKind.formalParameterList);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get forMixin_awaitKeyword {
-    assert(kind == idl.LinkedNodeKind.forElement ||
-        kind == idl.LinkedNodeKind.forStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get forParts_leftSeparator {
-    assert(kind == idl.LinkedNodeKind.forPartsWithDeclarations ||
-        kind == idl.LinkedNodeKind.forPartsWithExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get genericFunctionType_functionKeyword {
-    assert(kind == idl.LinkedNodeKind.genericFunctionType);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get ifMixin_elseKeyword {
-    assert(kind == idl.LinkedNodeKind.ifElement ||
-        kind == idl.LinkedNodeKind.ifStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get implementsClause_implementsKeyword {
-    assert(kind == idl.LinkedNodeKind.implementsClause);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get importDirective_prefixOffset {
-    assert(kind == idl.LinkedNodeKind.importDirective);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get indexExpression_element {
-    assert(kind == idl.LinkedNodeKind.indexExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get interpolationExpression_leftBracket {
-    assert(kind == idl.LinkedNodeKind.interpolationExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get interpolationString_token {
-    assert(kind == idl.LinkedNodeKind.interpolationString);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get isExpression_isOperator {
-    assert(kind == idl.LinkedNodeKind.isExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get label_colon {
-    assert(kind == idl.LinkedNodeKind.label);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get listLiteral_leftBracket {
-    assert(kind == idl.LinkedNodeKind.listLiteral);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get mapLiteralEntry_separator {
-    assert(kind == idl.LinkedNodeKind.mapLiteralEntry);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get methodInvocation_operator {
-    assert(kind == idl.LinkedNodeKind.methodInvocation);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get mixinDeclaration_mixinKeyword {
-    assert(kind == idl.LinkedNodeKind.mixinDeclaration);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get nativeClause_nativeKeyword {
-    assert(kind == idl.LinkedNodeKind.nativeClause);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get nativeFunctionBody_nativeKeyword {
-    assert(kind == idl.LinkedNodeKind.nativeFunctionBody);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get nullLiteral_literal {
-    assert(kind == idl.LinkedNodeKind.nullLiteral);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get onClause_onKeyword {
-    assert(kind == idl.LinkedNodeKind.onClause);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get parenthesizedExpression_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.parenthesizedExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get postfixExpression_element {
-    assert(kind == idl.LinkedNodeKind.postfixExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get prefixedIdentifier_period {
-    assert(kind == idl.LinkedNodeKind.prefixedIdentifier);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get prefixExpression_element {
-    assert(kind == idl.LinkedNodeKind.prefixExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get propertyAccess_operator {
-    assert(kind == idl.LinkedNodeKind.propertyAccess);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get redirectingConstructorInvocation_element {
-    assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get rethrowExpression_rethrowKeyword {
-    assert(kind == idl.LinkedNodeKind.rethrowExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get returnStatement_returnKeyword {
-    assert(kind == idl.LinkedNodeKind.returnStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get scriptTag_scriptTag {
-    assert(kind == idl.LinkedNodeKind.scriptTag);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get setOrMapLiteral_leftBracket {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get simpleIdentifier_element {
-    assert(kind == idl.LinkedNodeKind.simpleIdentifier);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get superConstructorInvocation_element {
-    assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get superExpression_superKeyword {
-    assert(kind == idl.LinkedNodeKind.superExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get switchMember_keyword {
-    assert(kind == idl.LinkedNodeKind.switchCase ||
-        kind == idl.LinkedNodeKind.switchDefault);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get switchStatement_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get symbolLiteral_poundSign {
-    assert(kind == idl.LinkedNodeKind.symbolLiteral);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get thisExpression_thisKeyword {
-    assert(kind == idl.LinkedNodeKind.thisExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get throwExpression_throwKeyword {
-    assert(kind == idl.LinkedNodeKind.throwExpression);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get topLevelVariableDeclaration_semicolon {
-    assert(kind == idl.LinkedNodeKind.topLevelVariableDeclaration);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get tryStatement_finallyKeyword {
-    assert(kind == idl.LinkedNodeKind.tryStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get typeArgumentList_leftBracket {
-    assert(kind == idl.LinkedNodeKind.typeArgumentList);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get typeName_question {
-    assert(kind == idl.LinkedNodeKind.typeName);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get typeParameter_extendsKeyword {
-    assert(kind == idl.LinkedNodeKind.typeParameter);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get typeParameterList_leftBracket {
-    assert(kind == idl.LinkedNodeKind.typeParameterList);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get variableDeclaration_equals {
-    assert(kind == idl.LinkedNodeKind.variableDeclaration);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get variableDeclarationStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.variableDeclarationStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get whileStatement_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.whileStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get withClause_withKeyword {
-    assert(kind == idl.LinkedNodeKind.withClause);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
-  int get yieldStatement_yieldKeyword {
-    assert(kind == idl.LinkedNodeKind.yieldStatement);
-    _variantField_15 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
-    return _variantField_15;
-  }
-
-  @override
   idl.LinkedNode get annotation_constructorName {
     assert(kind == idl.LinkedNodeKind.annotation);
     _variantField_7 ??=
@@ -13602,14 +10707,6 @@
   }
 
   @override
-  idl.LinkedNode get typeName_typeArguments {
-    assert(kind == idl.LinkedNodeKind.typeName);
-    _variantField_7 ??=
-        const _LinkedNodeReader().vTableGet(_bc, _bcOffset, 7, null);
-    return _variantField_7;
-  }
-
-  @override
   idl.LinkedNode get whileStatement_condition {
     assert(kind == idl.LinkedNodeKind.whileStatement);
     _variantField_7 ??=
@@ -13626,87 +10723,6 @@
   }
 
   @override
-  int get assertInitializer_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.assertInitializer);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get assertStatement_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get catchClause_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get configuration_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.configuration);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get constructorFieldInitializer_thisKeyword {
-    assert(kind == idl.LinkedNodeKind.constructorFieldInitializer);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get doStatement_doKeyword {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get expressionFunctionBody_semicolon {
-    assert(kind == idl.LinkedNodeKind.expressionFunctionBody);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get fieldFormalParameter_thisKeyword {
-    assert(kind == idl.LinkedNodeKind.fieldFormalParameter);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get formalParameterList_rightDelimiter {
-    assert(kind == idl.LinkedNodeKind.formalParameterList);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get forMixin_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.forElement ||
-        kind == idl.LinkedNodeKind.forStatement);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
   int get genericFunctionType_id {
     assert(kind == idl.LinkedNodeKind.genericFunctionType);
     _variantField_17 ??=
@@ -13715,71 +10731,6 @@
   }
 
   @override
-  int get ifMixin_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.ifElement ||
-        kind == idl.LinkedNodeKind.ifStatement);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get indexExpression_leftBracket {
-    assert(kind == idl.LinkedNodeKind.indexExpression);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get methodDeclaration_operatorKeyword {
-    assert(kind == idl.LinkedNodeKind.methodDeclaration);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get redirectingConstructorInvocation_thisKeyword {
-    assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get superConstructorInvocation_superKeyword {
-    assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get switchStatement_switchKeyword {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get whileStatement_whileKeyword {
-    assert(kind == idl.LinkedNodeKind.whileStatement);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
-  int get yieldStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.yieldStatement);
-    _variantField_17 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
-    return _variantField_17;
-  }
-
-  @override
   idl.LinkedNodeType get annotation_elementType {
     assert(kind == idl.LinkedNodeKind.annotation);
     _variantField_23 ??=
@@ -14004,593 +10955,115 @@
   }
 
   @override
-  int get annotation_period {
-    assert(kind == idl.LinkedNodeKind.annotation);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get argumentList_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.argumentList);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get assertInitializer_comma {
-    assert(kind == idl.LinkedNodeKind.assertInitializer);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get assertStatement_comma {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get assignmentExpression_operator {
+  int get assignmentExpression_element {
     assert(kind == idl.LinkedNodeKind.assignmentExpression);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
+    _variantField_15 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+    return _variantField_15;
   }
 
   @override
-  int get block_rightBracket {
-    assert(kind == idl.LinkedNodeKind.block);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
+  int get binaryExpression_element {
+    assert(kind == idl.LinkedNodeKind.binaryExpression);
+    _variantField_15 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+    return _variantField_15;
   }
 
   @override
-  int get blockFunctionBody_star {
-    assert(kind == idl.LinkedNodeKind.blockFunctionBody);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get breakStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.breakStatement);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get catchClause_comma {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get compilationUnit_endToken {
-    assert(kind == idl.LinkedNodeKind.compilationUnit);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get conditionalExpression_question {
-    assert(kind == idl.LinkedNodeKind.conditionalExpression);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get configuration_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.configuration);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get constructorFieldInitializer_period {
-    assert(kind == idl.LinkedNodeKind.constructorFieldInitializer);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get constructorName_period {
+  int get constructorName_element {
     assert(kind == idl.LinkedNodeKind.constructorName);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
+    _variantField_15 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+    return _variantField_15;
   }
 
   @override
-  int get continueStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.continueStatement);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
+  int get emptyFunctionBody_fake {
+    assert(kind == idl.LinkedNodeKind.emptyFunctionBody);
+    _variantField_15 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+    return _variantField_15;
   }
 
   @override
-  int get doStatement_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
+  int get emptyStatement_fake {
+    assert(kind == idl.LinkedNodeKind.emptyStatement);
+    _variantField_15 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+    return _variantField_15;
   }
 
   @override
-  int get expressionFunctionBody_keyword {
-    assert(kind == idl.LinkedNodeKind.expressionFunctionBody);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
+  int get importDirective_prefixOffset {
+    assert(kind == idl.LinkedNodeKind.importDirective);
+    _variantField_15 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+    return _variantField_15;
   }
 
   @override
-  int get fieldDeclaration_semicolon {
-    assert(kind == idl.LinkedNodeKind.fieldDeclaration);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get formalParameterList_leftParenthesis {
-    assert(kind == idl.LinkedNodeKind.formalParameterList);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get forMixin_forKeyword {
-    assert(kind == idl.LinkedNodeKind.forElement ||
-        kind == idl.LinkedNodeKind.forStatement);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get forParts_rightSeparator {
-    assert(kind == idl.LinkedNodeKind.forPartsWithDeclarations ||
-        kind == idl.LinkedNodeKind.forPartsWithExpression);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get genericFunctionType_question {
-    assert(kind == idl.LinkedNodeKind.genericFunctionType);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get ifMixin_ifKeyword {
-    assert(kind == idl.LinkedNodeKind.ifElement ||
-        kind == idl.LinkedNodeKind.ifStatement);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get indexExpression_period {
+  int get indexExpression_element {
     assert(kind == idl.LinkedNodeKind.indexExpression);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
+    _variantField_15 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+    return _variantField_15;
   }
 
   @override
-  int get integerLiteral_value {
-    assert(kind == idl.LinkedNodeKind.integerLiteral);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
+  int get nullLiteral_fake {
+    assert(kind == idl.LinkedNodeKind.nullLiteral);
+    _variantField_15 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+    return _variantField_15;
   }
 
   @override
-  int get interpolationExpression_rightBracket {
-    assert(kind == idl.LinkedNodeKind.interpolationExpression);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get isExpression_notOperator {
-    assert(kind == idl.LinkedNodeKind.isExpression);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get listLiteral_rightBracket {
-    assert(kind == idl.LinkedNodeKind.listLiteral);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get nameOffset {
-    assert(kind == idl.LinkedNodeKind.classDeclaration ||
-        kind == idl.LinkedNodeKind.classTypeAlias ||
-        kind == idl.LinkedNodeKind.constructorDeclaration ||
-        kind == idl.LinkedNodeKind.enumConstantDeclaration ||
-        kind == idl.LinkedNodeKind.enumDeclaration ||
-        kind == idl.LinkedNodeKind.exportDirective ||
-        kind == idl.LinkedNodeKind.fieldFormalParameter ||
-        kind == idl.LinkedNodeKind.functionDeclaration ||
-        kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
-        kind == idl.LinkedNodeKind.functionTypeAlias ||
-        kind == idl.LinkedNodeKind.genericTypeAlias ||
-        kind == idl.LinkedNodeKind.importDirective ||
-        kind == idl.LinkedNodeKind.methodDeclaration ||
-        kind == idl.LinkedNodeKind.mixinDeclaration ||
-        kind == idl.LinkedNodeKind.partDirective ||
-        kind == idl.LinkedNodeKind.simpleFormalParameter ||
-        kind == idl.LinkedNodeKind.typeParameter ||
-        kind == idl.LinkedNodeKind.variableDeclaration);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get nativeFunctionBody_semicolon {
-    assert(kind == idl.LinkedNodeKind.nativeFunctionBody);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get parenthesizedExpression_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.parenthesizedExpression);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get partOfDirective_ofKeyword {
-    assert(kind == idl.LinkedNodeKind.partOfDirective);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get postfixExpression_operator {
+  int get postfixExpression_element {
     assert(kind == idl.LinkedNodeKind.postfixExpression);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
+    _variantField_15 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+    return _variantField_15;
   }
 
   @override
-  int get redirectingConstructorInvocation_period {
+  int get prefixExpression_element {
+    assert(kind == idl.LinkedNodeKind.prefixExpression);
+    _variantField_15 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+    return _variantField_15;
+  }
+
+  @override
+  int get redirectingConstructorInvocation_element {
     assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
+    _variantField_15 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+    return _variantField_15;
   }
 
   @override
-  int get returnStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.returnStatement);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
+  int get simpleIdentifier_element {
+    assert(kind == idl.LinkedNodeKind.simpleIdentifier);
+    _variantField_15 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+    return _variantField_15;
   }
 
   @override
-  int get setOrMapLiteral_rightBracket {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get superConstructorInvocation_period {
+  int get superConstructorInvocation_element {
     assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
+    _variantField_15 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+    return _variantField_15;
   }
 
   @override
-  int get switchMember_colon {
-    assert(kind == idl.LinkedNodeKind.switchCase ||
-        kind == idl.LinkedNodeKind.switchDefault);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get switchStatement_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get tryStatement_tryKeyword {
-    assert(kind == idl.LinkedNodeKind.tryStatement);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get typeArgumentList_rightBracket {
-    assert(kind == idl.LinkedNodeKind.typeArgumentList);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get typeParameterList_rightBracket {
-    assert(kind == idl.LinkedNodeKind.typeParameterList);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get whileStatement_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.whileStatement);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get yieldStatement_star {
-    assert(kind == idl.LinkedNodeKind.yieldStatement);
-    _variantField_16 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
-    return _variantField_16;
-  }
-
-  @override
-  int get assertInitializer_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.assertInitializer);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get assertStatement_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get catchClause_onKeyword {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get classOrMixinDeclaration_rightBracket {
-    assert(kind == idl.LinkedNodeKind.classDeclaration ||
-        kind == idl.LinkedNodeKind.mixinDeclaration);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get configuration_equalToken {
-    assert(kind == idl.LinkedNodeKind.configuration);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get constructorDeclaration_period {
-    assert(kind == idl.LinkedNodeKind.constructorDeclaration);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get directive_keyword {
-    assert(kind == idl.LinkedNodeKind.exportDirective ||
-        kind == idl.LinkedNodeKind.importDirective ||
-        kind == idl.LinkedNodeKind.libraryDirective ||
-        kind == idl.LinkedNodeKind.partDirective ||
-        kind == idl.LinkedNodeKind.partOfDirective);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get doStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get formalParameterList_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.formalParameterList);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get ifMixin_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.ifElement ||
-        kind == idl.LinkedNodeKind.ifStatement);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get indexExpression_rightBracket {
-    assert(kind == idl.LinkedNodeKind.indexExpression);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get normalFormalParameter_requiredKeyword {
-    assert(kind == idl.LinkedNodeKind.fieldFormalParameter ||
-        kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
-        kind == idl.LinkedNodeKind.simpleFormalParameter);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get switchStatement_leftBracket {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get typeAlias_typedefKeyword {
-    assert(kind == idl.LinkedNodeKind.classTypeAlias ||
-        kind == idl.LinkedNodeKind.functionTypeAlias ||
-        kind == idl.LinkedNodeKind.genericTypeAlias);
-    _variantField_18 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
-    return _variantField_18;
-  }
-
-  @override
-  int get assertStatement_semicolon {
-    assert(kind == idl.LinkedNodeKind.assertStatement);
-    _variantField_19 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 19, 0);
-    return _variantField_19;
-  }
-
-  @override
-  int get catchClause_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.catchClause);
-    _variantField_19 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 19, 0);
-    return _variantField_19;
-  }
-
-  @override
-  int get classOrMixinDeclaration_leftBracket {
-    assert(kind == idl.LinkedNodeKind.classDeclaration ||
-        kind == idl.LinkedNodeKind.mixinDeclaration);
-    _variantField_19 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 19, 0);
-    return _variantField_19;
-  }
-
-  @override
-  int get combinator_keyword {
-    assert(kind == idl.LinkedNodeKind.hideCombinator ||
-        kind == idl.LinkedNodeKind.showCombinator);
-    _variantField_19 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 19, 0);
-    return _variantField_19;
-  }
-
-  @override
-  int get constructorDeclaration_separator {
-    assert(kind == idl.LinkedNodeKind.constructorDeclaration);
-    _variantField_19 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 19, 0);
-    return _variantField_19;
-  }
-
-  @override
-  int get doStatement_whileKeyword {
-    assert(kind == idl.LinkedNodeKind.doStatement);
-    _variantField_19 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 19, 0);
-    return _variantField_19;
-  }
-
-  @override
-  int get forMixin_rightParenthesis {
-    assert(kind == idl.LinkedNodeKind.forElement ||
-        kind == idl.LinkedNodeKind.forStatement);
-    _variantField_19 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 19, 0);
-    return _variantField_19;
-  }
-
-  @override
-  int get methodDeclaration_actualProperty {
-    assert(kind == idl.LinkedNodeKind.methodDeclaration);
-    _variantField_19 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 19, 0);
-    return _variantField_19;
-  }
-
-  @override
-  int get switchStatement_rightBracket {
-    assert(kind == idl.LinkedNodeKind.switchStatement);
-    _variantField_19 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 19, 0);
-    return _variantField_19;
-  }
-
-  @override
-  int get typeAlias_semicolon {
-    assert(kind == idl.LinkedNodeKind.classTypeAlias ||
-        kind == idl.LinkedNodeKind.functionTypeAlias ||
-        kind == idl.LinkedNodeKind.genericTypeAlias);
-    _variantField_19 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 19, 0);
-    return _variantField_19;
-  }
-
-  @override
-  int get uriBasedDirective_uriElement {
-    assert(kind == idl.LinkedNodeKind.exportDirective ||
-        kind == idl.LinkedNodeKind.importDirective ||
-        kind == idl.LinkedNodeKind.partDirective);
-    _variantField_19 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 19, 0);
-    return _variantField_19;
+  idl.UnlinkedTokenType get assignmentExpression_operator {
+    assert(kind == idl.LinkedNodeKind.assignmentExpression);
+    _variantField_28 ??= const _UnlinkedTokenTypeReader()
+        .vTableGet(_bc, _bcOffset, 28, idl.UnlinkedTokenType.NOTHING);
+    return _variantField_28;
   }
 
   @override
@@ -14602,6 +11075,14 @@
   }
 
   @override
+  idl.UnlinkedTokenType get postfixExpression_operator {
+    assert(kind == idl.LinkedNodeKind.postfixExpression);
+    _variantField_28 ??= const _UnlinkedTokenTypeReader()
+        .vTableGet(_bc, _bcOffset, 28, idl.UnlinkedTokenType.NOTHING);
+    return _variantField_28;
+  }
+
+  @override
   idl.UnlinkedTokenType get prefixExpression_operator {
     assert(kind == idl.LinkedNodeKind.prefixExpression);
     _variantField_28 ??= const _UnlinkedTokenTypeReader()
@@ -14610,6 +11091,14 @@
   }
 
   @override
+  idl.UnlinkedTokenType get propertyAccess_operator {
+    assert(kind == idl.LinkedNodeKind.propertyAccess);
+    _variantField_28 ??= const _UnlinkedTokenTypeReader()
+        .vTableGet(_bc, _bcOffset, 28, idl.UnlinkedTokenType.NOTHING);
+    return _variantField_28;
+  }
+
+  @override
   bool get booleanLiteral_value {
     assert(kind == idl.LinkedNodeKind.booleanLiteral);
     _variantField_27 ??=
@@ -14626,16 +11115,6 @@
   }
 
   @override
-  bool get executable_isAsynchronous {
-    assert(kind == idl.LinkedNodeKind.constructorDeclaration ||
-        kind == idl.LinkedNodeKind.functionExpression ||
-        kind == idl.LinkedNodeKind.methodDeclaration);
-    _variantField_27 ??=
-        const fb.BoolReader().vTableGet(_bc, _bcOffset, 27, false);
-    return _variantField_27;
-  }
-
-  @override
   bool get inheritsCovariant {
     assert(kind == idl.LinkedNodeKind.fieldFormalParameter ||
         kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
@@ -14647,22 +11126,6 @@
   }
 
   @override
-  bool get setOrMapLiteral_isMap {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    _variantField_27 ??=
-        const fb.BoolReader().vTableGet(_bc, _bcOffset, 27, false);
-    return _variantField_27;
-  }
-
-  @override
-  bool get simpleIdentifier_isDeclaration {
-    assert(kind == idl.LinkedNodeKind.simpleIdentifier);
-    _variantField_27 ??=
-        const fb.BoolReader().vTableGet(_bc, _bcOffset, 27, false);
-    return _variantField_27;
-  }
-
-  @override
   bool get typeAlias_hasSelfReference {
     assert(kind == idl.LinkedNodeKind.functionTypeAlias ||
         kind == idl.LinkedNodeKind.genericTypeAlias);
@@ -14805,18 +11268,6 @@
   }
 
   @override
-  int get directive_semicolon {
-    assert(kind == idl.LinkedNodeKind.exportDirective ||
-        kind == idl.LinkedNodeKind.importDirective ||
-        kind == idl.LinkedNodeKind.libraryDirective ||
-        kind == idl.LinkedNodeKind.partDirective ||
-        kind == idl.LinkedNodeKind.partOfDirective);
-    _variantField_33 ??=
-        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 33, 0);
-    return _variantField_33;
-  }
-
-  @override
   List<String> get comment_tokens {
     assert(kind == idl.LinkedNodeKind.comment);
     _variantField_36 ??= const fb.ListReader<String>(const fb.StringReader())
@@ -14860,6 +11311,15 @@
   }
 
   @override
+  List<idl.LinkedNode> get listLiteral_elements {
+    assert(kind == idl.LinkedNodeKind.listLiteral);
+    _variantField_3 ??=
+        const fb.ListReader<idl.LinkedNode>(const _LinkedNodeReader())
+            .vTableGet(_bc, _bcOffset, 3, const <idl.LinkedNode>[]);
+    return _variantField_3;
+  }
+
+  @override
   List<idl.LinkedNode> get namespaceDirective_configurations {
     assert(kind == idl.LinkedNodeKind.exportDirective ||
         kind == idl.LinkedNodeKind.importDirective);
@@ -14870,6 +11330,15 @@
   }
 
   @override
+  List<idl.LinkedNode> get setOrMapLiteral_elements {
+    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
+    _variantField_3 ??=
+        const fb.ListReader<idl.LinkedNode>(const _LinkedNodeReader())
+            .vTableGet(_bc, _bcOffset, 3, const <idl.LinkedNode>[]);
+    return _variantField_3;
+  }
+
+  @override
   List<idl.LinkedNode> get switchMember_labels {
     assert(kind == idl.LinkedNodeKind.switchCase ||
         kind == idl.LinkedNodeKind.switchDefault);
@@ -14907,16 +11376,6 @@
   }
 
   @override
-  bool get executable_isGenerator {
-    assert(kind == idl.LinkedNodeKind.constructorDeclaration ||
-        kind == idl.LinkedNodeKind.functionExpression ||
-        kind == idl.LinkedNodeKind.methodDeclaration);
-    _variantField_37 ??=
-        const fb.BoolReader().vTableGet(_bc, _bcOffset, 37, false);
-    return _variantField_37;
-  }
-
-  @override
   idl.LinkedNodeType get expression_type {
     assert(kind == idl.LinkedNodeKind.assignmentExpression ||
         kind == idl.LinkedNodeKind.asExpression ||
@@ -14957,16 +11416,49 @@
 
   @override
   int get flags {
-    _flags ??= const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 39, 0);
+    _flags ??= const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 18, 0);
     return _flags;
   }
 
   @override
   String get importDirective_prefix {
     assert(kind == idl.LinkedNodeKind.importDirective);
-    _variantField_41 ??=
-        const fb.StringReader().vTableGet(_bc, _bcOffset, 41, '');
-    return _variantField_41;
+    _variantField_1 ??=
+        const fb.StringReader().vTableGet(_bc, _bcOffset, 1, '');
+    return _variantField_1;
+  }
+
+  @override
+  int get integerLiteral_value {
+    assert(kind == idl.LinkedNodeKind.integerLiteral);
+    _variantField_16 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
+    return _variantField_16;
+  }
+
+  @override
+  int get nameOffset {
+    assert(kind == idl.LinkedNodeKind.classDeclaration ||
+        kind == idl.LinkedNodeKind.classTypeAlias ||
+        kind == idl.LinkedNodeKind.constructorDeclaration ||
+        kind == idl.LinkedNodeKind.enumConstantDeclaration ||
+        kind == idl.LinkedNodeKind.enumDeclaration ||
+        kind == idl.LinkedNodeKind.exportDirective ||
+        kind == idl.LinkedNodeKind.fieldFormalParameter ||
+        kind == idl.LinkedNodeKind.functionDeclaration ||
+        kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
+        kind == idl.LinkedNodeKind.functionTypeAlias ||
+        kind == idl.LinkedNodeKind.genericTypeAlias ||
+        kind == idl.LinkedNodeKind.importDirective ||
+        kind == idl.LinkedNodeKind.methodDeclaration ||
+        kind == idl.LinkedNodeKind.mixinDeclaration ||
+        kind == idl.LinkedNodeKind.partDirective ||
+        kind == idl.LinkedNodeKind.simpleFormalParameter ||
+        kind == idl.LinkedNodeKind.typeParameter ||
+        kind == idl.LinkedNodeKind.variableDeclaration);
+    _variantField_16 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 16, 0);
+    return _variantField_16;
   }
 
   @override
@@ -14997,15 +11489,6 @@
   }
 
   @override
-  idl.LinkedNode get typedLiteral_typeArguments {
-    assert(kind == idl.LinkedNodeKind.listLiteral ||
-        kind == idl.LinkedNodeKind.setOrMapLiteral);
-    _variantField_14 ??=
-        const _LinkedNodeReader().vTableGet(_bc, _bcOffset, 14, null);
-    return _variantField_14;
-  }
-
-  @override
   idl.LinkedNode get uriBasedDirective_uri {
     assert(kind == idl.LinkedNodeKind.exportDirective ||
         kind == idl.LinkedNodeKind.importDirective ||
@@ -15016,12 +11499,6 @@
   }
 
   @override
-  bool get isSynthetic {
-    _isSynthetic ??= const fb.BoolReader().vTableGet(_bc, _bcOffset, 1, false);
-    return _isSynthetic;
-  }
-
-  @override
   idl.LinkedNodeKind get kind {
     _kind ??= const _LinkedNodeKindReader()
         .vTableGet(_bc, _bcOffset, 0, idl.LinkedNodeKind.adjacentStrings);
@@ -15030,7 +11507,7 @@
 
   @override
   String get name {
-    _name ??= const fb.StringReader().vTableGet(_bc, _bcOffset, 38, '');
+    _name ??= const fb.StringReader().vTableGet(_bc, _bcOffset, 37, '');
     return _name;
   }
 
@@ -15052,14 +11529,6 @@
   }
 
   @override
-  bool get setOrMapLiteral_isSet {
-    assert(kind == idl.LinkedNodeKind.setOrMapLiteral);
-    _variantField_31 ??=
-        const fb.BoolReader().vTableGet(_bc, _bcOffset, 31, false);
-    return _variantField_31;
-  }
-
-  @override
   bool get simplyBoundable_isSimplyBounded {
     assert(kind == idl.LinkedNodeKind.classDeclaration ||
         kind == idl.LinkedNodeKind.classTypeAlias ||
@@ -15072,11 +11541,11 @@
   }
 
   @override
-  idl.UnlinkedTokenType get spreadElement_spreadOperator2 {
+  idl.UnlinkedTokenType get spreadElement_spreadOperator {
     assert(kind == idl.LinkedNodeKind.spreadElement);
-    _variantField_40 ??= const _UnlinkedTokenTypeReader()
-        .vTableGet(_bc, _bcOffset, 40, idl.UnlinkedTokenType.NOTHING);
-    return _variantField_40;
+    _variantField_38 ??= const _UnlinkedTokenTypeReader()
+        .vTableGet(_bc, _bcOffset, 38, idl.UnlinkedTokenType.NOTHING);
+    return _variantField_38;
   }
 
   @override
@@ -15099,6 +11568,16 @@
   }
 
   @override
+  int get uriBasedDirective_uriElement {
+    assert(kind == idl.LinkedNodeKind.exportDirective ||
+        kind == idl.LinkedNodeKind.importDirective ||
+        kind == idl.LinkedNodeKind.partDirective);
+    _variantField_19 ??=
+        const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 19, 0);
+    return _variantField_19;
+  }
+
+  @override
   idl.LinkedNodeVariablesDeclaration get variableDeclaration_declaration {
     assert(kind == idl.LinkedNodeKind.variableDeclaration);
     _variantField_32 ??= const _LinkedNodeVariablesDeclarationReader()
@@ -15112,7 +11591,6 @@
   Map<String, Object> toJson() {
     Map<String, Object> _result = <String, Object>{};
     if (flags != 0) _result["flags"] = flags;
-    if (isSynthetic != false) _result["isSynthetic"] = isSynthetic;
     if (kind != idl.LinkedNodeKind.adjacentStrings)
       _result["kind"] = kind.toString().split('.')[1];
     if (name != '') _result["name"] = name;
@@ -15130,9 +11608,9 @@
       if (functionDeclaration_returnType != null)
         _result["functionDeclaration_returnType"] =
             functionDeclaration_returnType.toJson();
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (codeLength != 0) _result["codeLength"] = codeLength;
       if (codeOffset != 0) _result["codeOffset"] = codeOffset;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
     }
     if (kind == idl.LinkedNodeKind.functionExpression) {
       if (actualReturnType != null)
@@ -15145,10 +11623,6 @@
       if (functionExpression_typeParameters != null)
         _result["functionExpression_typeParameters"] =
             functionExpression_typeParameters.toJson();
-      if (executable_isAsynchronous != false)
-        _result["executable_isAsynchronous"] = executable_isAsynchronous;
-      if (executable_isGenerator != false)
-        _result["executable_isGenerator"] = executable_isGenerator;
     }
     if (kind == idl.LinkedNodeKind.functionTypeAlias) {
       if (actualReturnType != null)
@@ -15167,15 +11641,11 @@
       if (functionTypeAlias_typeParameters != null)
         _result["functionTypeAlias_typeParameters"] =
             functionTypeAlias_typeParameters.toJson();
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
-      if (typeAlias_typedefKeyword != 0)
-        _result["typeAlias_typedefKeyword"] = typeAlias_typedefKeyword;
-      if (typeAlias_semicolon != 0)
-        _result["typeAlias_semicolon"] = typeAlias_semicolon;
       if (typeAlias_hasSelfReference != false)
         _result["typeAlias_hasSelfReference"] = typeAlias_hasSelfReference;
       if (codeLength != 0) _result["codeLength"] = codeLength;
       if (codeOffset != 0) _result["codeOffset"] = codeOffset;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (simplyBoundable_isSimplyBounded != false)
         _result["simplyBoundable_isSimplyBounded"] =
             simplyBoundable_isSimplyBounded;
@@ -15186,9 +11656,6 @@
       if (genericFunctionType_typeParameters != null)
         _result["genericFunctionType_typeParameters"] =
             genericFunctionType_typeParameters.toJson();
-      if (genericFunctionType_functionKeyword != 0)
-        _result["genericFunctionType_functionKeyword"] =
-            genericFunctionType_functionKeyword;
       if (genericFunctionType_returnType != null)
         _result["genericFunctionType_returnType"] =
             genericFunctionType_returnType.toJson();
@@ -15197,8 +11664,6 @@
       if (genericFunctionType_formalParameters != null)
         _result["genericFunctionType_formalParameters"] =
             genericFunctionType_formalParameters.toJson();
-      if (genericFunctionType_question != 0)
-        _result["genericFunctionType_question"] = genericFunctionType_question;
       if (genericFunctionType_type != null)
         _result["genericFunctionType_type"] = genericFunctionType_type.toJson();
     }
@@ -15215,25 +11680,15 @@
       if (methodDeclaration_formalParameters != null)
         _result["methodDeclaration_formalParameters"] =
             methodDeclaration_formalParameters.toJson();
-      if (methodDeclaration_operatorKeyword != 0)
-        _result["methodDeclaration_operatorKeyword"] =
-            methodDeclaration_operatorKeyword;
       if (methodDeclaration_returnType != null)
         _result["methodDeclaration_returnType"] =
             methodDeclaration_returnType.toJson();
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
-      if (methodDeclaration_actualProperty != 0)
-        _result["methodDeclaration_actualProperty"] =
-            methodDeclaration_actualProperty;
-      if (executable_isAsynchronous != false)
-        _result["executable_isAsynchronous"] = executable_isAsynchronous;
       if (methodDeclaration_typeParameters != null)
         _result["methodDeclaration_typeParameters"] =
             methodDeclaration_typeParameters.toJson();
       if (codeLength != 0) _result["codeLength"] = codeLength;
       if (codeOffset != 0) _result["codeOffset"] = codeOffset;
-      if (executable_isGenerator != false)
-        _result["executable_isGenerator"] = executable_isGenerator;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
     }
     if (kind == idl.LinkedNodeKind.fieldFormalParameter) {
       if (actualType != null) _result["actualType"] = actualType.toJson();
@@ -15248,20 +11703,14 @@
       if (fieldFormalParameter_typeParameters != null)
         _result["fieldFormalParameter_typeParameters"] =
             fieldFormalParameter_typeParameters.toJson();
-      if (fieldFormalParameter_thisKeyword != 0)
-        _result["fieldFormalParameter_thisKeyword"] =
-            fieldFormalParameter_thisKeyword;
       if (fieldFormalParameter_formalParameters != null)
         _result["fieldFormalParameter_formalParameters"] =
             fieldFormalParameter_formalParameters.toJson();
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
-      if (normalFormalParameter_requiredKeyword != 0)
-        _result["normalFormalParameter_requiredKeyword"] =
-            normalFormalParameter_requiredKeyword;
       if (inheritsCovariant != false)
         _result["inheritsCovariant"] = inheritsCovariant;
       if (codeLength != 0) _result["codeLength"] = codeLength;
       if (codeOffset != 0) _result["codeOffset"] = codeOffset;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (normalFormalParameter_comment != null)
         _result["normalFormalParameter_comment"] =
             normalFormalParameter_comment.toJson();
@@ -15282,14 +11731,11 @@
       if (functionTypedFormalParameter_typeParameters != null)
         _result["functionTypedFormalParameter_typeParameters"] =
             functionTypedFormalParameter_typeParameters.toJson();
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
-      if (normalFormalParameter_requiredKeyword != 0)
-        _result["normalFormalParameter_requiredKeyword"] =
-            normalFormalParameter_requiredKeyword;
       if (inheritsCovariant != false)
         _result["inheritsCovariant"] = inheritsCovariant;
       if (codeLength != 0) _result["codeLength"] = codeLength;
       if (codeOffset != 0) _result["codeOffset"] = codeOffset;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (normalFormalParameter_comment != null)
         _result["normalFormalParameter_comment"] =
             normalFormalParameter_comment.toJson();
@@ -15304,14 +11750,11 @@
       if (simpleFormalParameter_type != null)
         _result["simpleFormalParameter_type"] =
             simpleFormalParameter_type.toJson();
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
-      if (normalFormalParameter_requiredKeyword != 0)
-        _result["normalFormalParameter_requiredKeyword"] =
-            normalFormalParameter_requiredKeyword;
       if (inheritsCovariant != false)
         _result["inheritsCovariant"] = inheritsCovariant;
       if (codeLength != 0) _result["codeLength"] = codeLength;
       if (codeOffset != 0) _result["codeOffset"] = codeOffset;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (normalFormalParameter_comment != null)
         _result["normalFormalParameter_comment"] =
             normalFormalParameter_comment.toJson();
@@ -15329,13 +11772,11 @@
       if (variableDeclaration_initializer != null)
         _result["variableDeclaration_initializer"] =
             variableDeclaration_initializer.toJson();
-      if (variableDeclaration_equals != 0)
-        _result["variableDeclaration_equals"] = variableDeclaration_equals;
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (inheritsCovariant != false)
         _result["inheritsCovariant"] = inheritsCovariant;
       if (codeLength != 0) _result["codeLength"] = codeLength;
       if (codeOffset != 0) _result["codeOffset"] = codeOffset;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (topLevelTypeInferenceError != null)
         _result["topLevelTypeInferenceError"] =
             topLevelTypeInferenceError.toJson();
@@ -15350,14 +11791,14 @@
       if (binaryExpression_leftOperand != null)
         _result["binaryExpression_leftOperand"] =
             binaryExpression_leftOperand.toJson();
-      if (binaryExpression_element != 0)
-        _result["binaryExpression_element"] = binaryExpression_element;
       if (binaryExpression_rightOperand != null)
         _result["binaryExpression_rightOperand"] =
             binaryExpression_rightOperand.toJson();
       if (binaryExpression_elementType != null)
         _result["binaryExpression_elementType"] =
             binaryExpression_elementType.toJson();
+      if (binaryExpression_element != 0)
+        _result["binaryExpression_element"] = binaryExpression_element;
       if (binaryExpression_operator != idl.UnlinkedTokenType.NOTHING)
         _result["binaryExpression_operator"] =
             binaryExpression_operator.toString().split('.')[1];
@@ -15387,8 +11828,6 @@
       if (methodInvocation_methodName != null)
         _result["methodInvocation_methodName"] =
             methodInvocation_methodName.toJson();
-      if (methodInvocation_operator != 0)
-        _result["methodInvocation_operator"] = methodInvocation_operator;
       if (methodInvocation_target != null)
         _result["methodInvocation_target"] = methodInvocation_target.toJson();
       if (invocationExpression_typeArguments != null)
@@ -15409,20 +11848,11 @@
       if (argumentList_arguments.isNotEmpty)
         _result["argumentList_arguments"] =
             argumentList_arguments.map((_value) => _value.toJson()).toList();
-      if (argumentList_leftParenthesis != 0)
-        _result["argumentList_leftParenthesis"] = argumentList_leftParenthesis;
-      if (argumentList_rightParenthesis != 0)
-        _result["argumentList_rightParenthesis"] =
-            argumentList_rightParenthesis;
     }
     if (kind == idl.LinkedNodeKind.block) {
       if (block_statements.isNotEmpty)
         _result["block_statements"] =
             block_statements.map((_value) => _value.toJson()).toList();
-      if (block_leftBracket != 0)
-        _result["block_leftBracket"] = block_leftBracket;
-      if (block_rightBracket != 0)
-        _result["block_rightBracket"] = block_rightBracket;
     }
     if (kind == idl.LinkedNodeKind.cascadeExpression) {
       if (cascadeExpression_sections.isNotEmpty)
@@ -15450,10 +11880,6 @@
       if (compilationUnit_scriptTag != null)
         _result["compilationUnit_scriptTag"] =
             compilationUnit_scriptTag.toJson();
-      if (compilationUnit_beginToken != 0)
-        _result["compilationUnit_beginToken"] = compilationUnit_beginToken;
-      if (compilationUnit_endToken != 0)
-        _result["compilationUnit_endToken"] = compilationUnit_endToken;
       if (codeLength != 0) _result["codeLength"] = codeLength;
       if (codeOffset != 0) _result["codeOffset"] = codeOffset;
       if (compilationUnit_directives.isNotEmpty)
@@ -15478,15 +11904,6 @@
       if (constructorDeclaration_parameters != null)
         _result["constructorDeclaration_parameters"] =
             constructorDeclaration_parameters.toJson();
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
-      if (constructorDeclaration_period != 0)
-        _result["constructorDeclaration_period"] =
-            constructorDeclaration_period;
-      if (constructorDeclaration_separator != 0)
-        _result["constructorDeclaration_separator"] =
-            constructorDeclaration_separator;
-      if (executable_isAsynchronous != false)
-        _result["executable_isAsynchronous"] = executable_isAsynchronous;
       if (constructorDeclaration_redirectedConstructor != null)
         _result["constructorDeclaration_redirectedConstructor"] =
             constructorDeclaration_redirectedConstructor.toJson();
@@ -15495,8 +11912,7 @@
       if (constructorDeclaration_returnType != null)
         _result["constructorDeclaration_returnType"] =
             constructorDeclaration_returnType.toJson();
-      if (executable_isGenerator != false)
-        _result["executable_isGenerator"] = executable_isGenerator;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
     }
     if (kind == idl.LinkedNodeKind.dottedName) {
       if (dottedName_components.isNotEmpty)
@@ -15512,9 +11928,9 @@
       if (annotatedNode_metadata.isNotEmpty)
         _result["annotatedNode_metadata"] =
             annotatedNode_metadata.map((_value) => _value.toJson()).toList();
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (codeLength != 0) _result["codeLength"] = codeLength;
       if (codeOffset != 0) _result["codeOffset"] = codeOffset;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
     }
     if (kind == idl.LinkedNodeKind.formalParameterList) {
       if (formalParameterList_parameters.isNotEmpty)
@@ -15522,27 +11938,27 @@
             formalParameterList_parameters
                 .map((_value) => _value.toJson())
                 .toList();
-      if (formalParameterList_leftDelimiter != 0)
-        _result["formalParameterList_leftDelimiter"] =
-            formalParameterList_leftDelimiter;
-      if (formalParameterList_rightDelimiter != 0)
-        _result["formalParameterList_rightDelimiter"] =
-            formalParameterList_rightDelimiter;
-      if (formalParameterList_leftParenthesis != 0)
-        _result["formalParameterList_leftParenthesis"] =
-            formalParameterList_leftParenthesis;
-      if (formalParameterList_rightParenthesis != 0)
-        _result["formalParameterList_rightParenthesis"] =
-            formalParameterList_rightParenthesis;
     }
     if (kind == idl.LinkedNodeKind.implementsClause) {
       if (implementsClause_interfaces.isNotEmpty)
         _result["implementsClause_interfaces"] = implementsClause_interfaces
             .map((_value) => _value.toJson())
             .toList();
-      if (implementsClause_implementsKeyword != 0)
-        _result["implementsClause_implementsKeyword"] =
-            implementsClause_implementsKeyword;
+    }
+    if (kind == idl.LinkedNodeKind.instanceCreationExpression) {
+      if (instanceCreationExpression_arguments.isNotEmpty)
+        _result["instanceCreationExpression_arguments"] =
+            instanceCreationExpression_arguments
+                .map((_value) => _value.toJson())
+                .toList();
+      if (instanceCreationExpression_constructorName != null)
+        _result["instanceCreationExpression_constructorName"] =
+            instanceCreationExpression_constructorName.toJson();
+      if (instanceCreationExpression_typeArguments != null)
+        _result["instanceCreationExpression_typeArguments"] =
+            instanceCreationExpression_typeArguments.toJson();
+      if (expression_type != null)
+        _result["expression_type"] = expression_type.toJson();
     }
     if (kind == idl.LinkedNodeKind.labeledStatement) {
       if (labeledStatement_labels.isNotEmpty)
@@ -15558,20 +11974,6 @@
             .map((_value) => _value.toJson())
             .toList();
     }
-    if (kind == idl.LinkedNodeKind.listLiteral) {
-      if (listLiteral_elements.isNotEmpty)
-        _result["listLiteral_elements"] =
-            listLiteral_elements.map((_value) => _value.toJson()).toList();
-      if (listLiteral_leftBracket != 0)
-        _result["listLiteral_leftBracket"] = listLiteral_leftBracket;
-      if (listLiteral_rightBracket != 0)
-        _result["listLiteral_rightBracket"] = listLiteral_rightBracket;
-      if (expression_type != null)
-        _result["expression_type"] = expression_type.toJson();
-      if (typedLiteral_typeArguments != null)
-        _result["typedLiteral_typeArguments"] =
-            typedLiteral_typeArguments.toJson();
-    }
     if (kind == idl.LinkedNodeKind.exportDirective) {
       if (namespaceDirective_combinators.isNotEmpty)
         _result["namespaceDirective_combinators"] =
@@ -15583,18 +11985,12 @@
       if (annotatedNode_metadata.isNotEmpty)
         _result["annotatedNode_metadata"] =
             annotatedNode_metadata.map((_value) => _value.toJson()).toList();
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
-      if (directive_keyword != 0)
-        _result["directive_keyword"] = directive_keyword;
-      if (uriBasedDirective_uriElement != 0)
-        _result["uriBasedDirective_uriElement"] = uriBasedDirective_uriElement;
-      if (directive_semicolon != 0)
-        _result["directive_semicolon"] = directive_semicolon;
       if (namespaceDirective_configurations.isNotEmpty)
         _result["namespaceDirective_configurations"] =
             namespaceDirective_configurations
                 .map((_value) => _value.toJson())
                 .toList();
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (uriBasedDirective_uri != null)
         _result["uriBasedDirective_uri"] = uriBasedDirective_uri.toJson();
       if (namespaceDirective_selectedUri != '')
@@ -15602,6 +11998,8 @@
             namespaceDirective_selectedUri;
       if (uriBasedDirective_uriContent != '')
         _result["uriBasedDirective_uriContent"] = uriBasedDirective_uriContent;
+      if (uriBasedDirective_uriElement != 0)
+        _result["uriBasedDirective_uriElement"] = uriBasedDirective_uriElement;
     }
     if (kind == idl.LinkedNodeKind.importDirective) {
       if (namespaceDirective_combinators.isNotEmpty)
@@ -15616,13 +12014,6 @@
             annotatedNode_metadata.map((_value) => _value.toJson()).toList();
       if (importDirective_prefixOffset != 0)
         _result["importDirective_prefixOffset"] = importDirective_prefixOffset;
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
-      if (directive_keyword != 0)
-        _result["directive_keyword"] = directive_keyword;
-      if (uriBasedDirective_uriElement != 0)
-        _result["uriBasedDirective_uriElement"] = uriBasedDirective_uriElement;
-      if (directive_semicolon != 0)
-        _result["directive_semicolon"] = directive_semicolon;
       if (namespaceDirective_configurations.isNotEmpty)
         _result["namespaceDirective_configurations"] =
             namespaceDirective_configurations
@@ -15630,6 +12021,7 @@
                 .toList();
       if (importDirective_prefix != '')
         _result["importDirective_prefix"] = importDirective_prefix;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (uriBasedDirective_uri != null)
         _result["uriBasedDirective_uri"] = uriBasedDirective_uri.toJson();
       if (namespaceDirective_selectedUri != '')
@@ -15637,6 +12029,8 @@
             namespaceDirective_selectedUri;
       if (uriBasedDirective_uriContent != '')
         _result["uriBasedDirective_uriContent"] = uriBasedDirective_uriContent;
+      if (uriBasedDirective_uriElement != 0)
+        _result["uriBasedDirective_uriElement"] = uriBasedDirective_uriElement;
     }
     if (kind == idl.LinkedNodeKind.onClause) {
       if (onClause_superclassConstraints.isNotEmpty)
@@ -15644,26 +12038,6 @@
             onClause_superclassConstraints
                 .map((_value) => _value.toJson())
                 .toList();
-      if (onClause_onKeyword != 0)
-        _result["onClause_onKeyword"] = onClause_onKeyword;
-    }
-    if (kind == idl.LinkedNodeKind.setOrMapLiteral) {
-      if (setOrMapLiteral_elements.isNotEmpty)
-        _result["setOrMapLiteral_elements"] =
-            setOrMapLiteral_elements.map((_value) => _value.toJson()).toList();
-      if (setOrMapLiteral_leftBracket != 0)
-        _result["setOrMapLiteral_leftBracket"] = setOrMapLiteral_leftBracket;
-      if (setOrMapLiteral_rightBracket != 0)
-        _result["setOrMapLiteral_rightBracket"] = setOrMapLiteral_rightBracket;
-      if (setOrMapLiteral_isMap != false)
-        _result["setOrMapLiteral_isMap"] = setOrMapLiteral_isMap;
-      if (expression_type != null)
-        _result["expression_type"] = expression_type.toJson();
-      if (typedLiteral_typeArguments != null)
-        _result["typedLiteral_typeArguments"] =
-            typedLiteral_typeArguments.toJson();
-      if (setOrMapLiteral_isSet != false)
-        _result["setOrMapLiteral_isSet"] = setOrMapLiteral_isSet;
     }
     if (kind == idl.LinkedNodeKind.stringInterpolation) {
       if (stringInterpolation_elements.isNotEmpty)
@@ -15675,22 +12049,9 @@
       if (switchStatement_members.isNotEmpty)
         _result["switchStatement_members"] =
             switchStatement_members.map((_value) => _value.toJson()).toList();
-      if (switchStatement_leftParenthesis != 0)
-        _result["switchStatement_leftParenthesis"] =
-            switchStatement_leftParenthesis;
       if (switchStatement_expression != null)
         _result["switchStatement_expression"] =
             switchStatement_expression.toJson();
-      if (switchStatement_switchKeyword != 0)
-        _result["switchStatement_switchKeyword"] =
-            switchStatement_switchKeyword;
-      if (switchStatement_rightParenthesis != 0)
-        _result["switchStatement_rightParenthesis"] =
-            switchStatement_rightParenthesis;
-      if (switchStatement_leftBracket != 0)
-        _result["switchStatement_leftBracket"] = switchStatement_leftBracket;
-      if (switchStatement_rightBracket != 0)
-        _result["switchStatement_rightBracket"] = switchStatement_rightBracket;
     }
     if (kind == idl.LinkedNodeKind.tryStatement) {
       if (tryStatement_catchClauses.isNotEmpty)
@@ -15698,24 +12059,46 @@
             tryStatement_catchClauses.map((_value) => _value.toJson()).toList();
       if (tryStatement_body != null)
         _result["tryStatement_body"] = tryStatement_body.toJson();
-      if (tryStatement_finallyKeyword != 0)
-        _result["tryStatement_finallyKeyword"] = tryStatement_finallyKeyword;
       if (tryStatement_finallyBlock != null)
         _result["tryStatement_finallyBlock"] =
             tryStatement_finallyBlock.toJson();
-      if (tryStatement_tryKeyword != 0)
-        _result["tryStatement_tryKeyword"] = tryStatement_tryKeyword;
     }
     if (kind == idl.LinkedNodeKind.typeArgumentList) {
       if (typeArgumentList_arguments.isNotEmpty)
         _result["typeArgumentList_arguments"] = typeArgumentList_arguments
             .map((_value) => _value.toJson())
             .toList();
-      if (typeArgumentList_leftBracket != 0)
-        _result["typeArgumentList_leftBracket"] = typeArgumentList_leftBracket;
-      if (typeArgumentList_rightBracket != 0)
-        _result["typeArgumentList_rightBracket"] =
-            typeArgumentList_rightBracket;
+    }
+    if (kind == idl.LinkedNodeKind.listLiteral) {
+      if (typedLiteral_typeArguments.isNotEmpty)
+        _result["typedLiteral_typeArguments"] = typedLiteral_typeArguments
+            .map((_value) => _value.toJson())
+            .toList();
+      if (listLiteral_elements.isNotEmpty)
+        _result["listLiteral_elements"] =
+            listLiteral_elements.map((_value) => _value.toJson()).toList();
+      if (expression_type != null)
+        _result["expression_type"] = expression_type.toJson();
+    }
+    if (kind == idl.LinkedNodeKind.setOrMapLiteral) {
+      if (typedLiteral_typeArguments.isNotEmpty)
+        _result["typedLiteral_typeArguments"] = typedLiteral_typeArguments
+            .map((_value) => _value.toJson())
+            .toList();
+      if (setOrMapLiteral_elements.isNotEmpty)
+        _result["setOrMapLiteral_elements"] =
+            setOrMapLiteral_elements.map((_value) => _value.toJson()).toList();
+      if (expression_type != null)
+        _result["expression_type"] = expression_type.toJson();
+    }
+    if (kind == idl.LinkedNodeKind.typeName) {
+      if (typeName_typeArguments.isNotEmpty)
+        _result["typeName_typeArguments"] =
+            typeName_typeArguments.map((_value) => _value.toJson()).toList();
+      if (typeName_name != null)
+        _result["typeName_name"] = typeName_name.toJson();
+      if (typeName_type != null)
+        _result["typeName_type"] = typeName_type.toJson();
     }
     if (kind == idl.LinkedNodeKind.typeParameterList) {
       if (typeParameterList_typeParameters.isNotEmpty)
@@ -15723,12 +12106,6 @@
             typeParameterList_typeParameters
                 .map((_value) => _value.toJson())
                 .toList();
-      if (typeParameterList_leftBracket != 0)
-        _result["typeParameterList_leftBracket"] =
-            typeParameterList_leftBracket;
-      if (typeParameterList_rightBracket != 0)
-        _result["typeParameterList_rightBracket"] =
-            typeParameterList_rightBracket;
     }
     if (kind == idl.LinkedNodeKind.variableDeclarationList) {
       if (variableDeclarationList_variables.isNotEmpty)
@@ -15749,8 +12126,6 @@
       if (withClause_mixinTypes.isNotEmpty)
         _result["withClause_mixinTypes"] =
             withClause_mixinTypes.map((_value) => _value.toJson()).toList();
-      if (withClause_withKeyword != 0)
-        _result["withClause_withKeyword"] = withClause_withKeyword;
     }
     if (kind == idl.LinkedNodeKind.classDeclaration) {
       if (annotatedNode_comment != null)
@@ -15767,13 +12142,6 @@
       if (classDeclaration_nativeClause != null)
         _result["classDeclaration_nativeClause"] =
             classDeclaration_nativeClause.toJson();
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
-      if (classOrMixinDeclaration_rightBracket != 0)
-        _result["classOrMixinDeclaration_rightBracket"] =
-            classOrMixinDeclaration_rightBracket;
-      if (classOrMixinDeclaration_leftBracket != 0)
-        _result["classOrMixinDeclaration_leftBracket"] =
-            classOrMixinDeclaration_leftBracket;
       if (classDeclaration_isDartObject != false)
         _result["classDeclaration_isDartObject"] =
             classDeclaration_isDartObject;
@@ -15790,6 +12158,7 @@
             classOrMixinDeclaration_typeParameters.toJson();
       if (codeLength != 0) _result["codeLength"] = codeLength;
       if (codeOffset != 0) _result["codeOffset"] = codeOffset;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (simplyBoundable_isSimplyBounded != false)
         _result["simplyBoundable_isSimplyBounded"] =
             simplyBoundable_isSimplyBounded;
@@ -15809,16 +12178,12 @@
       if (classTypeAlias_withClause != null)
         _result["classTypeAlias_withClause"] =
             classTypeAlias_withClause.toJson();
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
-      if (typeAlias_typedefKeyword != 0)
-        _result["typeAlias_typedefKeyword"] = typeAlias_typedefKeyword;
-      if (typeAlias_semicolon != 0)
-        _result["typeAlias_semicolon"] = typeAlias_semicolon;
       if (classTypeAlias_implementsClause != null)
         _result["classTypeAlias_implementsClause"] =
             classTypeAlias_implementsClause.toJson();
       if (codeLength != 0) _result["codeLength"] = codeLength;
       if (codeOffset != 0) _result["codeOffset"] = codeOffset;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (simplyBoundable_isSimplyBounded != false)
         _result["simplyBoundable_isSimplyBounded"] =
             simplyBoundable_isSimplyBounded;
@@ -15832,8 +12197,6 @@
       if (declaredIdentifier_identifier != null)
         _result["declaredIdentifier_identifier"] =
             declaredIdentifier_identifier.toJson();
-      if (declaredIdentifier_keyword != 0)
-        _result["declaredIdentifier_keyword"] = declaredIdentifier_keyword;
       if (declaredIdentifier_type != null)
         _result["declaredIdentifier_type"] = declaredIdentifier_type.toJson();
     }
@@ -15853,8 +12216,6 @@
             annotatedNode_metadata.map((_value) => _value.toJson()).toList();
       if (fieldDeclaration_fields != null)
         _result["fieldDeclaration_fields"] = fieldDeclaration_fields.toJson();
-      if (fieldDeclaration_semicolon != 0)
-        _result["fieldDeclaration_semicolon"] = fieldDeclaration_semicolon;
     }
     if (kind == idl.LinkedNodeKind.genericTypeAlias) {
       if (annotatedNode_comment != null)
@@ -15868,15 +12229,11 @@
       if (genericTypeAlias_functionType != null)
         _result["genericTypeAlias_functionType"] =
             genericTypeAlias_functionType.toJson();
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
-      if (typeAlias_typedefKeyword != 0)
-        _result["typeAlias_typedefKeyword"] = typeAlias_typedefKeyword;
-      if (typeAlias_semicolon != 0)
-        _result["typeAlias_semicolon"] = typeAlias_semicolon;
       if (typeAlias_hasSelfReference != false)
         _result["typeAlias_hasSelfReference"] = typeAlias_hasSelfReference;
       if (codeLength != 0) _result["codeLength"] = codeLength;
       if (codeOffset != 0) _result["codeOffset"] = codeOffset;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (simplyBoundable_isSimplyBounded != false)
         _result["simplyBoundable_isSimplyBounded"] =
             simplyBoundable_isSimplyBounded;
@@ -15889,10 +12246,6 @@
             annotatedNode_metadata.map((_value) => _value.toJson()).toList();
       if (libraryDirective_name != null)
         _result["libraryDirective_name"] = libraryDirective_name.toJson();
-      if (directive_keyword != 0)
-        _result["directive_keyword"] = directive_keyword;
-      if (directive_semicolon != 0)
-        _result["directive_semicolon"] = directive_semicolon;
     }
     if (kind == idl.LinkedNodeKind.mixinDeclaration) {
       if (annotatedNode_comment != null)
@@ -15903,16 +12256,6 @@
       if (mixinDeclaration_onClause != null)
         _result["mixinDeclaration_onClause"] =
             mixinDeclaration_onClause.toJson();
-      if (mixinDeclaration_mixinKeyword != 0)
-        _result["mixinDeclaration_mixinKeyword"] =
-            mixinDeclaration_mixinKeyword;
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
-      if (classOrMixinDeclaration_rightBracket != 0)
-        _result["classOrMixinDeclaration_rightBracket"] =
-            classOrMixinDeclaration_rightBracket;
-      if (classOrMixinDeclaration_leftBracket != 0)
-        _result["classOrMixinDeclaration_leftBracket"] =
-            classOrMixinDeclaration_leftBracket;
       if (classOrMixinDeclaration_implementsClause != null)
         _result["classOrMixinDeclaration_implementsClause"] =
             classOrMixinDeclaration_implementsClause.toJson();
@@ -15929,6 +12272,7 @@
       if (mixinDeclaration_superInvokedNames.isNotEmpty)
         _result["mixinDeclaration_superInvokedNames"] =
             mixinDeclaration_superInvokedNames;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (simplyBoundable_isSimplyBounded != false)
         _result["simplyBoundable_isSimplyBounded"] =
             simplyBoundable_isSimplyBounded;
@@ -15940,16 +12284,12 @@
         _result["annotatedNode_metadata"] =
             annotatedNode_metadata.map((_value) => _value.toJson()).toList();
       if (nameOffset != 0) _result["nameOffset"] = nameOffset;
-      if (directive_keyword != 0)
-        _result["directive_keyword"] = directive_keyword;
-      if (uriBasedDirective_uriElement != 0)
-        _result["uriBasedDirective_uriElement"] = uriBasedDirective_uriElement;
-      if (directive_semicolon != 0)
-        _result["directive_semicolon"] = directive_semicolon;
       if (uriBasedDirective_uri != null)
         _result["uriBasedDirective_uri"] = uriBasedDirective_uri.toJson();
       if (uriBasedDirective_uriContent != '')
         _result["uriBasedDirective_uriContent"] = uriBasedDirective_uriContent;
+      if (uriBasedDirective_uriElement != 0)
+        _result["uriBasedDirective_uriElement"] = uriBasedDirective_uriElement;
     }
     if (kind == idl.LinkedNodeKind.partOfDirective) {
       if (annotatedNode_comment != null)
@@ -15962,12 +12302,6 @@
             partOfDirective_libraryName.toJson();
       if (partOfDirective_uri != null)
         _result["partOfDirective_uri"] = partOfDirective_uri.toJson();
-      if (partOfDirective_ofKeyword != 0)
-        _result["partOfDirective_ofKeyword"] = partOfDirective_ofKeyword;
-      if (directive_keyword != 0)
-        _result["directive_keyword"] = directive_keyword;
-      if (directive_semicolon != 0)
-        _result["directive_semicolon"] = directive_semicolon;
     }
     if (kind == idl.LinkedNodeKind.topLevelVariableDeclaration) {
       if (annotatedNode_comment != null)
@@ -15978,9 +12312,6 @@
       if (topLevelVariableDeclaration_variableList != null)
         _result["topLevelVariableDeclaration_variableList"] =
             topLevelVariableDeclaration_variableList.toJson();
-      if (topLevelVariableDeclaration_semicolon != 0)
-        _result["topLevelVariableDeclaration_semicolon"] =
-            topLevelVariableDeclaration_semicolon;
     }
     if (kind == idl.LinkedNodeKind.typeParameter) {
       if (annotatedNode_comment != null)
@@ -15990,14 +12321,12 @@
             annotatedNode_metadata.map((_value) => _value.toJson()).toList();
       if (typeParameter_bound != null)
         _result["typeParameter_bound"] = typeParameter_bound.toJson();
-      if (typeParameter_extendsKeyword != 0)
-        _result["typeParameter_extendsKeyword"] = typeParameter_extendsKeyword;
       if (typeParameter_defaultType != null)
         _result["typeParameter_defaultType"] =
             typeParameter_defaultType.toJson();
-      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
       if (codeLength != 0) _result["codeLength"] = codeLength;
       if (codeOffset != 0) _result["codeOffset"] = codeOffset;
+      if (nameOffset != 0) _result["nameOffset"] = nameOffset;
     }
     if (kind == idl.LinkedNodeKind.switchCase) {
       if (switchMember_statements.isNotEmpty)
@@ -16005,10 +12334,6 @@
             switchMember_statements.map((_value) => _value.toJson()).toList();
       if (switchCase_expression != null)
         _result["switchCase_expression"] = switchCase_expression.toJson();
-      if (switchMember_keyword != 0)
-        _result["switchMember_keyword"] = switchMember_keyword;
-      if (switchMember_colon != 0)
-        _result["switchMember_colon"] = switchMember_colon;
       if (switchMember_labels.isNotEmpty)
         _result["switchMember_labels"] =
             switchMember_labels.map((_value) => _value.toJson()).toList();
@@ -16017,10 +12342,6 @@
       if (switchMember_statements.isNotEmpty)
         _result["switchMember_statements"] =
             switchMember_statements.map((_value) => _value.toJson()).toList();
-      if (switchMember_keyword != 0)
-        _result["switchMember_keyword"] = switchMember_keyword;
-      if (switchMember_colon != 0)
-        _result["switchMember_colon"] = switchMember_colon;
       if (switchMember_labels.isNotEmpty)
         _result["switchMember_labels"] =
             switchMember_labels.map((_value) => _value.toJson()).toList();
@@ -16028,8 +12349,6 @@
     if (kind == idl.LinkedNodeKind.annotation) {
       if (annotation_arguments != null)
         _result["annotation_arguments"] = annotation_arguments.toJson();
-      if (annotation_atSign != 0)
-        _result["annotation_atSign"] = annotation_atSign;
       if (annotation_constructorName != null)
         _result["annotation_constructorName"] =
             annotation_constructorName.toJson();
@@ -16039,14 +12358,10 @@
         _result["annotation_elementType"] = annotation_elementType.toJson();
       if (annotation_name != null)
         _result["annotation_name"] = annotation_name.toJson();
-      if (annotation_period != 0)
-        _result["annotation_period"] = annotation_period;
     }
     if (kind == idl.LinkedNodeKind.asExpression) {
       if (asExpression_expression != null)
         _result["asExpression_expression"] = asExpression_expression.toJson();
-      if (asExpression_asOperator != 0)
-        _result["asExpression_asOperator"] = asExpression_asOperator;
       if (asExpression_type != null)
         _result["asExpression_type"] = asExpression_type.toJson();
       if (expression_type != null)
@@ -16056,56 +12371,32 @@
       if (assertInitializer_condition != null)
         _result["assertInitializer_condition"] =
             assertInitializer_condition.toJson();
-      if (assertInitializer_assertKeyword != 0)
-        _result["assertInitializer_assertKeyword"] =
-            assertInitializer_assertKeyword;
       if (assertInitializer_message != null)
         _result["assertInitializer_message"] =
             assertInitializer_message.toJson();
-      if (assertInitializer_leftParenthesis != 0)
-        _result["assertInitializer_leftParenthesis"] =
-            assertInitializer_leftParenthesis;
-      if (assertInitializer_comma != 0)
-        _result["assertInitializer_comma"] = assertInitializer_comma;
-      if (assertInitializer_rightParenthesis != 0)
-        _result["assertInitializer_rightParenthesis"] =
-            assertInitializer_rightParenthesis;
     }
     if (kind == idl.LinkedNodeKind.assertStatement) {
       if (assertStatement_condition != null)
         _result["assertStatement_condition"] =
             assertStatement_condition.toJson();
-      if (assertStatement_assertKeyword != 0)
-        _result["assertStatement_assertKeyword"] =
-            assertStatement_assertKeyword;
       if (assertStatement_message != null)
         _result["assertStatement_message"] = assertStatement_message.toJson();
-      if (assertStatement_leftParenthesis != 0)
-        _result["assertStatement_leftParenthesis"] =
-            assertStatement_leftParenthesis;
-      if (assertStatement_comma != 0)
-        _result["assertStatement_comma"] = assertStatement_comma;
-      if (assertStatement_rightParenthesis != 0)
-        _result["assertStatement_rightParenthesis"] =
-            assertStatement_rightParenthesis;
-      if (assertStatement_semicolon != 0)
-        _result["assertStatement_semicolon"] = assertStatement_semicolon;
     }
     if (kind == idl.LinkedNodeKind.assignmentExpression) {
       if (assignmentExpression_leftHandSide != null)
         _result["assignmentExpression_leftHandSide"] =
             assignmentExpression_leftHandSide.toJson();
-      if (assignmentExpression_element != 0)
-        _result["assignmentExpression_element"] = assignmentExpression_element;
       if (assignmentExpression_rightHandSide != null)
         _result["assignmentExpression_rightHandSide"] =
             assignmentExpression_rightHandSide.toJson();
       if (assignmentExpression_elementType != null)
         _result["assignmentExpression_elementType"] =
             assignmentExpression_elementType.toJson();
-      if (assignmentExpression_operator != 0)
+      if (assignmentExpression_element != 0)
+        _result["assignmentExpression_element"] = assignmentExpression_element;
+      if (assignmentExpression_operator != idl.UnlinkedTokenType.NOTHING)
         _result["assignmentExpression_operator"] =
-            assignmentExpression_operator;
+            assignmentExpression_operator.toString().split('.')[1];
       if (expression_type != null)
         _result["expression_type"] = expression_type.toJson();
     }
@@ -16113,46 +12404,26 @@
       if (awaitExpression_expression != null)
         _result["awaitExpression_expression"] =
             awaitExpression_expression.toJson();
-      if (awaitExpression_awaitKeyword != 0)
-        _result["awaitExpression_awaitKeyword"] = awaitExpression_awaitKeyword;
       if (expression_type != null)
         _result["expression_type"] = expression_type.toJson();
     }
     if (kind == idl.LinkedNodeKind.blockFunctionBody) {
       if (blockFunctionBody_block != null)
         _result["blockFunctionBody_block"] = blockFunctionBody_block.toJson();
-      if (blockFunctionBody_keyword != 0)
-        _result["blockFunctionBody_keyword"] = blockFunctionBody_keyword;
-      if (blockFunctionBody_star != 0)
-        _result["blockFunctionBody_star"] = blockFunctionBody_star;
     }
     if (kind == idl.LinkedNodeKind.breakStatement) {
       if (breakStatement_label != null)
         _result["breakStatement_label"] = breakStatement_label.toJson();
-      if (breakStatement_breakKeyword != 0)
-        _result["breakStatement_breakKeyword"] = breakStatement_breakKeyword;
-      if (breakStatement_semicolon != 0)
-        _result["breakStatement_semicolon"] = breakStatement_semicolon;
     }
     if (kind == idl.LinkedNodeKind.catchClause) {
       if (catchClause_body != null)
         _result["catchClause_body"] = catchClause_body.toJson();
-      if (catchClause_catchKeyword != 0)
-        _result["catchClause_catchKeyword"] = catchClause_catchKeyword;
       if (catchClause_exceptionParameter != null)
         _result["catchClause_exceptionParameter"] =
             catchClause_exceptionParameter.toJson();
-      if (catchClause_leftParenthesis != 0)
-        _result["catchClause_leftParenthesis"] = catchClause_leftParenthesis;
       if (catchClause_exceptionType != null)
         _result["catchClause_exceptionType"] =
             catchClause_exceptionType.toJson();
-      if (catchClause_comma != 0)
-        _result["catchClause_comma"] = catchClause_comma;
-      if (catchClause_onKeyword != 0)
-        _result["catchClause_onKeyword"] = catchClause_onKeyword;
-      if (catchClause_rightParenthesis != 0)
-        _result["catchClause_rightParenthesis"] = catchClause_rightParenthesis;
       if (catchClause_stackTraceParameter != null)
         _result["catchClause_stackTraceParameter"] =
             catchClause_stackTraceParameter.toJson();
@@ -16161,91 +12432,55 @@
       if (commentReference_identifier != null)
         _result["commentReference_identifier"] =
             commentReference_identifier.toJson();
-      if (commentReference_newKeyword != 0)
-        _result["commentReference_newKeyword"] = commentReference_newKeyword;
     }
     if (kind == idl.LinkedNodeKind.conditionalExpression) {
       if (conditionalExpression_condition != null)
         _result["conditionalExpression_condition"] =
             conditionalExpression_condition.toJson();
-      if (conditionalExpression_colon != 0)
-        _result["conditionalExpression_colon"] = conditionalExpression_colon;
       if (conditionalExpression_elseExpression != null)
         _result["conditionalExpression_elseExpression"] =
             conditionalExpression_elseExpression.toJson();
       if (conditionalExpression_thenExpression != null)
         _result["conditionalExpression_thenExpression"] =
             conditionalExpression_thenExpression.toJson();
-      if (conditionalExpression_question != 0)
-        _result["conditionalExpression_question"] =
-            conditionalExpression_question;
       if (expression_type != null)
         _result["expression_type"] = expression_type.toJson();
     }
     if (kind == idl.LinkedNodeKind.configuration) {
       if (configuration_name != null)
         _result["configuration_name"] = configuration_name.toJson();
-      if (configuration_ifKeyword != 0)
-        _result["configuration_ifKeyword"] = configuration_ifKeyword;
       if (configuration_value != null)
         _result["configuration_value"] = configuration_value.toJson();
-      if (configuration_rightParenthesis != 0)
-        _result["configuration_rightParenthesis"] =
-            configuration_rightParenthesis;
       if (configuration_uri != null)
         _result["configuration_uri"] = configuration_uri.toJson();
-      if (configuration_leftParenthesis != 0)
-        _result["configuration_leftParenthesis"] =
-            configuration_leftParenthesis;
-      if (configuration_equalToken != 0)
-        _result["configuration_equalToken"] = configuration_equalToken;
     }
     if (kind == idl.LinkedNodeKind.constructorFieldInitializer) {
       if (constructorFieldInitializer_expression != null)
         _result["constructorFieldInitializer_expression"] =
             constructorFieldInitializer_expression.toJson();
-      if (constructorFieldInitializer_equals != 0)
-        _result["constructorFieldInitializer_equals"] =
-            constructorFieldInitializer_equals;
       if (constructorFieldInitializer_fieldName != null)
         _result["constructorFieldInitializer_fieldName"] =
             constructorFieldInitializer_fieldName.toJson();
-      if (constructorFieldInitializer_thisKeyword != 0)
-        _result["constructorFieldInitializer_thisKeyword"] =
-            constructorFieldInitializer_thisKeyword;
-      if (constructorFieldInitializer_period != 0)
-        _result["constructorFieldInitializer_period"] =
-            constructorFieldInitializer_period;
     }
     if (kind == idl.LinkedNodeKind.constructorName) {
       if (constructorName_name != null)
         _result["constructorName_name"] = constructorName_name.toJson();
-      if (constructorName_element != 0)
-        _result["constructorName_element"] = constructorName_element;
       if (constructorName_type != null)
         _result["constructorName_type"] = constructorName_type.toJson();
       if (constructorName_elementType != null)
         _result["constructorName_elementType"] =
             constructorName_elementType.toJson();
-      if (constructorName_period != 0)
-        _result["constructorName_period"] = constructorName_period;
+      if (constructorName_element != 0)
+        _result["constructorName_element"] = constructorName_element;
     }
     if (kind == idl.LinkedNodeKind.continueStatement) {
       if (continueStatement_label != null)
         _result["continueStatement_label"] = continueStatement_label.toJson();
-      if (continueStatement_continueKeyword != 0)
-        _result["continueStatement_continueKeyword"] =
-            continueStatement_continueKeyword;
-      if (continueStatement_semicolon != 0)
-        _result["continueStatement_semicolon"] = continueStatement_semicolon;
     }
     if (kind == idl.LinkedNodeKind.defaultFormalParameter) {
       if (defaultFormalParameter_defaultValue != null)
         _result["defaultFormalParameter_defaultValue"] =
             defaultFormalParameter_defaultValue.toJson();
-      if (defaultFormalParameter_separator != 0)
-        _result["defaultFormalParameter_separator"] =
-            defaultFormalParameter_separator;
       if (defaultFormalParameter_parameter != null)
         _result["defaultFormalParameter_parameter"] =
             defaultFormalParameter_parameter.toJson();
@@ -16259,51 +12494,26 @@
     if (kind == idl.LinkedNodeKind.doStatement) {
       if (doStatement_body != null)
         _result["doStatement_body"] = doStatement_body.toJson();
-      if (doStatement_leftParenthesis != 0)
-        _result["doStatement_leftParenthesis"] = doStatement_leftParenthesis;
       if (doStatement_condition != null)
         _result["doStatement_condition"] = doStatement_condition.toJson();
-      if (doStatement_doKeyword != 0)
-        _result["doStatement_doKeyword"] = doStatement_doKeyword;
-      if (doStatement_rightParenthesis != 0)
-        _result["doStatement_rightParenthesis"] = doStatement_rightParenthesis;
-      if (doStatement_semicolon != 0)
-        _result["doStatement_semicolon"] = doStatement_semicolon;
-      if (doStatement_whileKeyword != 0)
-        _result["doStatement_whileKeyword"] = doStatement_whileKeyword;
     }
     if (kind == idl.LinkedNodeKind.expressionFunctionBody) {
       if (expressionFunctionBody_expression != null)
         _result["expressionFunctionBody_expression"] =
             expressionFunctionBody_expression.toJson();
-      if (expressionFunctionBody_arrow != 0)
-        _result["expressionFunctionBody_arrow"] = expressionFunctionBody_arrow;
-      if (expressionFunctionBody_semicolon != 0)
-        _result["expressionFunctionBody_semicolon"] =
-            expressionFunctionBody_semicolon;
-      if (expressionFunctionBody_keyword != 0)
-        _result["expressionFunctionBody_keyword"] =
-            expressionFunctionBody_keyword;
     }
     if (kind == idl.LinkedNodeKind.expressionStatement) {
       if (expressionStatement_expression != null)
         _result["expressionStatement_expression"] =
             expressionStatement_expression.toJson();
-      if (expressionStatement_semicolon != 0)
-        _result["expressionStatement_semicolon"] =
-            expressionStatement_semicolon;
     }
     if (kind == idl.LinkedNodeKind.extendsClause) {
       if (extendsClause_superclass != null)
         _result["extendsClause_superclass"] = extendsClause_superclass.toJson();
-      if (extendsClause_extendsKeyword != 0)
-        _result["extendsClause_extendsKeyword"] = extendsClause_extendsKeyword;
     }
     if (kind == idl.LinkedNodeKind.forEachPartsWithDeclaration) {
       if (forEachParts_iterable != null)
         _result["forEachParts_iterable"] = forEachParts_iterable.toJson();
-      if (forEachParts_inKeyword != 0)
-        _result["forEachParts_inKeyword"] = forEachParts_inKeyword;
       if (forEachPartsWithDeclaration_loopVariable != null)
         _result["forEachPartsWithDeclaration_loopVariable"] =
             forEachPartsWithDeclaration_loopVariable.toJson();
@@ -16311,8 +12521,6 @@
     if (kind == idl.LinkedNodeKind.forEachPartsWithIdentifier) {
       if (forEachParts_iterable != null)
         _result["forEachParts_iterable"] = forEachParts_iterable.toJson();
-      if (forEachParts_inKeyword != 0)
-        _result["forEachParts_inKeyword"] = forEachParts_inKeyword;
       if (forEachPartsWithIdentifier_identifier != null)
         _result["forEachPartsWithIdentifier_identifier"] =
             forEachPartsWithIdentifier_identifier.toJson();
@@ -16320,41 +12528,21 @@
     if (kind == idl.LinkedNodeKind.forElement) {
       if (forMixin_forLoopParts != null)
         _result["forMixin_forLoopParts"] = forMixin_forLoopParts.toJson();
-      if (forMixin_awaitKeyword != 0)
-        _result["forMixin_awaitKeyword"] = forMixin_awaitKeyword;
       if (forElement_body != null)
         _result["forElement_body"] = forElement_body.toJson();
-      if (forMixin_leftParenthesis != 0)
-        _result["forMixin_leftParenthesis"] = forMixin_leftParenthesis;
-      if (forMixin_forKeyword != 0)
-        _result["forMixin_forKeyword"] = forMixin_forKeyword;
-      if (forMixin_rightParenthesis != 0)
-        _result["forMixin_rightParenthesis"] = forMixin_rightParenthesis;
     }
     if (kind == idl.LinkedNodeKind.forStatement) {
       if (forMixin_forLoopParts != null)
         _result["forMixin_forLoopParts"] = forMixin_forLoopParts.toJson();
-      if (forMixin_awaitKeyword != 0)
-        _result["forMixin_awaitKeyword"] = forMixin_awaitKeyword;
       if (forStatement_body != null)
         _result["forStatement_body"] = forStatement_body.toJson();
-      if (forMixin_leftParenthesis != 0)
-        _result["forMixin_leftParenthesis"] = forMixin_leftParenthesis;
-      if (forMixin_forKeyword != 0)
-        _result["forMixin_forKeyword"] = forMixin_forKeyword;
-      if (forMixin_rightParenthesis != 0)
-        _result["forMixin_rightParenthesis"] = forMixin_rightParenthesis;
     }
     if (kind == idl.LinkedNodeKind.forPartsWithDeclarations) {
       if (forParts_condition != null)
         _result["forParts_condition"] = forParts_condition.toJson();
-      if (forParts_leftSeparator != 0)
-        _result["forParts_leftSeparator"] = forParts_leftSeparator;
       if (forPartsWithDeclarations_variables != null)
         _result["forPartsWithDeclarations_variables"] =
             forPartsWithDeclarations_variables.toJson();
-      if (forParts_rightSeparator != 0)
-        _result["forParts_rightSeparator"] = forParts_rightSeparator;
       if (forParts_updaters.isNotEmpty)
         _result["forParts_updaters"] =
             forParts_updaters.map((_value) => _value.toJson()).toList();
@@ -16362,13 +12550,9 @@
     if (kind == idl.LinkedNodeKind.forPartsWithExpression) {
       if (forParts_condition != null)
         _result["forParts_condition"] = forParts_condition.toJson();
-      if (forParts_leftSeparator != 0)
-        _result["forParts_leftSeparator"] = forParts_leftSeparator;
       if (forPartsWithExpression_initialization != null)
         _result["forPartsWithExpression_initialization"] =
             forPartsWithExpression_initialization.toJson();
-      if (forParts_rightSeparator != 0)
-        _result["forParts_rightSeparator"] = forParts_rightSeparator;
       if (forParts_updaters.isNotEmpty)
         _result["forParts_updaters"] =
             forParts_updaters.map((_value) => _value.toJson()).toList();
@@ -16381,66 +12565,31 @@
     if (kind == idl.LinkedNodeKind.ifElement) {
       if (ifMixin_condition != null)
         _result["ifMixin_condition"] = ifMixin_condition.toJson();
-      if (ifMixin_elseKeyword != 0)
-        _result["ifMixin_elseKeyword"] = ifMixin_elseKeyword;
-      if (ifMixin_leftParenthesis != 0)
-        _result["ifMixin_leftParenthesis"] = ifMixin_leftParenthesis;
       if (ifElement_thenElement != null)
         _result["ifElement_thenElement"] = ifElement_thenElement.toJson();
-      if (ifMixin_ifKeyword != 0)
-        _result["ifMixin_ifKeyword"] = ifMixin_ifKeyword;
-      if (ifMixin_rightParenthesis != 0)
-        _result["ifMixin_rightParenthesis"] = ifMixin_rightParenthesis;
       if (ifElement_elseElement != null)
         _result["ifElement_elseElement"] = ifElement_elseElement.toJson();
     }
     if (kind == idl.LinkedNodeKind.ifStatement) {
       if (ifMixin_condition != null)
         _result["ifMixin_condition"] = ifMixin_condition.toJson();
-      if (ifMixin_elseKeyword != 0)
-        _result["ifMixin_elseKeyword"] = ifMixin_elseKeyword;
       if (ifStatement_elseStatement != null)
         _result["ifStatement_elseStatement"] =
             ifStatement_elseStatement.toJson();
-      if (ifMixin_leftParenthesis != 0)
-        _result["ifMixin_leftParenthesis"] = ifMixin_leftParenthesis;
       if (ifStatement_thenStatement != null)
         _result["ifStatement_thenStatement"] =
             ifStatement_thenStatement.toJson();
-      if (ifMixin_ifKeyword != 0)
-        _result["ifMixin_ifKeyword"] = ifMixin_ifKeyword;
-      if (ifMixin_rightParenthesis != 0)
-        _result["ifMixin_rightParenthesis"] = ifMixin_rightParenthesis;
     }
     if (kind == idl.LinkedNodeKind.indexExpression) {
       if (indexExpression_index != null)
         _result["indexExpression_index"] = indexExpression_index.toJson();
-      if (indexExpression_element != 0)
-        _result["indexExpression_element"] = indexExpression_element;
       if (indexExpression_target != null)
         _result["indexExpression_target"] = indexExpression_target.toJson();
-      if (indexExpression_leftBracket != 0)
-        _result["indexExpression_leftBracket"] = indexExpression_leftBracket;
       if (indexExpression_elementType != null)
         _result["indexExpression_elementType"] =
             indexExpression_elementType.toJson();
-      if (indexExpression_period != 0)
-        _result["indexExpression_period"] = indexExpression_period;
-      if (indexExpression_rightBracket != 0)
-        _result["indexExpression_rightBracket"] = indexExpression_rightBracket;
-      if (expression_type != null)
-        _result["expression_type"] = expression_type.toJson();
-    }
-    if (kind == idl.LinkedNodeKind.instanceCreationExpression) {
-      if (instanceCreationExpression_arguments != null)
-        _result["instanceCreationExpression_arguments"] =
-            instanceCreationExpression_arguments.toJson();
-      if (instanceCreationExpression_constructorName != null)
-        _result["instanceCreationExpression_constructorName"] =
-            instanceCreationExpression_constructorName.toJson();
-      if (instanceCreationExpression_typeArguments != null)
-        _result["instanceCreationExpression_typeArguments"] =
-            instanceCreationExpression_typeArguments.toJson();
+      if (indexExpression_element != 0)
+        _result["indexExpression_element"] = indexExpression_element;
       if (expression_type != null)
         _result["expression_type"] = expression_type.toJson();
     }
@@ -16448,32 +12597,19 @@
       if (interpolationExpression_expression != null)
         _result["interpolationExpression_expression"] =
             interpolationExpression_expression.toJson();
-      if (interpolationExpression_leftBracket != 0)
-        _result["interpolationExpression_leftBracket"] =
-            interpolationExpression_leftBracket;
-      if (interpolationExpression_rightBracket != 0)
-        _result["interpolationExpression_rightBracket"] =
-            interpolationExpression_rightBracket;
     }
     if (kind == idl.LinkedNodeKind.isExpression) {
       if (isExpression_expression != null)
         _result["isExpression_expression"] = isExpression_expression.toJson();
-      if (isExpression_isOperator != 0)
-        _result["isExpression_isOperator"] = isExpression_isOperator;
       if (isExpression_type != null)
         _result["isExpression_type"] = isExpression_type.toJson();
-      if (isExpression_notOperator != 0)
-        _result["isExpression_notOperator"] = isExpression_notOperator;
     }
     if (kind == idl.LinkedNodeKind.label) {
       if (label_label != null) _result["label_label"] = label_label.toJson();
-      if (label_colon != 0) _result["label_colon"] = label_colon;
     }
     if (kind == idl.LinkedNodeKind.mapLiteralEntry) {
       if (mapLiteralEntry_key != null)
         _result["mapLiteralEntry_key"] = mapLiteralEntry_key.toJson();
-      if (mapLiteralEntry_separator != 0)
-        _result["mapLiteralEntry_separator"] = mapLiteralEntry_separator;
       if (mapLiteralEntry_value != null)
         _result["mapLiteralEntry_value"] = mapLiteralEntry_value.toJson();
     }
@@ -16487,29 +12623,16 @@
     if (kind == idl.LinkedNodeKind.nativeClause) {
       if (nativeClause_name != null)
         _result["nativeClause_name"] = nativeClause_name.toJson();
-      if (nativeClause_nativeKeyword != 0)
-        _result["nativeClause_nativeKeyword"] = nativeClause_nativeKeyword;
     }
     if (kind == idl.LinkedNodeKind.nativeFunctionBody) {
       if (nativeFunctionBody_stringLiteral != null)
         _result["nativeFunctionBody_stringLiteral"] =
             nativeFunctionBody_stringLiteral.toJson();
-      if (nativeFunctionBody_nativeKeyword != 0)
-        _result["nativeFunctionBody_nativeKeyword"] =
-            nativeFunctionBody_nativeKeyword;
-      if (nativeFunctionBody_semicolon != 0)
-        _result["nativeFunctionBody_semicolon"] = nativeFunctionBody_semicolon;
     }
     if (kind == idl.LinkedNodeKind.parenthesizedExpression) {
       if (parenthesizedExpression_expression != null)
         _result["parenthesizedExpression_expression"] =
             parenthesizedExpression_expression.toJson();
-      if (parenthesizedExpression_leftParenthesis != 0)
-        _result["parenthesizedExpression_leftParenthesis"] =
-            parenthesizedExpression_leftParenthesis;
-      if (parenthesizedExpression_rightParenthesis != 0)
-        _result["parenthesizedExpression_rightParenthesis"] =
-            parenthesizedExpression_rightParenthesis;
       if (expression_type != null)
         _result["expression_type"] = expression_type.toJson();
     }
@@ -16517,13 +12640,14 @@
       if (postfixExpression_operand != null)
         _result["postfixExpression_operand"] =
             postfixExpression_operand.toJson();
-      if (postfixExpression_element != 0)
-        _result["postfixExpression_element"] = postfixExpression_element;
       if (postfixExpression_elementType != null)
         _result["postfixExpression_elementType"] =
             postfixExpression_elementType.toJson();
-      if (postfixExpression_operator != 0)
-        _result["postfixExpression_operator"] = postfixExpression_operator;
+      if (postfixExpression_element != 0)
+        _result["postfixExpression_element"] = postfixExpression_element;
+      if (postfixExpression_operator != idl.UnlinkedTokenType.NOTHING)
+        _result["postfixExpression_operator"] =
+            postfixExpression_operator.toString().split('.')[1];
       if (expression_type != null)
         _result["expression_type"] = expression_type.toJson();
     }
@@ -16531,8 +12655,6 @@
       if (prefixedIdentifier_identifier != null)
         _result["prefixedIdentifier_identifier"] =
             prefixedIdentifier_identifier.toJson();
-      if (prefixedIdentifier_period != 0)
-        _result["prefixedIdentifier_period"] = prefixedIdentifier_period;
       if (prefixedIdentifier_prefix != null)
         _result["prefixedIdentifier_prefix"] =
             prefixedIdentifier_prefix.toJson();
@@ -16542,11 +12664,11 @@
     if (kind == idl.LinkedNodeKind.prefixExpression) {
       if (prefixExpression_operand != null)
         _result["prefixExpression_operand"] = prefixExpression_operand.toJson();
-      if (prefixExpression_element != 0)
-        _result["prefixExpression_element"] = prefixExpression_element;
       if (prefixExpression_elementType != null)
         _result["prefixExpression_elementType"] =
             prefixExpression_elementType.toJson();
+      if (prefixExpression_element != 0)
+        _result["prefixExpression_element"] = prefixExpression_element;
       if (prefixExpression_operator != idl.UnlinkedTokenType.NOTHING)
         _result["prefixExpression_operator"] =
             prefixExpression_operator.toString().split('.')[1];
@@ -16557,10 +12679,11 @@
       if (propertyAccess_propertyName != null)
         _result["propertyAccess_propertyName"] =
             propertyAccess_propertyName.toJson();
-      if (propertyAccess_operator != 0)
-        _result["propertyAccess_operator"] = propertyAccess_operator;
       if (propertyAccess_target != null)
         _result["propertyAccess_target"] = propertyAccess_target.toJson();
+      if (propertyAccess_operator != idl.UnlinkedTokenType.NOTHING)
+        _result["propertyAccess_operator"] =
+            propertyAccess_operator.toString().split('.')[1];
       if (expression_type != null)
         _result["expression_type"] = expression_type.toJson();
     }
@@ -16568,170 +12691,117 @@
       if (redirectingConstructorInvocation_arguments != null)
         _result["redirectingConstructorInvocation_arguments"] =
             redirectingConstructorInvocation_arguments.toJson();
-      if (redirectingConstructorInvocation_element != 0)
-        _result["redirectingConstructorInvocation_element"] =
-            redirectingConstructorInvocation_element;
       if (redirectingConstructorInvocation_constructorName != null)
         _result["redirectingConstructorInvocation_constructorName"] =
             redirectingConstructorInvocation_constructorName.toJson();
-      if (redirectingConstructorInvocation_thisKeyword != 0)
-        _result["redirectingConstructorInvocation_thisKeyword"] =
-            redirectingConstructorInvocation_thisKeyword;
       if (redirectingConstructorInvocation_elementType != null)
         _result["redirectingConstructorInvocation_elementType"] =
             redirectingConstructorInvocation_elementType.toJson();
-      if (redirectingConstructorInvocation_period != 0)
-        _result["redirectingConstructorInvocation_period"] =
-            redirectingConstructorInvocation_period;
+      if (redirectingConstructorInvocation_element != 0)
+        _result["redirectingConstructorInvocation_element"] =
+            redirectingConstructorInvocation_element;
     }
     if (kind == idl.LinkedNodeKind.returnStatement) {
       if (returnStatement_expression != null)
         _result["returnStatement_expression"] =
             returnStatement_expression.toJson();
-      if (returnStatement_returnKeyword != 0)
-        _result["returnStatement_returnKeyword"] =
-            returnStatement_returnKeyword;
-      if (returnStatement_semicolon != 0)
-        _result["returnStatement_semicolon"] = returnStatement_semicolon;
     }
     if (kind == idl.LinkedNodeKind.spreadElement) {
       if (spreadElement_expression != null)
         _result["spreadElement_expression"] = spreadElement_expression.toJson();
-      if (spreadElement_spreadOperator2 != idl.UnlinkedTokenType.NOTHING)
-        _result["spreadElement_spreadOperator2"] =
-            spreadElement_spreadOperator2.toString().split('.')[1];
+      if (spreadElement_spreadOperator != idl.UnlinkedTokenType.NOTHING)
+        _result["spreadElement_spreadOperator"] =
+            spreadElement_spreadOperator.toString().split('.')[1];
     }
     if (kind == idl.LinkedNodeKind.superConstructorInvocation) {
       if (superConstructorInvocation_arguments != null)
         _result["superConstructorInvocation_arguments"] =
             superConstructorInvocation_arguments.toJson();
-      if (superConstructorInvocation_element != 0)
-        _result["superConstructorInvocation_element"] =
-            superConstructorInvocation_element;
       if (superConstructorInvocation_constructorName != null)
         _result["superConstructorInvocation_constructorName"] =
             superConstructorInvocation_constructorName.toJson();
-      if (superConstructorInvocation_superKeyword != 0)
-        _result["superConstructorInvocation_superKeyword"] =
-            superConstructorInvocation_superKeyword;
       if (superConstructorInvocation_elementType != null)
         _result["superConstructorInvocation_elementType"] =
             superConstructorInvocation_elementType.toJson();
-      if (superConstructorInvocation_period != 0)
-        _result["superConstructorInvocation_period"] =
-            superConstructorInvocation_period;
+      if (superConstructorInvocation_element != 0)
+        _result["superConstructorInvocation_element"] =
+            superConstructorInvocation_element;
     }
     if (kind == idl.LinkedNodeKind.throwExpression) {
       if (throwExpression_expression != null)
         _result["throwExpression_expression"] =
             throwExpression_expression.toJson();
-      if (throwExpression_throwKeyword != 0)
-        _result["throwExpression_throwKeyword"] = throwExpression_throwKeyword;
       if (expression_type != null)
         _result["expression_type"] = expression_type.toJson();
     }
-    if (kind == idl.LinkedNodeKind.typeName) {
-      if (typeName_name != null)
-        _result["typeName_name"] = typeName_name.toJson();
-      if (typeName_question != 0)
-        _result["typeName_question"] = typeName_question;
-      if (typeName_typeArguments != null)
-        _result["typeName_typeArguments"] = typeName_typeArguments.toJson();
-      if (typeName_type != null)
-        _result["typeName_type"] = typeName_type.toJson();
-    }
     if (kind == idl.LinkedNodeKind.variableDeclarationStatement) {
       if (variableDeclarationStatement_variables != null)
         _result["variableDeclarationStatement_variables"] =
             variableDeclarationStatement_variables.toJson();
-      if (variableDeclarationStatement_semicolon != 0)
-        _result["variableDeclarationStatement_semicolon"] =
-            variableDeclarationStatement_semicolon;
     }
     if (kind == idl.LinkedNodeKind.whileStatement) {
       if (whileStatement_body != null)
         _result["whileStatement_body"] = whileStatement_body.toJson();
-      if (whileStatement_leftParenthesis != 0)
-        _result["whileStatement_leftParenthesis"] =
-            whileStatement_leftParenthesis;
       if (whileStatement_condition != null)
         _result["whileStatement_condition"] = whileStatement_condition.toJson();
-      if (whileStatement_whileKeyword != 0)
-        _result["whileStatement_whileKeyword"] = whileStatement_whileKeyword;
-      if (whileStatement_rightParenthesis != 0)
-        _result["whileStatement_rightParenthesis"] =
-            whileStatement_rightParenthesis;
     }
     if (kind == idl.LinkedNodeKind.yieldStatement) {
       if (yieldStatement_expression != null)
         _result["yieldStatement_expression"] =
             yieldStatement_expression.toJson();
-      if (yieldStatement_yieldKeyword != 0)
-        _result["yieldStatement_yieldKeyword"] = yieldStatement_yieldKeyword;
-      if (yieldStatement_semicolon != 0)
-        _result["yieldStatement_semicolon"] = yieldStatement_semicolon;
-      if (yieldStatement_star != 0)
-        _result["yieldStatement_star"] = yieldStatement_star;
-    }
-    if (kind == idl.LinkedNodeKind.emptyFunctionBody) {
-      if (emptyFunctionBody_semicolon != 0)
-        _result["emptyFunctionBody_semicolon"] = emptyFunctionBody_semicolon;
-    }
-    if (kind == idl.LinkedNodeKind.emptyStatement) {
-      if (emptyStatement_semicolon != 0)
-        _result["emptyStatement_semicolon"] = emptyStatement_semicolon;
-    }
-    if (kind == idl.LinkedNodeKind.interpolationString) {
-      if (interpolationString_token != 0)
-        _result["interpolationString_token"] = interpolationString_token;
-      if (interpolationString_value != '')
-        _result["interpolationString_value"] = interpolationString_value;
-    }
-    if (kind == idl.LinkedNodeKind.nullLiteral) {
-      if (nullLiteral_literal != 0)
-        _result["nullLiteral_literal"] = nullLiteral_literal;
-      if (expression_type != null)
-        _result["expression_type"] = expression_type.toJson();
-    }
-    if (kind == idl.LinkedNodeKind.rethrowExpression) {
-      if (rethrowExpression_rethrowKeyword != 0)
-        _result["rethrowExpression_rethrowKeyword"] =
-            rethrowExpression_rethrowKeyword;
-      if (expression_type != null)
-        _result["expression_type"] = expression_type.toJson();
-    }
-    if (kind == idl.LinkedNodeKind.scriptTag) {
-      if (scriptTag_scriptTag != 0)
-        _result["scriptTag_scriptTag"] = scriptTag_scriptTag;
     }
     if (kind == idl.LinkedNodeKind.simpleIdentifier) {
-      if (simpleIdentifier_element != 0)
-        _result["simpleIdentifier_element"] = simpleIdentifier_element;
       if (simpleIdentifier_elementType != null)
         _result["simpleIdentifier_elementType"] =
             simpleIdentifier_elementType.toJson();
-      if (simpleIdentifier_isDeclaration != false)
-        _result["simpleIdentifier_isDeclaration"] =
-            simpleIdentifier_isDeclaration;
+      if (simpleIdentifier_element != 0)
+        _result["simpleIdentifier_element"] = simpleIdentifier_element;
       if (expression_type != null)
         _result["expression_type"] = expression_type.toJson();
     }
-    if (kind == idl.LinkedNodeKind.superExpression) {
-      if (superExpression_superKeyword != 0)
-        _result["superExpression_superKeyword"] = superExpression_superKeyword;
+    if (kind == idl.LinkedNodeKind.emptyFunctionBody) {
+      if (emptyFunctionBody_fake != 0)
+        _result["emptyFunctionBody_fake"] = emptyFunctionBody_fake;
+    }
+    if (kind == idl.LinkedNodeKind.emptyStatement) {
+      if (emptyStatement_fake != 0)
+        _result["emptyStatement_fake"] = emptyStatement_fake;
+    }
+    if (kind == idl.LinkedNodeKind.nullLiteral) {
+      if (nullLiteral_fake != 0) _result["nullLiteral_fake"] = nullLiteral_fake;
       if (expression_type != null)
         _result["expression_type"] = expression_type.toJson();
     }
+    if (kind == idl.LinkedNodeKind.booleanLiteral) {
+      if (booleanLiteral_value != false)
+        _result["booleanLiteral_value"] = booleanLiteral_value;
+    }
+    if (kind == idl.LinkedNodeKind.hideCombinator) {
+      if (names.isNotEmpty) _result["names"] = names;
+    }
+    if (kind == idl.LinkedNodeKind.showCombinator) {
+      if (names.isNotEmpty) _result["names"] = names;
+    }
     if (kind == idl.LinkedNodeKind.symbolLiteral) {
-      if (symbolLiteral_poundSign != 0)
-        _result["symbolLiteral_poundSign"] = symbolLiteral_poundSign;
       if (names.isNotEmpty) _result["names"] = names;
       if (expression_type != null)
         _result["expression_type"] = expression_type.toJson();
     }
+    if (kind == idl.LinkedNodeKind.doubleLiteral) {
+      if (doubleLiteral_value != 0.0)
+        _result["doubleLiteral_value"] = doubleLiteral_value.isFinite
+            ? doubleLiteral_value
+            : doubleLiteral_value.toString();
+    }
+    if (kind == idl.LinkedNodeKind.rethrowExpression) {
+      if (expression_type != null)
+        _result["expression_type"] = expression_type.toJson();
+    }
+    if (kind == idl.LinkedNodeKind.superExpression) {
+      if (expression_type != null)
+        _result["expression_type"] = expression_type.toJson();
+    }
     if (kind == idl.LinkedNodeKind.thisExpression) {
-      if (thisExpression_thisKeyword != 0)
-        _result["thisExpression_thisKeyword"] = thisExpression_thisKeyword;
       if (expression_type != null)
         _result["expression_type"] = expression_type.toJson();
     }
@@ -16739,25 +12809,9 @@
       if (integerLiteral_value != 0)
         _result["integerLiteral_value"] = integerLiteral_value;
     }
-    if (kind == idl.LinkedNodeKind.hideCombinator) {
-      if (combinator_keyword != 0)
-        _result["combinator_keyword"] = combinator_keyword;
-      if (names.isNotEmpty) _result["names"] = names;
-    }
-    if (kind == idl.LinkedNodeKind.showCombinator) {
-      if (combinator_keyword != 0)
-        _result["combinator_keyword"] = combinator_keyword;
-      if (names.isNotEmpty) _result["names"] = names;
-    }
-    if (kind == idl.LinkedNodeKind.booleanLiteral) {
-      if (booleanLiteral_value != false)
-        _result["booleanLiteral_value"] = booleanLiteral_value;
-    }
-    if (kind == idl.LinkedNodeKind.doubleLiteral) {
-      if (doubleLiteral_value != 0.0)
-        _result["doubleLiteral_value"] = doubleLiteral_value.isFinite
-            ? doubleLiteral_value
-            : doubleLiteral_value.toString();
+    if (kind == idl.LinkedNodeKind.interpolationString) {
+      if (interpolationString_value != '')
+        _result["interpolationString_value"] = interpolationString_value;
     }
     if (kind == idl.LinkedNodeKind.simpleStringLiteral) {
       if (simpleStringLiteral_value != '')
@@ -16776,11 +12830,10 @@
         "functionDeclaration_functionExpression":
             functionDeclaration_functionExpression,
         "functionDeclaration_returnType": functionDeclaration_returnType,
-        "nameOffset": nameOffset,
         "codeLength": codeLength,
         "codeOffset": codeOffset,
         "flags": flags,
-        "isSynthetic": isSynthetic,
+        "nameOffset": nameOffset,
         "kind": kind,
         "name": name,
       };
@@ -16792,10 +12845,7 @@
         "functionExpression_formalParameters":
             functionExpression_formalParameters,
         "functionExpression_typeParameters": functionExpression_typeParameters,
-        "executable_isAsynchronous": executable_isAsynchronous,
-        "executable_isGenerator": executable_isGenerator,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -16809,14 +12859,11 @@
             functionTypeAlias_formalParameters,
         "functionTypeAlias_returnType": functionTypeAlias_returnType,
         "functionTypeAlias_typeParameters": functionTypeAlias_typeParameters,
-        "nameOffset": nameOffset,
-        "typeAlias_typedefKeyword": typeAlias_typedefKeyword,
-        "typeAlias_semicolon": typeAlias_semicolon,
         "typeAlias_hasSelfReference": typeAlias_hasSelfReference,
         "codeLength": codeLength,
         "codeOffset": codeOffset,
         "flags": flags,
-        "isSynthetic": isSynthetic,
+        "nameOffset": nameOffset,
         "kind": kind,
         "name": name,
         "simplyBoundable_isSimplyBounded": simplyBoundable_isSimplyBounded,
@@ -16827,16 +12874,12 @@
         "actualReturnType": actualReturnType,
         "genericFunctionType_typeParameters":
             genericFunctionType_typeParameters,
-        "genericFunctionType_functionKeyword":
-            genericFunctionType_functionKeyword,
         "genericFunctionType_returnType": genericFunctionType_returnType,
         "genericFunctionType_id": genericFunctionType_id,
         "genericFunctionType_formalParameters":
             genericFunctionType_formalParameters,
-        "genericFunctionType_question": genericFunctionType_question,
         "genericFunctionType_type": genericFunctionType_type,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -16849,17 +12892,12 @@
         "methodDeclaration_body": methodDeclaration_body,
         "methodDeclaration_formalParameters":
             methodDeclaration_formalParameters,
-        "methodDeclaration_operatorKeyword": methodDeclaration_operatorKeyword,
         "methodDeclaration_returnType": methodDeclaration_returnType,
-        "nameOffset": nameOffset,
-        "methodDeclaration_actualProperty": methodDeclaration_actualProperty,
-        "executable_isAsynchronous": executable_isAsynchronous,
         "methodDeclaration_typeParameters": methodDeclaration_typeParameters,
         "codeLength": codeLength,
         "codeOffset": codeOffset,
-        "executable_isGenerator": executable_isGenerator,
         "flags": flags,
-        "isSynthetic": isSynthetic,
+        "nameOffset": nameOffset,
         "kind": kind,
         "name": name,
       };
@@ -16871,18 +12909,14 @@
         "fieldFormalParameter_type": fieldFormalParameter_type,
         "fieldFormalParameter_typeParameters":
             fieldFormalParameter_typeParameters,
-        "fieldFormalParameter_thisKeyword": fieldFormalParameter_thisKeyword,
         "fieldFormalParameter_formalParameters":
             fieldFormalParameter_formalParameters,
-        "nameOffset": nameOffset,
-        "normalFormalParameter_requiredKeyword":
-            normalFormalParameter_requiredKeyword,
         "inheritsCovariant": inheritsCovariant,
         "codeLength": codeLength,
         "codeOffset": codeOffset,
         "flags": flags,
+        "nameOffset": nameOffset,
         "normalFormalParameter_comment": normalFormalParameter_comment,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -16897,15 +12931,12 @@
             functionTypedFormalParameter_returnType,
         "functionTypedFormalParameter_typeParameters":
             functionTypedFormalParameter_typeParameters,
-        "nameOffset": nameOffset,
-        "normalFormalParameter_requiredKeyword":
-            normalFormalParameter_requiredKeyword,
         "inheritsCovariant": inheritsCovariant,
         "codeLength": codeLength,
         "codeOffset": codeOffset,
         "flags": flags,
+        "nameOffset": nameOffset,
         "normalFormalParameter_comment": normalFormalParameter_comment,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -16915,15 +12946,12 @@
         "actualType": actualType,
         "normalFormalParameter_metadata": normalFormalParameter_metadata,
         "simpleFormalParameter_type": simpleFormalParameter_type,
-        "nameOffset": nameOffset,
-        "normalFormalParameter_requiredKeyword":
-            normalFormalParameter_requiredKeyword,
         "inheritsCovariant": inheritsCovariant,
         "codeLength": codeLength,
         "codeOffset": codeOffset,
         "flags": flags,
+        "nameOffset": nameOffset,
         "normalFormalParameter_comment": normalFormalParameter_comment,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
         "topLevelTypeInferenceError": topLevelTypeInferenceError,
@@ -16935,13 +12963,11 @@
         "annotatedNode_comment": annotatedNode_comment,
         "annotatedNode_metadata": annotatedNode_metadata,
         "variableDeclaration_initializer": variableDeclaration_initializer,
-        "variableDeclaration_equals": variableDeclaration_equals,
-        "nameOffset": nameOffset,
         "inheritsCovariant": inheritsCovariant,
         "codeLength": codeLength,
         "codeOffset": codeOffset,
         "flags": flags,
-        "isSynthetic": isSynthetic,
+        "nameOffset": nameOffset,
         "kind": kind,
         "name": name,
         "topLevelTypeInferenceError": topLevelTypeInferenceError,
@@ -16952,13 +12978,12 @@
       return {
         "binaryExpression_invokeType": binaryExpression_invokeType,
         "binaryExpression_leftOperand": binaryExpression_leftOperand,
-        "binaryExpression_element": binaryExpression_element,
         "binaryExpression_rightOperand": binaryExpression_rightOperand,
         "binaryExpression_elementType": binaryExpression_elementType,
+        "binaryExpression_element": binaryExpression_element,
         "binaryExpression_operator": binaryExpression_operator,
         "expression_type": expression_type,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -16973,7 +12998,6 @@
         "expression_type": expression_type,
         "flags": flags,
         "invocationExpression_arguments": invocationExpression_arguments,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -16982,14 +13006,12 @@
       return {
         "invocationExpression_invokeType": invocationExpression_invokeType,
         "methodInvocation_methodName": methodInvocation_methodName,
-        "methodInvocation_operator": methodInvocation_operator,
         "methodInvocation_target": methodInvocation_target,
         "invocationExpression_typeArguments":
             invocationExpression_typeArguments,
         "expression_type": expression_type,
         "flags": flags,
         "invocationExpression_arguments": invocationExpression_arguments,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -16998,7 +13020,6 @@
       return {
         "adjacentStrings_strings": adjacentStrings_strings,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -17006,10 +13027,7 @@
     if (kind == idl.LinkedNodeKind.argumentList) {
       return {
         "argumentList_arguments": argumentList_arguments,
-        "argumentList_leftParenthesis": argumentList_leftParenthesis,
-        "argumentList_rightParenthesis": argumentList_rightParenthesis,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -17017,10 +13035,7 @@
     if (kind == idl.LinkedNodeKind.block) {
       return {
         "block_statements": block_statements,
-        "block_leftBracket": block_leftBracket,
-        "block_rightBracket": block_rightBracket,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -17031,7 +13046,6 @@
         "cascadeExpression_target": cascadeExpression_target,
         "expression_type": expression_type,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -17042,7 +13056,6 @@
         "comment_tokens": comment_tokens,
         "comment_type": comment_type,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -17051,13 +13064,10 @@
       return {
         "compilationUnit_declarations": compilationUnit_declarations,
         "compilationUnit_scriptTag": compilationUnit_scriptTag,
-        "compilationUnit_beginToken": compilationUnit_beginToken,
-        "compilationUnit_endToken": compilationUnit_endToken,
         "codeLength": codeLength,
         "codeOffset": codeOffset,
         "compilationUnit_directives": compilationUnit_directives,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -17070,18 +13080,13 @@
         "annotatedNode_metadata": annotatedNode_metadata,
         "constructorDeclaration_body": constructorDeclaration_body,
         "constructorDeclaration_parameters": constructorDeclaration_parameters,
-        "nameOffset": nameOffset,
-        "constructorDeclaration_period": constructorDeclaration_period,
-        "constructorDeclaration_separator": constructorDeclaration_separator,
-        "executable_isAsynchronous": executable_isAsynchronous,
         "constructorDeclaration_redirectedConstructor":
             constructorDeclaration_redirectedConstructor,
         "codeLength": codeLength,
         "codeOffset": codeOffset,
         "constructorDeclaration_returnType": constructorDeclaration_returnType,
-        "executable_isGenerator": executable_isGenerator,
         "flags": flags,
-        "isSynthetic": isSynthetic,
+        "nameOffset": nameOffset,
         "kind": kind,
         "name": name,
       };
@@ -17090,7 +13095,6 @@
       return {
         "dottedName_components": dottedName_components,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -17100,11 +13104,10 @@
         "enumDeclaration_constants": enumDeclaration_constants,
         "annotatedNode_comment": annotatedNode_comment,
         "annotatedNode_metadata": annotatedNode_metadata,
-        "nameOffset": nameOffset,
         "codeLength": codeLength,
         "codeOffset": codeOffset,
         "flags": flags,
-        "isSynthetic": isSynthetic,
+        "nameOffset": nameOffset,
         "kind": kind,
         "name": name,
       };
@@ -17112,15 +13115,7 @@
     if (kind == idl.LinkedNodeKind.formalParameterList) {
       return {
         "formalParameterList_parameters": formalParameterList_parameters,
-        "formalParameterList_leftDelimiter": formalParameterList_leftDelimiter,
-        "formalParameterList_rightDelimiter":
-            formalParameterList_rightDelimiter,
-        "formalParameterList_leftParenthesis":
-            formalParameterList_leftParenthesis,
-        "formalParameterList_rightParenthesis":
-            formalParameterList_rightParenthesis,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -17128,819 +13123,7 @@
     if (kind == idl.LinkedNodeKind.implementsClause) {
       return {
         "implementsClause_interfaces": implementsClause_interfaces,
-        "implementsClause_implementsKeyword":
-            implementsClause_implementsKeyword,
         "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.labeledStatement) {
-      return {
-        "labeledStatement_labels": labeledStatement_labels,
-        "labeledStatement_statement": labeledStatement_statement,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.libraryIdentifier) {
-      return {
-        "libraryIdentifier_components": libraryIdentifier_components,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.listLiteral) {
-      return {
-        "listLiteral_elements": listLiteral_elements,
-        "listLiteral_leftBracket": listLiteral_leftBracket,
-        "listLiteral_rightBracket": listLiteral_rightBracket,
-        "expression_type": expression_type,
-        "flags": flags,
-        "typedLiteral_typeArguments": typedLiteral_typeArguments,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.exportDirective) {
-      return {
-        "namespaceDirective_combinators": namespaceDirective_combinators,
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "nameOffset": nameOffset,
-        "directive_keyword": directive_keyword,
-        "uriBasedDirective_uriElement": uriBasedDirective_uriElement,
-        "directive_semicolon": directive_semicolon,
-        "namespaceDirective_configurations": namespaceDirective_configurations,
-        "flags": flags,
-        "uriBasedDirective_uri": uriBasedDirective_uri,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-        "namespaceDirective_selectedUri": namespaceDirective_selectedUri,
-        "uriBasedDirective_uriContent": uriBasedDirective_uriContent,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.importDirective) {
-      return {
-        "namespaceDirective_combinators": namespaceDirective_combinators,
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "importDirective_prefixOffset": importDirective_prefixOffset,
-        "nameOffset": nameOffset,
-        "directive_keyword": directive_keyword,
-        "uriBasedDirective_uriElement": uriBasedDirective_uriElement,
-        "directive_semicolon": directive_semicolon,
-        "namespaceDirective_configurations": namespaceDirective_configurations,
-        "flags": flags,
-        "importDirective_prefix": importDirective_prefix,
-        "uriBasedDirective_uri": uriBasedDirective_uri,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-        "namespaceDirective_selectedUri": namespaceDirective_selectedUri,
-        "uriBasedDirective_uriContent": uriBasedDirective_uriContent,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.onClause) {
-      return {
-        "onClause_superclassConstraints": onClause_superclassConstraints,
-        "onClause_onKeyword": onClause_onKeyword,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.setOrMapLiteral) {
-      return {
-        "setOrMapLiteral_elements": setOrMapLiteral_elements,
-        "setOrMapLiteral_leftBracket": setOrMapLiteral_leftBracket,
-        "setOrMapLiteral_rightBracket": setOrMapLiteral_rightBracket,
-        "setOrMapLiteral_isMap": setOrMapLiteral_isMap,
-        "expression_type": expression_type,
-        "flags": flags,
-        "typedLiteral_typeArguments": typedLiteral_typeArguments,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-        "setOrMapLiteral_isSet": setOrMapLiteral_isSet,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.stringInterpolation) {
-      return {
-        "stringInterpolation_elements": stringInterpolation_elements,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.switchStatement) {
-      return {
-        "switchStatement_members": switchStatement_members,
-        "switchStatement_leftParenthesis": switchStatement_leftParenthesis,
-        "switchStatement_expression": switchStatement_expression,
-        "switchStatement_switchKeyword": switchStatement_switchKeyword,
-        "switchStatement_rightParenthesis": switchStatement_rightParenthesis,
-        "switchStatement_leftBracket": switchStatement_leftBracket,
-        "switchStatement_rightBracket": switchStatement_rightBracket,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.tryStatement) {
-      return {
-        "tryStatement_catchClauses": tryStatement_catchClauses,
-        "tryStatement_body": tryStatement_body,
-        "tryStatement_finallyKeyword": tryStatement_finallyKeyword,
-        "tryStatement_finallyBlock": tryStatement_finallyBlock,
-        "tryStatement_tryKeyword": tryStatement_tryKeyword,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.typeArgumentList) {
-      return {
-        "typeArgumentList_arguments": typeArgumentList_arguments,
-        "typeArgumentList_leftBracket": typeArgumentList_leftBracket,
-        "typeArgumentList_rightBracket": typeArgumentList_rightBracket,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.typeParameterList) {
-      return {
-        "typeParameterList_typeParameters": typeParameterList_typeParameters,
-        "typeParameterList_leftBracket": typeParameterList_leftBracket,
-        "typeParameterList_rightBracket": typeParameterList_rightBracket,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.variableDeclarationList) {
-      return {
-        "variableDeclarationList_variables": variableDeclarationList_variables,
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "variableDeclarationList_type": variableDeclarationList_type,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.withClause) {
-      return {
-        "withClause_mixinTypes": withClause_mixinTypes,
-        "withClause_withKeyword": withClause_withKeyword,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.classDeclaration) {
-      return {
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "classDeclaration_extendsClause": classDeclaration_extendsClause,
-        "classDeclaration_withClause": classDeclaration_withClause,
-        "classDeclaration_nativeClause": classDeclaration_nativeClause,
-        "nameOffset": nameOffset,
-        "classOrMixinDeclaration_rightBracket":
-            classOrMixinDeclaration_rightBracket,
-        "classOrMixinDeclaration_leftBracket":
-            classOrMixinDeclaration_leftBracket,
-        "classDeclaration_isDartObject": classDeclaration_isDartObject,
-        "classOrMixinDeclaration_implementsClause":
-            classOrMixinDeclaration_implementsClause,
-        "classOrMixinDeclaration_members": classOrMixinDeclaration_members,
-        "classOrMixinDeclaration_typeParameters":
-            classOrMixinDeclaration_typeParameters,
-        "codeLength": codeLength,
-        "codeOffset": codeOffset,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-        "simplyBoundable_isSimplyBounded": simplyBoundable_isSimplyBounded,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.classTypeAlias) {
-      return {
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "classTypeAlias_typeParameters": classTypeAlias_typeParameters,
-        "classTypeAlias_superclass": classTypeAlias_superclass,
-        "classTypeAlias_withClause": classTypeAlias_withClause,
-        "nameOffset": nameOffset,
-        "typeAlias_typedefKeyword": typeAlias_typedefKeyword,
-        "typeAlias_semicolon": typeAlias_semicolon,
-        "classTypeAlias_implementsClause": classTypeAlias_implementsClause,
-        "codeLength": codeLength,
-        "codeOffset": codeOffset,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-        "simplyBoundable_isSimplyBounded": simplyBoundable_isSimplyBounded,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.declaredIdentifier) {
-      return {
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "declaredIdentifier_identifier": declaredIdentifier_identifier,
-        "declaredIdentifier_keyword": declaredIdentifier_keyword,
-        "declaredIdentifier_type": declaredIdentifier_type,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.enumConstantDeclaration) {
-      return {
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "nameOffset": nameOffset,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.fieldDeclaration) {
-      return {
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "fieldDeclaration_fields": fieldDeclaration_fields,
-        "fieldDeclaration_semicolon": fieldDeclaration_semicolon,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.genericTypeAlias) {
-      return {
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "genericTypeAlias_typeParameters": genericTypeAlias_typeParameters,
-        "genericTypeAlias_functionType": genericTypeAlias_functionType,
-        "nameOffset": nameOffset,
-        "typeAlias_typedefKeyword": typeAlias_typedefKeyword,
-        "typeAlias_semicolon": typeAlias_semicolon,
-        "typeAlias_hasSelfReference": typeAlias_hasSelfReference,
-        "codeLength": codeLength,
-        "codeOffset": codeOffset,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-        "simplyBoundable_isSimplyBounded": simplyBoundable_isSimplyBounded,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.libraryDirective) {
-      return {
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "libraryDirective_name": libraryDirective_name,
-        "directive_keyword": directive_keyword,
-        "directive_semicolon": directive_semicolon,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.mixinDeclaration) {
-      return {
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "mixinDeclaration_onClause": mixinDeclaration_onClause,
-        "mixinDeclaration_mixinKeyword": mixinDeclaration_mixinKeyword,
-        "nameOffset": nameOffset,
-        "classOrMixinDeclaration_rightBracket":
-            classOrMixinDeclaration_rightBracket,
-        "classOrMixinDeclaration_leftBracket":
-            classOrMixinDeclaration_leftBracket,
-        "classOrMixinDeclaration_implementsClause":
-            classOrMixinDeclaration_implementsClause,
-        "classOrMixinDeclaration_members": classOrMixinDeclaration_members,
-        "classOrMixinDeclaration_typeParameters":
-            classOrMixinDeclaration_typeParameters,
-        "codeLength": codeLength,
-        "codeOffset": codeOffset,
-        "mixinDeclaration_superInvokedNames":
-            mixinDeclaration_superInvokedNames,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-        "simplyBoundable_isSimplyBounded": simplyBoundable_isSimplyBounded,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.partDirective) {
-      return {
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "nameOffset": nameOffset,
-        "directive_keyword": directive_keyword,
-        "uriBasedDirective_uriElement": uriBasedDirective_uriElement,
-        "directive_semicolon": directive_semicolon,
-        "flags": flags,
-        "uriBasedDirective_uri": uriBasedDirective_uri,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-        "uriBasedDirective_uriContent": uriBasedDirective_uriContent,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.partOfDirective) {
-      return {
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "partOfDirective_libraryName": partOfDirective_libraryName,
-        "partOfDirective_uri": partOfDirective_uri,
-        "partOfDirective_ofKeyword": partOfDirective_ofKeyword,
-        "directive_keyword": directive_keyword,
-        "directive_semicolon": directive_semicolon,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.topLevelVariableDeclaration) {
-      return {
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "topLevelVariableDeclaration_variableList":
-            topLevelVariableDeclaration_variableList,
-        "topLevelVariableDeclaration_semicolon":
-            topLevelVariableDeclaration_semicolon,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.typeParameter) {
-      return {
-        "annotatedNode_comment": annotatedNode_comment,
-        "annotatedNode_metadata": annotatedNode_metadata,
-        "typeParameter_bound": typeParameter_bound,
-        "typeParameter_extendsKeyword": typeParameter_extendsKeyword,
-        "typeParameter_defaultType": typeParameter_defaultType,
-        "nameOffset": nameOffset,
-        "codeLength": codeLength,
-        "codeOffset": codeOffset,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.switchCase) {
-      return {
-        "switchMember_statements": switchMember_statements,
-        "switchCase_expression": switchCase_expression,
-        "switchMember_keyword": switchMember_keyword,
-        "switchMember_colon": switchMember_colon,
-        "switchMember_labels": switchMember_labels,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.switchDefault) {
-      return {
-        "switchMember_statements": switchMember_statements,
-        "switchMember_keyword": switchMember_keyword,
-        "switchMember_colon": switchMember_colon,
-        "switchMember_labels": switchMember_labels,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.annotation) {
-      return {
-        "annotation_arguments": annotation_arguments,
-        "annotation_atSign": annotation_atSign,
-        "annotation_constructorName": annotation_constructorName,
-        "annotation_element": annotation_element,
-        "annotation_elementType": annotation_elementType,
-        "annotation_name": annotation_name,
-        "annotation_period": annotation_period,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.asExpression) {
-      return {
-        "asExpression_expression": asExpression_expression,
-        "asExpression_asOperator": asExpression_asOperator,
-        "asExpression_type": asExpression_type,
-        "expression_type": expression_type,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.assertInitializer) {
-      return {
-        "assertInitializer_condition": assertInitializer_condition,
-        "assertInitializer_assertKeyword": assertInitializer_assertKeyword,
-        "assertInitializer_message": assertInitializer_message,
-        "assertInitializer_leftParenthesis": assertInitializer_leftParenthesis,
-        "assertInitializer_comma": assertInitializer_comma,
-        "assertInitializer_rightParenthesis":
-            assertInitializer_rightParenthesis,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.assertStatement) {
-      return {
-        "assertStatement_condition": assertStatement_condition,
-        "assertStatement_assertKeyword": assertStatement_assertKeyword,
-        "assertStatement_message": assertStatement_message,
-        "assertStatement_leftParenthesis": assertStatement_leftParenthesis,
-        "assertStatement_comma": assertStatement_comma,
-        "assertStatement_rightParenthesis": assertStatement_rightParenthesis,
-        "assertStatement_semicolon": assertStatement_semicolon,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.assignmentExpression) {
-      return {
-        "assignmentExpression_leftHandSide": assignmentExpression_leftHandSide,
-        "assignmentExpression_element": assignmentExpression_element,
-        "assignmentExpression_rightHandSide":
-            assignmentExpression_rightHandSide,
-        "assignmentExpression_elementType": assignmentExpression_elementType,
-        "assignmentExpression_operator": assignmentExpression_operator,
-        "expression_type": expression_type,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.awaitExpression) {
-      return {
-        "awaitExpression_expression": awaitExpression_expression,
-        "awaitExpression_awaitKeyword": awaitExpression_awaitKeyword,
-        "expression_type": expression_type,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.blockFunctionBody) {
-      return {
-        "blockFunctionBody_block": blockFunctionBody_block,
-        "blockFunctionBody_keyword": blockFunctionBody_keyword,
-        "blockFunctionBody_star": blockFunctionBody_star,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.breakStatement) {
-      return {
-        "breakStatement_label": breakStatement_label,
-        "breakStatement_breakKeyword": breakStatement_breakKeyword,
-        "breakStatement_semicolon": breakStatement_semicolon,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.catchClause) {
-      return {
-        "catchClause_body": catchClause_body,
-        "catchClause_catchKeyword": catchClause_catchKeyword,
-        "catchClause_exceptionParameter": catchClause_exceptionParameter,
-        "catchClause_leftParenthesis": catchClause_leftParenthesis,
-        "catchClause_exceptionType": catchClause_exceptionType,
-        "catchClause_comma": catchClause_comma,
-        "catchClause_onKeyword": catchClause_onKeyword,
-        "catchClause_rightParenthesis": catchClause_rightParenthesis,
-        "catchClause_stackTraceParameter": catchClause_stackTraceParameter,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.commentReference) {
-      return {
-        "commentReference_identifier": commentReference_identifier,
-        "commentReference_newKeyword": commentReference_newKeyword,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.conditionalExpression) {
-      return {
-        "conditionalExpression_condition": conditionalExpression_condition,
-        "conditionalExpression_colon": conditionalExpression_colon,
-        "conditionalExpression_elseExpression":
-            conditionalExpression_elseExpression,
-        "conditionalExpression_thenExpression":
-            conditionalExpression_thenExpression,
-        "conditionalExpression_question": conditionalExpression_question,
-        "expression_type": expression_type,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.configuration) {
-      return {
-        "configuration_name": configuration_name,
-        "configuration_ifKeyword": configuration_ifKeyword,
-        "configuration_value": configuration_value,
-        "configuration_rightParenthesis": configuration_rightParenthesis,
-        "configuration_uri": configuration_uri,
-        "configuration_leftParenthesis": configuration_leftParenthesis,
-        "configuration_equalToken": configuration_equalToken,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.constructorFieldInitializer) {
-      return {
-        "constructorFieldInitializer_expression":
-            constructorFieldInitializer_expression,
-        "constructorFieldInitializer_equals":
-            constructorFieldInitializer_equals,
-        "constructorFieldInitializer_fieldName":
-            constructorFieldInitializer_fieldName,
-        "constructorFieldInitializer_thisKeyword":
-            constructorFieldInitializer_thisKeyword,
-        "constructorFieldInitializer_period":
-            constructorFieldInitializer_period,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.constructorName) {
-      return {
-        "constructorName_name": constructorName_name,
-        "constructorName_element": constructorName_element,
-        "constructorName_type": constructorName_type,
-        "constructorName_elementType": constructorName_elementType,
-        "constructorName_period": constructorName_period,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.continueStatement) {
-      return {
-        "continueStatement_label": continueStatement_label,
-        "continueStatement_continueKeyword": continueStatement_continueKeyword,
-        "continueStatement_semicolon": continueStatement_semicolon,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.defaultFormalParameter) {
-      return {
-        "defaultFormalParameter_defaultValue":
-            defaultFormalParameter_defaultValue,
-        "defaultFormalParameter_separator": defaultFormalParameter_separator,
-        "defaultFormalParameter_parameter": defaultFormalParameter_parameter,
-        "codeLength": codeLength,
-        "codeOffset": codeOffset,
-        "defaultFormalParameter_kind": defaultFormalParameter_kind,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.doStatement) {
-      return {
-        "doStatement_body": doStatement_body,
-        "doStatement_leftParenthesis": doStatement_leftParenthesis,
-        "doStatement_condition": doStatement_condition,
-        "doStatement_doKeyword": doStatement_doKeyword,
-        "doStatement_rightParenthesis": doStatement_rightParenthesis,
-        "doStatement_semicolon": doStatement_semicolon,
-        "doStatement_whileKeyword": doStatement_whileKeyword,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.expressionFunctionBody) {
-      return {
-        "expressionFunctionBody_expression": expressionFunctionBody_expression,
-        "expressionFunctionBody_arrow": expressionFunctionBody_arrow,
-        "expressionFunctionBody_semicolon": expressionFunctionBody_semicolon,
-        "expressionFunctionBody_keyword": expressionFunctionBody_keyword,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.expressionStatement) {
-      return {
-        "expressionStatement_expression": expressionStatement_expression,
-        "expressionStatement_semicolon": expressionStatement_semicolon,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.extendsClause) {
-      return {
-        "extendsClause_superclass": extendsClause_superclass,
-        "extendsClause_extendsKeyword": extendsClause_extendsKeyword,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.forEachPartsWithDeclaration) {
-      return {
-        "forEachParts_iterable": forEachParts_iterable,
-        "forEachParts_inKeyword": forEachParts_inKeyword,
-        "forEachPartsWithDeclaration_loopVariable":
-            forEachPartsWithDeclaration_loopVariable,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.forEachPartsWithIdentifier) {
-      return {
-        "forEachParts_iterable": forEachParts_iterable,
-        "forEachParts_inKeyword": forEachParts_inKeyword,
-        "forEachPartsWithIdentifier_identifier":
-            forEachPartsWithIdentifier_identifier,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.forElement) {
-      return {
-        "forMixin_forLoopParts": forMixin_forLoopParts,
-        "forMixin_awaitKeyword": forMixin_awaitKeyword,
-        "forElement_body": forElement_body,
-        "forMixin_leftParenthesis": forMixin_leftParenthesis,
-        "forMixin_forKeyword": forMixin_forKeyword,
-        "forMixin_rightParenthesis": forMixin_rightParenthesis,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.forStatement) {
-      return {
-        "forMixin_forLoopParts": forMixin_forLoopParts,
-        "forMixin_awaitKeyword": forMixin_awaitKeyword,
-        "forStatement_body": forStatement_body,
-        "forMixin_leftParenthesis": forMixin_leftParenthesis,
-        "forMixin_forKeyword": forMixin_forKeyword,
-        "forMixin_rightParenthesis": forMixin_rightParenthesis,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.forPartsWithDeclarations) {
-      return {
-        "forParts_condition": forParts_condition,
-        "forParts_leftSeparator": forParts_leftSeparator,
-        "forPartsWithDeclarations_variables":
-            forPartsWithDeclarations_variables,
-        "forParts_rightSeparator": forParts_rightSeparator,
-        "forParts_updaters": forParts_updaters,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.forPartsWithExpression) {
-      return {
-        "forParts_condition": forParts_condition,
-        "forParts_leftSeparator": forParts_leftSeparator,
-        "forPartsWithExpression_initialization":
-            forPartsWithExpression_initialization,
-        "forParts_rightSeparator": forParts_rightSeparator,
-        "forParts_updaters": forParts_updaters,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.functionDeclarationStatement) {
-      return {
-        "functionDeclarationStatement_functionDeclaration":
-            functionDeclarationStatement_functionDeclaration,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.ifElement) {
-      return {
-        "ifMixin_condition": ifMixin_condition,
-        "ifMixin_elseKeyword": ifMixin_elseKeyword,
-        "ifMixin_leftParenthesis": ifMixin_leftParenthesis,
-        "ifElement_thenElement": ifElement_thenElement,
-        "ifMixin_ifKeyword": ifMixin_ifKeyword,
-        "ifMixin_rightParenthesis": ifMixin_rightParenthesis,
-        "ifElement_elseElement": ifElement_elseElement,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.ifStatement) {
-      return {
-        "ifMixin_condition": ifMixin_condition,
-        "ifMixin_elseKeyword": ifMixin_elseKeyword,
-        "ifStatement_elseStatement": ifStatement_elseStatement,
-        "ifMixin_leftParenthesis": ifMixin_leftParenthesis,
-        "ifStatement_thenStatement": ifStatement_thenStatement,
-        "ifMixin_ifKeyword": ifMixin_ifKeyword,
-        "ifMixin_rightParenthesis": ifMixin_rightParenthesis,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.indexExpression) {
-      return {
-        "indexExpression_index": indexExpression_index,
-        "indexExpression_element": indexExpression_element,
-        "indexExpression_target": indexExpression_target,
-        "indexExpression_leftBracket": indexExpression_leftBracket,
-        "indexExpression_elementType": indexExpression_elementType,
-        "indexExpression_period": indexExpression_period,
-        "indexExpression_rightBracket": indexExpression_rightBracket,
-        "expression_type": expression_type,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -17955,7 +13138,640 @@
             instanceCreationExpression_typeArguments,
         "expression_type": expression_type,
         "flags": flags,
-        "isSynthetic": isSynthetic,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.labeledStatement) {
+      return {
+        "labeledStatement_labels": labeledStatement_labels,
+        "labeledStatement_statement": labeledStatement_statement,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.libraryIdentifier) {
+      return {
+        "libraryIdentifier_components": libraryIdentifier_components,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.exportDirective) {
+      return {
+        "namespaceDirective_combinators": namespaceDirective_combinators,
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "namespaceDirective_configurations": namespaceDirective_configurations,
+        "flags": flags,
+        "nameOffset": nameOffset,
+        "uriBasedDirective_uri": uriBasedDirective_uri,
+        "kind": kind,
+        "name": name,
+        "namespaceDirective_selectedUri": namespaceDirective_selectedUri,
+        "uriBasedDirective_uriContent": uriBasedDirective_uriContent,
+        "uriBasedDirective_uriElement": uriBasedDirective_uriElement,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.importDirective) {
+      return {
+        "namespaceDirective_combinators": namespaceDirective_combinators,
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "importDirective_prefixOffset": importDirective_prefixOffset,
+        "namespaceDirective_configurations": namespaceDirective_configurations,
+        "flags": flags,
+        "importDirective_prefix": importDirective_prefix,
+        "nameOffset": nameOffset,
+        "uriBasedDirective_uri": uriBasedDirective_uri,
+        "kind": kind,
+        "name": name,
+        "namespaceDirective_selectedUri": namespaceDirective_selectedUri,
+        "uriBasedDirective_uriContent": uriBasedDirective_uriContent,
+        "uriBasedDirective_uriElement": uriBasedDirective_uriElement,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.onClause) {
+      return {
+        "onClause_superclassConstraints": onClause_superclassConstraints,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.stringInterpolation) {
+      return {
+        "stringInterpolation_elements": stringInterpolation_elements,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.switchStatement) {
+      return {
+        "switchStatement_members": switchStatement_members,
+        "switchStatement_expression": switchStatement_expression,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.tryStatement) {
+      return {
+        "tryStatement_catchClauses": tryStatement_catchClauses,
+        "tryStatement_body": tryStatement_body,
+        "tryStatement_finallyBlock": tryStatement_finallyBlock,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.typeArgumentList) {
+      return {
+        "typeArgumentList_arguments": typeArgumentList_arguments,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.listLiteral) {
+      return {
+        "typedLiteral_typeArguments": typedLiteral_typeArguments,
+        "listLiteral_elements": listLiteral_elements,
+        "expression_type": expression_type,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.setOrMapLiteral) {
+      return {
+        "typedLiteral_typeArguments": typedLiteral_typeArguments,
+        "setOrMapLiteral_elements": setOrMapLiteral_elements,
+        "expression_type": expression_type,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.typeName) {
+      return {
+        "typeName_typeArguments": typeName_typeArguments,
+        "typeName_name": typeName_name,
+        "typeName_type": typeName_type,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.typeParameterList) {
+      return {
+        "typeParameterList_typeParameters": typeParameterList_typeParameters,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.variableDeclarationList) {
+      return {
+        "variableDeclarationList_variables": variableDeclarationList_variables,
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "variableDeclarationList_type": variableDeclarationList_type,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.withClause) {
+      return {
+        "withClause_mixinTypes": withClause_mixinTypes,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.classDeclaration) {
+      return {
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "classDeclaration_extendsClause": classDeclaration_extendsClause,
+        "classDeclaration_withClause": classDeclaration_withClause,
+        "classDeclaration_nativeClause": classDeclaration_nativeClause,
+        "classDeclaration_isDartObject": classDeclaration_isDartObject,
+        "classOrMixinDeclaration_implementsClause":
+            classOrMixinDeclaration_implementsClause,
+        "classOrMixinDeclaration_members": classOrMixinDeclaration_members,
+        "classOrMixinDeclaration_typeParameters":
+            classOrMixinDeclaration_typeParameters,
+        "codeLength": codeLength,
+        "codeOffset": codeOffset,
+        "flags": flags,
+        "nameOffset": nameOffset,
+        "kind": kind,
+        "name": name,
+        "simplyBoundable_isSimplyBounded": simplyBoundable_isSimplyBounded,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.classTypeAlias) {
+      return {
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "classTypeAlias_typeParameters": classTypeAlias_typeParameters,
+        "classTypeAlias_superclass": classTypeAlias_superclass,
+        "classTypeAlias_withClause": classTypeAlias_withClause,
+        "classTypeAlias_implementsClause": classTypeAlias_implementsClause,
+        "codeLength": codeLength,
+        "codeOffset": codeOffset,
+        "flags": flags,
+        "nameOffset": nameOffset,
+        "kind": kind,
+        "name": name,
+        "simplyBoundable_isSimplyBounded": simplyBoundable_isSimplyBounded,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.declaredIdentifier) {
+      return {
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "declaredIdentifier_identifier": declaredIdentifier_identifier,
+        "declaredIdentifier_type": declaredIdentifier_type,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.enumConstantDeclaration) {
+      return {
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "flags": flags,
+        "nameOffset": nameOffset,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.fieldDeclaration) {
+      return {
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "fieldDeclaration_fields": fieldDeclaration_fields,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.genericTypeAlias) {
+      return {
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "genericTypeAlias_typeParameters": genericTypeAlias_typeParameters,
+        "genericTypeAlias_functionType": genericTypeAlias_functionType,
+        "typeAlias_hasSelfReference": typeAlias_hasSelfReference,
+        "codeLength": codeLength,
+        "codeOffset": codeOffset,
+        "flags": flags,
+        "nameOffset": nameOffset,
+        "kind": kind,
+        "name": name,
+        "simplyBoundable_isSimplyBounded": simplyBoundable_isSimplyBounded,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.libraryDirective) {
+      return {
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "libraryDirective_name": libraryDirective_name,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.mixinDeclaration) {
+      return {
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "mixinDeclaration_onClause": mixinDeclaration_onClause,
+        "classOrMixinDeclaration_implementsClause":
+            classOrMixinDeclaration_implementsClause,
+        "classOrMixinDeclaration_members": classOrMixinDeclaration_members,
+        "classOrMixinDeclaration_typeParameters":
+            classOrMixinDeclaration_typeParameters,
+        "codeLength": codeLength,
+        "codeOffset": codeOffset,
+        "mixinDeclaration_superInvokedNames":
+            mixinDeclaration_superInvokedNames,
+        "flags": flags,
+        "nameOffset": nameOffset,
+        "kind": kind,
+        "name": name,
+        "simplyBoundable_isSimplyBounded": simplyBoundable_isSimplyBounded,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.partDirective) {
+      return {
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "flags": flags,
+        "nameOffset": nameOffset,
+        "uriBasedDirective_uri": uriBasedDirective_uri,
+        "kind": kind,
+        "name": name,
+        "uriBasedDirective_uriContent": uriBasedDirective_uriContent,
+        "uriBasedDirective_uriElement": uriBasedDirective_uriElement,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.partOfDirective) {
+      return {
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "partOfDirective_libraryName": partOfDirective_libraryName,
+        "partOfDirective_uri": partOfDirective_uri,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.topLevelVariableDeclaration) {
+      return {
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "topLevelVariableDeclaration_variableList":
+            topLevelVariableDeclaration_variableList,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.typeParameter) {
+      return {
+        "annotatedNode_comment": annotatedNode_comment,
+        "annotatedNode_metadata": annotatedNode_metadata,
+        "typeParameter_bound": typeParameter_bound,
+        "typeParameter_defaultType": typeParameter_defaultType,
+        "codeLength": codeLength,
+        "codeOffset": codeOffset,
+        "flags": flags,
+        "nameOffset": nameOffset,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.switchCase) {
+      return {
+        "switchMember_statements": switchMember_statements,
+        "switchCase_expression": switchCase_expression,
+        "switchMember_labels": switchMember_labels,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.switchDefault) {
+      return {
+        "switchMember_statements": switchMember_statements,
+        "switchMember_labels": switchMember_labels,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.annotation) {
+      return {
+        "annotation_arguments": annotation_arguments,
+        "annotation_constructorName": annotation_constructorName,
+        "annotation_element": annotation_element,
+        "annotation_elementType": annotation_elementType,
+        "annotation_name": annotation_name,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.asExpression) {
+      return {
+        "asExpression_expression": asExpression_expression,
+        "asExpression_type": asExpression_type,
+        "expression_type": expression_type,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.assertInitializer) {
+      return {
+        "assertInitializer_condition": assertInitializer_condition,
+        "assertInitializer_message": assertInitializer_message,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.assertStatement) {
+      return {
+        "assertStatement_condition": assertStatement_condition,
+        "assertStatement_message": assertStatement_message,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.assignmentExpression) {
+      return {
+        "assignmentExpression_leftHandSide": assignmentExpression_leftHandSide,
+        "assignmentExpression_rightHandSide":
+            assignmentExpression_rightHandSide,
+        "assignmentExpression_elementType": assignmentExpression_elementType,
+        "assignmentExpression_element": assignmentExpression_element,
+        "assignmentExpression_operator": assignmentExpression_operator,
+        "expression_type": expression_type,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.awaitExpression) {
+      return {
+        "awaitExpression_expression": awaitExpression_expression,
+        "expression_type": expression_type,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.blockFunctionBody) {
+      return {
+        "blockFunctionBody_block": blockFunctionBody_block,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.breakStatement) {
+      return {
+        "breakStatement_label": breakStatement_label,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.catchClause) {
+      return {
+        "catchClause_body": catchClause_body,
+        "catchClause_exceptionParameter": catchClause_exceptionParameter,
+        "catchClause_exceptionType": catchClause_exceptionType,
+        "catchClause_stackTraceParameter": catchClause_stackTraceParameter,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.commentReference) {
+      return {
+        "commentReference_identifier": commentReference_identifier,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.conditionalExpression) {
+      return {
+        "conditionalExpression_condition": conditionalExpression_condition,
+        "conditionalExpression_elseExpression":
+            conditionalExpression_elseExpression,
+        "conditionalExpression_thenExpression":
+            conditionalExpression_thenExpression,
+        "expression_type": expression_type,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.configuration) {
+      return {
+        "configuration_name": configuration_name,
+        "configuration_value": configuration_value,
+        "configuration_uri": configuration_uri,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.constructorFieldInitializer) {
+      return {
+        "constructorFieldInitializer_expression":
+            constructorFieldInitializer_expression,
+        "constructorFieldInitializer_fieldName":
+            constructorFieldInitializer_fieldName,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.constructorName) {
+      return {
+        "constructorName_name": constructorName_name,
+        "constructorName_type": constructorName_type,
+        "constructorName_elementType": constructorName_elementType,
+        "constructorName_element": constructorName_element,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.continueStatement) {
+      return {
+        "continueStatement_label": continueStatement_label,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.defaultFormalParameter) {
+      return {
+        "defaultFormalParameter_defaultValue":
+            defaultFormalParameter_defaultValue,
+        "defaultFormalParameter_parameter": defaultFormalParameter_parameter,
+        "codeLength": codeLength,
+        "codeOffset": codeOffset,
+        "defaultFormalParameter_kind": defaultFormalParameter_kind,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.doStatement) {
+      return {
+        "doStatement_body": doStatement_body,
+        "doStatement_condition": doStatement_condition,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.expressionFunctionBody) {
+      return {
+        "expressionFunctionBody_expression": expressionFunctionBody_expression,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.expressionStatement) {
+      return {
+        "expressionStatement_expression": expressionStatement_expression,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.extendsClause) {
+      return {
+        "extendsClause_superclass": extendsClause_superclass,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.forEachPartsWithDeclaration) {
+      return {
+        "forEachParts_iterable": forEachParts_iterable,
+        "forEachPartsWithDeclaration_loopVariable":
+            forEachPartsWithDeclaration_loopVariable,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.forEachPartsWithIdentifier) {
+      return {
+        "forEachParts_iterable": forEachParts_iterable,
+        "forEachPartsWithIdentifier_identifier":
+            forEachPartsWithIdentifier_identifier,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.forElement) {
+      return {
+        "forMixin_forLoopParts": forMixin_forLoopParts,
+        "forElement_body": forElement_body,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.forStatement) {
+      return {
+        "forMixin_forLoopParts": forMixin_forLoopParts,
+        "forStatement_body": forStatement_body,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.forPartsWithDeclarations) {
+      return {
+        "forParts_condition": forParts_condition,
+        "forPartsWithDeclarations_variables":
+            forPartsWithDeclarations_variables,
+        "forParts_updaters": forParts_updaters,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.forPartsWithExpression) {
+      return {
+        "forParts_condition": forParts_condition,
+        "forPartsWithExpression_initialization":
+            forPartsWithExpression_initialization,
+        "forParts_updaters": forParts_updaters,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.functionDeclarationStatement) {
+      return {
+        "functionDeclarationStatement_functionDeclaration":
+            functionDeclarationStatement_functionDeclaration,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.ifElement) {
+      return {
+        "ifMixin_condition": ifMixin_condition,
+        "ifElement_thenElement": ifElement_thenElement,
+        "ifElement_elseElement": ifElement_elseElement,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.ifStatement) {
+      return {
+        "ifMixin_condition": ifMixin_condition,
+        "ifStatement_elseStatement": ifStatement_elseStatement,
+        "ifStatement_thenStatement": ifStatement_thenStatement,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.indexExpression) {
+      return {
+        "indexExpression_index": indexExpression_index,
+        "indexExpression_target": indexExpression_target,
+        "indexExpression_elementType": indexExpression_elementType,
+        "indexExpression_element": indexExpression_element,
+        "expression_type": expression_type,
+        "flags": flags,
         "kind": kind,
         "name": name,
       };
@@ -17964,12 +13780,7 @@
       return {
         "interpolationExpression_expression":
             interpolationExpression_expression,
-        "interpolationExpression_leftBracket":
-            interpolationExpression_leftBracket,
-        "interpolationExpression_rightBracket":
-            interpolationExpression_rightBracket,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -17977,11 +13788,8 @@
     if (kind == idl.LinkedNodeKind.isExpression) {
       return {
         "isExpression_expression": isExpression_expression,
-        "isExpression_isOperator": isExpression_isOperator,
         "isExpression_type": isExpression_type,
-        "isExpression_notOperator": isExpression_notOperator,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -17989,9 +13797,7 @@
     if (kind == idl.LinkedNodeKind.label) {
       return {
         "label_label": label_label,
-        "label_colon": label_colon,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -17999,10 +13805,8 @@
     if (kind == idl.LinkedNodeKind.mapLiteralEntry) {
       return {
         "mapLiteralEntry_key": mapLiteralEntry_key,
-        "mapLiteralEntry_separator": mapLiteralEntry_separator,
         "mapLiteralEntry_value": mapLiteralEntry_value,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18012,7 +13816,6 @@
         "namedExpression_expression": namedExpression_expression,
         "namedExpression_name": namedExpression_name,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18020,9 +13823,7 @@
     if (kind == idl.LinkedNodeKind.nativeClause) {
       return {
         "nativeClause_name": nativeClause_name,
-        "nativeClause_nativeKeyword": nativeClause_nativeKeyword,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18030,10 +13831,7 @@
     if (kind == idl.LinkedNodeKind.nativeFunctionBody) {
       return {
         "nativeFunctionBody_stringLiteral": nativeFunctionBody_stringLiteral,
-        "nativeFunctionBody_nativeKeyword": nativeFunctionBody_nativeKeyword,
-        "nativeFunctionBody_semicolon": nativeFunctionBody_semicolon,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18042,13 +13840,8 @@
       return {
         "parenthesizedExpression_expression":
             parenthesizedExpression_expression,
-        "parenthesizedExpression_leftParenthesis":
-            parenthesizedExpression_leftParenthesis,
-        "parenthesizedExpression_rightParenthesis":
-            parenthesizedExpression_rightParenthesis,
         "expression_type": expression_type,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18056,12 +13849,11 @@
     if (kind == idl.LinkedNodeKind.postfixExpression) {
       return {
         "postfixExpression_operand": postfixExpression_operand,
-        "postfixExpression_element": postfixExpression_element,
         "postfixExpression_elementType": postfixExpression_elementType,
+        "postfixExpression_element": postfixExpression_element,
         "postfixExpression_operator": postfixExpression_operator,
         "expression_type": expression_type,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18069,11 +13861,9 @@
     if (kind == idl.LinkedNodeKind.prefixedIdentifier) {
       return {
         "prefixedIdentifier_identifier": prefixedIdentifier_identifier,
-        "prefixedIdentifier_period": prefixedIdentifier_period,
         "prefixedIdentifier_prefix": prefixedIdentifier_prefix,
         "expression_type": expression_type,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18081,12 +13871,11 @@
     if (kind == idl.LinkedNodeKind.prefixExpression) {
       return {
         "prefixExpression_operand": prefixExpression_operand,
-        "prefixExpression_element": prefixExpression_element,
         "prefixExpression_elementType": prefixExpression_elementType,
+        "prefixExpression_element": prefixExpression_element,
         "prefixExpression_operator": prefixExpression_operator,
         "expression_type": expression_type,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18094,11 +13883,10 @@
     if (kind == idl.LinkedNodeKind.propertyAccess) {
       return {
         "propertyAccess_propertyName": propertyAccess_propertyName,
-        "propertyAccess_operator": propertyAccess_operator,
         "propertyAccess_target": propertyAccess_target,
+        "propertyAccess_operator": propertyAccess_operator,
         "expression_type": expression_type,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18107,18 +13895,13 @@
       return {
         "redirectingConstructorInvocation_arguments":
             redirectingConstructorInvocation_arguments,
-        "redirectingConstructorInvocation_element":
-            redirectingConstructorInvocation_element,
         "redirectingConstructorInvocation_constructorName":
             redirectingConstructorInvocation_constructorName,
-        "redirectingConstructorInvocation_thisKeyword":
-            redirectingConstructorInvocation_thisKeyword,
         "redirectingConstructorInvocation_elementType":
             redirectingConstructorInvocation_elementType,
-        "redirectingConstructorInvocation_period":
-            redirectingConstructorInvocation_period,
+        "redirectingConstructorInvocation_element":
+            redirectingConstructorInvocation_element,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18126,10 +13909,7 @@
     if (kind == idl.LinkedNodeKind.returnStatement) {
       return {
         "returnStatement_expression": returnStatement_expression,
-        "returnStatement_returnKeyword": returnStatement_returnKeyword,
-        "returnStatement_semicolon": returnStatement_semicolon,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18138,27 +13918,22 @@
       return {
         "spreadElement_expression": spreadElement_expression,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
-        "spreadElement_spreadOperator2": spreadElement_spreadOperator2,
+        "spreadElement_spreadOperator": spreadElement_spreadOperator,
       };
     }
     if (kind == idl.LinkedNodeKind.superConstructorInvocation) {
       return {
         "superConstructorInvocation_arguments":
             superConstructorInvocation_arguments,
-        "superConstructorInvocation_element":
-            superConstructorInvocation_element,
         "superConstructorInvocation_constructorName":
             superConstructorInvocation_constructorName,
-        "superConstructorInvocation_superKeyword":
-            superConstructorInvocation_superKeyword,
         "superConstructorInvocation_elementType":
             superConstructorInvocation_elementType,
-        "superConstructorInvocation_period": superConstructorInvocation_period,
+        "superConstructorInvocation_element":
+            superConstructorInvocation_element,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18166,22 +13941,8 @@
     if (kind == idl.LinkedNodeKind.throwExpression) {
       return {
         "throwExpression_expression": throwExpression_expression,
-        "throwExpression_throwKeyword": throwExpression_throwKeyword,
         "expression_type": expression_type,
         "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.typeName) {
-      return {
-        "typeName_name": typeName_name,
-        "typeName_question": typeName_question,
-        "typeName_typeArguments": typeName_typeArguments,
-        "typeName_type": typeName_type,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18190,10 +13951,7 @@
       return {
         "variableDeclarationStatement_variables":
             variableDeclarationStatement_variables,
-        "variableDeclarationStatement_semicolon":
-            variableDeclarationStatement_semicolon,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18201,12 +13959,8 @@
     if (kind == idl.LinkedNodeKind.whileStatement) {
       return {
         "whileStatement_body": whileStatement_body,
-        "whileStatement_leftParenthesis": whileStatement_leftParenthesis,
         "whileStatement_condition": whileStatement_condition,
-        "whileStatement_whileKeyword": whileStatement_whileKeyword,
-        "whileStatement_rightParenthesis": whileStatement_rightParenthesis,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18214,140 +13968,42 @@
     if (kind == idl.LinkedNodeKind.yieldStatement) {
       return {
         "yieldStatement_expression": yieldStatement_expression,
-        "yieldStatement_yieldKeyword": yieldStatement_yieldKeyword,
-        "yieldStatement_semicolon": yieldStatement_semicolon,
-        "yieldStatement_star": yieldStatement_star,
         "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.emptyFunctionBody) {
-      return {
-        "emptyFunctionBody_semicolon": emptyFunctionBody_semicolon,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.emptyStatement) {
-      return {
-        "emptyStatement_semicolon": emptyStatement_semicolon,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.interpolationString) {
-      return {
-        "interpolationString_token": interpolationString_token,
-        "flags": flags,
-        "interpolationString_value": interpolationString_value,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.nullLiteral) {
-      return {
-        "nullLiteral_literal": nullLiteral_literal,
-        "expression_type": expression_type,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.rethrowExpression) {
-      return {
-        "rethrowExpression_rethrowKeyword": rethrowExpression_rethrowKeyword,
-        "expression_type": expression_type,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.scriptTag) {
-      return {
-        "scriptTag_scriptTag": scriptTag_scriptTag,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
     }
     if (kind == idl.LinkedNodeKind.simpleIdentifier) {
       return {
-        "simpleIdentifier_element": simpleIdentifier_element,
         "simpleIdentifier_elementType": simpleIdentifier_elementType,
-        "simpleIdentifier_isDeclaration": simpleIdentifier_isDeclaration,
+        "simpleIdentifier_element": simpleIdentifier_element,
         "expression_type": expression_type,
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
     }
-    if (kind == idl.LinkedNodeKind.superExpression) {
+    if (kind == idl.LinkedNodeKind.emptyFunctionBody) {
       return {
-        "superExpression_superKeyword": superExpression_superKeyword,
+        "emptyFunctionBody_fake": emptyFunctionBody_fake,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.emptyStatement) {
+      return {
+        "emptyStatement_fake": emptyStatement_fake,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.nullLiteral) {
+      return {
+        "nullLiteral_fake": nullLiteral_fake,
         "expression_type": expression_type,
         "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.symbolLiteral) {
-      return {
-        "symbolLiteral_poundSign": symbolLiteral_poundSign,
-        "names": names,
-        "expression_type": expression_type,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.thisExpression) {
-      return {
-        "thisExpression_thisKeyword": thisExpression_thisKeyword,
-        "expression_type": expression_type,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.integerLiteral) {
-      return {
-        "integerLiteral_value": integerLiteral_value,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.hideCombinator) {
-      return {
-        "combinator_keyword": combinator_keyword,
-        "names": names,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
-        "kind": kind,
-        "name": name,
-      };
-    }
-    if (kind == idl.LinkedNodeKind.showCombinator) {
-      return {
-        "combinator_keyword": combinator_keyword,
-        "names": names,
-        "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
       };
@@ -18356,7 +14012,31 @@
       return {
         "booleanLiteral_value": booleanLiteral_value,
         "flags": flags,
-        "isSynthetic": isSynthetic,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.hideCombinator) {
+      return {
+        "names": names,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.showCombinator) {
+      return {
+        "names": names,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.symbolLiteral) {
+      return {
+        "names": names,
+        "expression_type": expression_type,
+        "flags": flags,
         "kind": kind,
         "name": name,
       };
@@ -18365,7 +14045,46 @@
       return {
         "doubleLiteral_value": doubleLiteral_value,
         "flags": flags,
-        "isSynthetic": isSynthetic,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.rethrowExpression) {
+      return {
+        "expression_type": expression_type,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.superExpression) {
+      return {
+        "expression_type": expression_type,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.thisExpression) {
+      return {
+        "expression_type": expression_type,
+        "flags": flags,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.integerLiteral) {
+      return {
+        "flags": flags,
+        "integerLiteral_value": integerLiteral_value,
+        "kind": kind,
+        "name": name,
+      };
+    }
+    if (kind == idl.LinkedNodeKind.interpolationString) {
+      return {
+        "flags": flags,
+        "interpolationString_value": interpolationString_value,
         "kind": kind,
         "name": name,
       };
@@ -18373,7 +14092,6 @@
     if (kind == idl.LinkedNodeKind.simpleStringLiteral) {
       return {
         "flags": flags,
-        "isSynthetic": isSynthetic,
         "kind": kind,
         "name": name,
         "simpleStringLiteral_value": simpleStringLiteral_value,
diff --git a/pkg/analyzer/lib/src/summary/format.fbs b/pkg/analyzer/lib/src/summary/format.fbs
index f59aec6..6c25f34 100644
--- a/pkg/analyzer/lib/src/summary/format.fbs
+++ b/pkg/analyzer/lib/src/summary/format.fbs
@@ -369,8 +369,6 @@
 
   returnStatement,
 
-  scriptTag,
-
   setOrMapLiteral,
 
   showCombinator,
@@ -1894,8 +1892,6 @@
 
   variantField_6:LinkedNode (id: 6);
 
-  variantField_15:uint (id: 15);
-
   variantField_7:LinkedNode (id: 7);
 
   variantField_17:uint (id: 17);
@@ -1904,11 +1900,7 @@
 
   variantField_8:LinkedNode (id: 8);
 
-  variantField_16:uint (id: 16);
-
-  variantField_18:uint (id: 18);
-
-  variantField_19:uint (id: 19);
+  variantField_15:uint (id: 15);
 
   variantField_28:UnlinkedTokenType (id: 28);
 
@@ -1938,34 +1930,34 @@
 
   variantField_21:double (id: 21);
 
-  variantField_37:bool (id: 37);
-
   variantField_25:LinkedNodeType (id: 25);
 
-  flags:uint (id: 39);
+  flags:uint (id: 18);
 
-  variantField_41:string (id: 41);
+  variantField_1:string (id: 1);
+
+  variantField_16:uint (id: 16);
 
   variantField_30:string (id: 30);
 
   variantField_14:LinkedNode (id: 14);
 
-  isSynthetic:bool (id: 1);
-
   kind:LinkedNodeKind (id: 0);
 
-  name:string (id: 38);
+  name:string (id: 37);
 
   variantField_20:string (id: 20);
 
   variantField_31:bool (id: 31);
 
-  variantField_40:UnlinkedTokenType (id: 40);
+  variantField_38:UnlinkedTokenType (id: 38);
 
   variantField_35:TopLevelInferenceError (id: 35);
 
   variantField_22:string (id: 22);
 
+  variantField_19:uint (id: 19);
+
   variantField_32:LinkedNodeVariablesDeclaration (id: 32);
 }
 
diff --git a/pkg/analyzer/lib/src/summary/idl.dart b/pkg/analyzer/lib/src/summary/idl.dart
index 2cd456d..2ed52fc 100644
--- a/pkg/analyzer/lib/src/summary/idl.dart
+++ b/pkg/analyzer/lib/src/summary/idl.dart
@@ -875,9 +875,6 @@
   @VariantId(6, variant: LinkedNodeKind.annotation)
   LinkedNode get annotation_arguments;
 
-  @VariantId(15, variant: LinkedNodeKind.annotation)
-  int get annotation_atSign;
-
   @VariantId(7, variant: LinkedNodeKind.annotation)
   LinkedNode get annotation_constructorName;
 
@@ -890,66 +887,27 @@
   @VariantId(8, variant: LinkedNodeKind.annotation)
   LinkedNode get annotation_name;
 
-  @VariantId(16, variant: LinkedNodeKind.annotation)
-  int get annotation_period;
-
   @VariantId(2, variant: LinkedNodeKind.argumentList)
   List<LinkedNode> get argumentList_arguments;
 
-  @VariantId(15, variant: LinkedNodeKind.argumentList)
-  int get argumentList_leftParenthesis;
-
-  @VariantId(16, variant: LinkedNodeKind.argumentList)
-  int get argumentList_rightParenthesis;
-
-  @VariantId(15, variant: LinkedNodeKind.asExpression)
-  int get asExpression_asOperator;
-
   @VariantId(6, variant: LinkedNodeKind.asExpression)
   LinkedNode get asExpression_expression;
 
   @VariantId(7, variant: LinkedNodeKind.asExpression)
   LinkedNode get asExpression_type;
 
-  @VariantId(15, variant: LinkedNodeKind.assertInitializer)
-  int get assertInitializer_assertKeyword;
-
-  @VariantId(16, variant: LinkedNodeKind.assertInitializer)
-  int get assertInitializer_comma;
-
   @VariantId(6, variant: LinkedNodeKind.assertInitializer)
   LinkedNode get assertInitializer_condition;
 
-  @VariantId(17, variant: LinkedNodeKind.assertInitializer)
-  int get assertInitializer_leftParenthesis;
-
   @VariantId(7, variant: LinkedNodeKind.assertInitializer)
   LinkedNode get assertInitializer_message;
 
-  @VariantId(18, variant: LinkedNodeKind.assertInitializer)
-  int get assertInitializer_rightParenthesis;
-
-  @VariantId(15, variant: LinkedNodeKind.assertStatement)
-  int get assertStatement_assertKeyword;
-
-  @VariantId(16, variant: LinkedNodeKind.assertStatement)
-  int get assertStatement_comma;
-
   @VariantId(6, variant: LinkedNodeKind.assertStatement)
   LinkedNode get assertStatement_condition;
 
-  @VariantId(17, variant: LinkedNodeKind.assertStatement)
-  int get assertStatement_leftParenthesis;
-
   @VariantId(7, variant: LinkedNodeKind.assertStatement)
   LinkedNode get assertStatement_message;
 
-  @VariantId(18, variant: LinkedNodeKind.assertStatement)
-  int get assertStatement_rightParenthesis;
-
-  @VariantId(19, variant: LinkedNodeKind.assertStatement)
-  int get assertStatement_semicolon;
-
   @VariantId(15, variant: LinkedNodeKind.assignmentExpression)
   int get assignmentExpression_element;
 
@@ -959,15 +917,12 @@
   @VariantId(6, variant: LinkedNodeKind.assignmentExpression)
   LinkedNode get assignmentExpression_leftHandSide;
 
-  @VariantId(16, variant: LinkedNodeKind.assignmentExpression)
-  int get assignmentExpression_operator;
+  @VariantId(28, variant: LinkedNodeKind.assignmentExpression)
+  UnlinkedTokenType get assignmentExpression_operator;
 
   @VariantId(7, variant: LinkedNodeKind.assignmentExpression)
   LinkedNode get assignmentExpression_rightHandSide;
 
-  @VariantId(15, variant: LinkedNodeKind.awaitExpression)
-  int get awaitExpression_awaitKeyword;
-
   @VariantId(6, variant: LinkedNodeKind.awaitExpression)
   LinkedNode get awaitExpression_expression;
 
@@ -989,36 +944,18 @@
   @VariantId(7, variant: LinkedNodeKind.binaryExpression)
   LinkedNode get binaryExpression_rightOperand;
 
-  @VariantId(15, variant: LinkedNodeKind.block)
-  int get block_leftBracket;
-
-  @VariantId(16, variant: LinkedNodeKind.block)
-  int get block_rightBracket;
-
   @VariantId(2, variant: LinkedNodeKind.block)
   List<LinkedNode> get block_statements;
 
   @VariantId(6, variant: LinkedNodeKind.blockFunctionBody)
   LinkedNode get blockFunctionBody_block;
 
-  @VariantId(15, variant: LinkedNodeKind.blockFunctionBody)
-  int get blockFunctionBody_keyword;
-
-  @VariantId(16, variant: LinkedNodeKind.blockFunctionBody)
-  int get blockFunctionBody_star;
-
   @VariantId(27, variant: LinkedNodeKind.booleanLiteral)
   bool get booleanLiteral_value;
 
-  @VariantId(15, variant: LinkedNodeKind.breakStatement)
-  int get breakStatement_breakKeyword;
-
   @VariantId(6, variant: LinkedNodeKind.breakStatement)
   LinkedNode get breakStatement_label;
 
-  @VariantId(16, variant: LinkedNodeKind.breakStatement)
-  int get breakStatement_semicolon;
-
   @VariantId(2, variant: LinkedNodeKind.cascadeExpression)
   List<LinkedNode> get cascadeExpression_sections;
 
@@ -1028,27 +965,12 @@
   @VariantId(6, variant: LinkedNodeKind.catchClause)
   LinkedNode get catchClause_body;
 
-  @VariantId(15, variant: LinkedNodeKind.catchClause)
-  int get catchClause_catchKeyword;
-
-  @VariantId(16, variant: LinkedNodeKind.catchClause)
-  int get catchClause_comma;
-
   @VariantId(7, variant: LinkedNodeKind.catchClause)
   LinkedNode get catchClause_exceptionParameter;
 
   @VariantId(8, variant: LinkedNodeKind.catchClause)
   LinkedNode get catchClause_exceptionType;
 
-  @VariantId(17, variant: LinkedNodeKind.catchClause)
-  int get catchClause_leftParenthesis;
-
-  @VariantId(18, variant: LinkedNodeKind.catchClause)
-  int get catchClause_onKeyword;
-
-  @VariantId(19, variant: LinkedNodeKind.catchClause)
-  int get catchClause_rightParenthesis;
-
   @VariantId(9, variant: LinkedNodeKind.catchClause)
   LinkedNode get catchClause_stackTraceParameter;
 
@@ -1070,24 +992,12 @@
   ])
   LinkedNode get classOrMixinDeclaration_implementsClause;
 
-  @VariantId(19, variantList: [
-    LinkedNodeKind.classDeclaration,
-    LinkedNodeKind.mixinDeclaration,
-  ])
-  int get classOrMixinDeclaration_leftBracket;
-
   @VariantId(5, variantList: [
     LinkedNodeKind.classDeclaration,
     LinkedNodeKind.mixinDeclaration,
   ])
   List<LinkedNode> get classOrMixinDeclaration_members;
 
-  @VariantId(18, variantList: [
-    LinkedNodeKind.classDeclaration,
-    LinkedNodeKind.mixinDeclaration,
-  ])
-  int get classOrMixinDeclaration_rightBracket;
-
   @VariantId(13, variantList: [
     LinkedNodeKind.classDeclaration,
     LinkedNodeKind.mixinDeclaration,
@@ -1146,12 +1056,6 @@
   ])
   int get codeOffset;
 
-  @VariantId(19, variantList: [
-    LinkedNodeKind.hideCombinator,
-    LinkedNodeKind.showCombinator,
-  ])
-  int get combinator_keyword;
-
   @VariantId(2, variant: LinkedNodeKind.comment)
   List<LinkedNode> get comment_references;
 
@@ -1164,54 +1068,27 @@
   @VariantId(6, variant: LinkedNodeKind.commentReference)
   LinkedNode get commentReference_identifier;
 
-  @VariantId(15, variant: LinkedNodeKind.commentReference)
-  int get commentReference_newKeyword;
-
-  @VariantId(15, variant: LinkedNodeKind.compilationUnit)
-  int get compilationUnit_beginToken;
-
   @VariantId(2, variant: LinkedNodeKind.compilationUnit)
   List<LinkedNode> get compilationUnit_declarations;
 
   @VariantId(3, variant: LinkedNodeKind.compilationUnit)
   List<LinkedNode> get compilationUnit_directives;
 
-  @VariantId(16, variant: LinkedNodeKind.compilationUnit)
-  int get compilationUnit_endToken;
-
   @VariantId(6, variant: LinkedNodeKind.compilationUnit)
   LinkedNode get compilationUnit_scriptTag;
 
-  @VariantId(15, variant: LinkedNodeKind.conditionalExpression)
-  int get conditionalExpression_colon;
-
   @VariantId(6, variant: LinkedNodeKind.conditionalExpression)
   LinkedNode get conditionalExpression_condition;
 
   @VariantId(7, variant: LinkedNodeKind.conditionalExpression)
   LinkedNode get conditionalExpression_elseExpression;
 
-  @VariantId(16, variant: LinkedNodeKind.conditionalExpression)
-  int get conditionalExpression_question;
-
   @VariantId(8, variant: LinkedNodeKind.conditionalExpression)
   LinkedNode get conditionalExpression_thenExpression;
 
-  @VariantId(18, variant: LinkedNodeKind.configuration)
-  int get configuration_equalToken;
-
-  @VariantId(15, variant: LinkedNodeKind.configuration)
-  int get configuration_ifKeyword;
-
-  @VariantId(16, variant: LinkedNodeKind.configuration)
-  int get configuration_leftParenthesis;
-
   @VariantId(6, variant: LinkedNodeKind.configuration)
   LinkedNode get configuration_name;
 
-  @VariantId(17, variant: LinkedNodeKind.configuration)
-  int get configuration_rightParenthesis;
-
   @VariantId(8, variant: LinkedNodeKind.configuration)
   LinkedNode get configuration_uri;
 
@@ -1227,33 +1104,18 @@
   @VariantId(8, variant: LinkedNodeKind.constructorDeclaration)
   LinkedNode get constructorDeclaration_parameters;
 
-  @VariantId(18, variant: LinkedNodeKind.constructorDeclaration)
-  int get constructorDeclaration_period;
-
   @VariantId(9, variant: LinkedNodeKind.constructorDeclaration)
   LinkedNode get constructorDeclaration_redirectedConstructor;
 
   @VariantId(10, variant: LinkedNodeKind.constructorDeclaration)
   LinkedNode get constructorDeclaration_returnType;
 
-  @VariantId(19, variant: LinkedNodeKind.constructorDeclaration)
-  int get constructorDeclaration_separator;
-
-  @VariantId(15, variant: LinkedNodeKind.constructorFieldInitializer)
-  int get constructorFieldInitializer_equals;
-
   @VariantId(6, variant: LinkedNodeKind.constructorFieldInitializer)
   LinkedNode get constructorFieldInitializer_expression;
 
   @VariantId(7, variant: LinkedNodeKind.constructorFieldInitializer)
   LinkedNode get constructorFieldInitializer_fieldName;
 
-  @VariantId(16, variant: LinkedNodeKind.constructorFieldInitializer)
-  int get constructorFieldInitializer_period;
-
-  @VariantId(17, variant: LinkedNodeKind.constructorFieldInitializer)
-  int get constructorFieldInitializer_thisKeyword;
-
   @VariantId(15, variant: LinkedNodeKind.constructorName)
   int get constructorName_element;
 
@@ -1263,27 +1125,15 @@
   @VariantId(6, variant: LinkedNodeKind.constructorName)
   LinkedNode get constructorName_name;
 
-  @VariantId(16, variant: LinkedNodeKind.constructorName)
-  int get constructorName_period;
-
   @VariantId(7, variant: LinkedNodeKind.constructorName)
   LinkedNode get constructorName_type;
 
-  @VariantId(15, variant: LinkedNodeKind.continueStatement)
-  int get continueStatement_continueKeyword;
-
   @VariantId(6, variant: LinkedNodeKind.continueStatement)
   LinkedNode get continueStatement_label;
 
-  @VariantId(16, variant: LinkedNodeKind.continueStatement)
-  int get continueStatement_semicolon;
-
   @VariantId(6, variant: LinkedNodeKind.declaredIdentifier)
   LinkedNode get declaredIdentifier_identifier;
 
-  @VariantId(15, variant: LinkedNodeKind.declaredIdentifier)
-  int get declaredIdentifier_keyword;
-
   @VariantId(7, variant: LinkedNodeKind.declaredIdentifier)
   LinkedNode get declaredIdentifier_type;
 
@@ -1296,48 +1146,12 @@
   @VariantId(7, variant: LinkedNodeKind.defaultFormalParameter)
   LinkedNode get defaultFormalParameter_parameter;
 
-  @VariantId(15, variant: LinkedNodeKind.defaultFormalParameter)
-  int get defaultFormalParameter_separator;
-
-  @VariantId(18, variantList: [
-    LinkedNodeKind.exportDirective,
-    LinkedNodeKind.importDirective,
-    LinkedNodeKind.libraryDirective,
-    LinkedNodeKind.partDirective,
-    LinkedNodeKind.partOfDirective,
-  ])
-  int get directive_keyword;
-
-  @VariantId(33, variantList: [
-    LinkedNodeKind.exportDirective,
-    LinkedNodeKind.importDirective,
-    LinkedNodeKind.libraryDirective,
-    LinkedNodeKind.partDirective,
-    LinkedNodeKind.partOfDirective,
-  ])
-  int get directive_semicolon;
-
   @VariantId(6, variant: LinkedNodeKind.doStatement)
   LinkedNode get doStatement_body;
 
   @VariantId(7, variant: LinkedNodeKind.doStatement)
   LinkedNode get doStatement_condition;
 
-  @VariantId(17, variant: LinkedNodeKind.doStatement)
-  int get doStatement_doKeyword;
-
-  @VariantId(15, variant: LinkedNodeKind.doStatement)
-  int get doStatement_leftParenthesis;
-
-  @VariantId(16, variant: LinkedNodeKind.doStatement)
-  int get doStatement_rightParenthesis;
-
-  @VariantId(18, variant: LinkedNodeKind.doStatement)
-  int get doStatement_semicolon;
-
-  @VariantId(19, variant: LinkedNodeKind.doStatement)
-  int get doStatement_whileKeyword;
-
   @VariantId(2, variant: LinkedNodeKind.dottedName)
   List<LinkedNode> get dottedName_components;
 
@@ -1345,28 +1159,14 @@
   double get doubleLiteral_value;
 
   @VariantId(15, variant: LinkedNodeKind.emptyFunctionBody)
-  int get emptyFunctionBody_semicolon;
+  int get emptyFunctionBody_fake;
 
   @VariantId(15, variant: LinkedNodeKind.emptyStatement)
-  int get emptyStatement_semicolon;
+  int get emptyStatement_fake;
 
   @VariantId(2, variant: LinkedNodeKind.enumDeclaration)
   List<LinkedNode> get enumDeclaration_constants;
 
-  @VariantId(27, variantList: [
-    LinkedNodeKind.constructorDeclaration,
-    LinkedNodeKind.functionExpression,
-    LinkedNodeKind.methodDeclaration,
-  ])
-  bool get executable_isAsynchronous;
-
-  @VariantId(37, variantList: [
-    LinkedNodeKind.constructorDeclaration,
-    LinkedNodeKind.functionExpression,
-    LinkedNodeKind.methodDeclaration,
-  ])
-  bool get executable_isGenerator;
-
   @VariantId(25, variantList: [
     LinkedNodeKind.assignmentExpression,
     LinkedNodeKind.asExpression,
@@ -1395,57 +1195,30 @@
   ])
   LinkedNodeType get expression_type;
 
-  @VariantId(15, variant: LinkedNodeKind.expressionFunctionBody)
-  int get expressionFunctionBody_arrow;
-
   @VariantId(6, variant: LinkedNodeKind.expressionFunctionBody)
   LinkedNode get expressionFunctionBody_expression;
 
-  @VariantId(16, variant: LinkedNodeKind.expressionFunctionBody)
-  int get expressionFunctionBody_keyword;
-
-  @VariantId(17, variant: LinkedNodeKind.expressionFunctionBody)
-  int get expressionFunctionBody_semicolon;
-
   @VariantId(6, variant: LinkedNodeKind.expressionStatement)
   LinkedNode get expressionStatement_expression;
 
-  @VariantId(15, variant: LinkedNodeKind.expressionStatement)
-  int get expressionStatement_semicolon;
-
-  @VariantId(15, variant: LinkedNodeKind.extendsClause)
-  int get extendsClause_extendsKeyword;
-
   @VariantId(6, variant: LinkedNodeKind.extendsClause)
   LinkedNode get extendsClause_superclass;
 
   @VariantId(6, variant: LinkedNodeKind.fieldDeclaration)
   LinkedNode get fieldDeclaration_fields;
 
-  @VariantId(16, variant: LinkedNodeKind.fieldDeclaration)
-  int get fieldDeclaration_semicolon;
-
   @VariantId(8, variant: LinkedNodeKind.fieldFormalParameter)
   LinkedNode get fieldFormalParameter_formalParameters;
 
-  @VariantId(17, variant: LinkedNodeKind.fieldFormalParameter)
-  int get fieldFormalParameter_thisKeyword;
-
   @VariantId(6, variant: LinkedNodeKind.fieldFormalParameter)
   LinkedNode get fieldFormalParameter_type;
 
   @VariantId(7, variant: LinkedNodeKind.fieldFormalParameter)
   LinkedNode get fieldFormalParameter_typeParameters;
 
-  @Id(39)
+  @Id(18)
   int get flags;
 
-  @VariantId(15, variantList: [
-    LinkedNodeKind.forEachPartsWithDeclaration,
-    LinkedNodeKind.forEachPartsWithIdentifier,
-  ])
-  int get forEachParts_inKeyword;
-
   @VariantId(6, variantList: [
     LinkedNodeKind.forEachPartsWithDeclaration,
     LinkedNodeKind.forEachPartsWithIdentifier,
@@ -1461,69 +1234,21 @@
   @VariantId(7, variant: LinkedNodeKind.forElement)
   LinkedNode get forElement_body;
 
-  @VariantId(15, variant: LinkedNodeKind.formalParameterList)
-  int get formalParameterList_leftDelimiter;
-
-  @VariantId(16, variant: LinkedNodeKind.formalParameterList)
-  int get formalParameterList_leftParenthesis;
-
   @VariantId(2, variant: LinkedNodeKind.formalParameterList)
   List<LinkedNode> get formalParameterList_parameters;
 
-  @VariantId(17, variant: LinkedNodeKind.formalParameterList)
-  int get formalParameterList_rightDelimiter;
-
-  @VariantId(18, variant: LinkedNodeKind.formalParameterList)
-  int get formalParameterList_rightParenthesis;
-
-  @VariantId(15, variantList: [
-    LinkedNodeKind.forElement,
-    LinkedNodeKind.forStatement,
-  ])
-  int get forMixin_awaitKeyword;
-
-  @VariantId(16, variantList: [
-    LinkedNodeKind.forElement,
-    LinkedNodeKind.forStatement,
-  ])
-  int get forMixin_forKeyword;
-
   @VariantId(6, variantList: [
     LinkedNodeKind.forElement,
     LinkedNodeKind.forStatement,
   ])
   LinkedNode get forMixin_forLoopParts;
 
-  @VariantId(17, variantList: [
-    LinkedNodeKind.forElement,
-    LinkedNodeKind.forStatement,
-  ])
-  int get forMixin_leftParenthesis;
-
-  @VariantId(19, variantList: [
-    LinkedNodeKind.forElement,
-    LinkedNodeKind.forStatement,
-  ])
-  int get forMixin_rightParenthesis;
-
   @VariantId(6, variantList: [
     LinkedNodeKind.forPartsWithDeclarations,
     LinkedNodeKind.forPartsWithExpression,
   ])
   LinkedNode get forParts_condition;
 
-  @VariantId(15, variantList: [
-    LinkedNodeKind.forPartsWithDeclarations,
-    LinkedNodeKind.forPartsWithExpression,
-  ])
-  int get forParts_leftSeparator;
-
-  @VariantId(16, variantList: [
-    LinkedNodeKind.forPartsWithDeclarations,
-    LinkedNodeKind.forPartsWithExpression,
-  ])
-  int get forParts_rightSeparator;
-
   @VariantId(5, variantList: [
     LinkedNodeKind.forPartsWithDeclarations,
     LinkedNodeKind.forPartsWithExpression,
@@ -1581,15 +1306,9 @@
   @VariantId(8, variant: LinkedNodeKind.genericFunctionType)
   LinkedNode get genericFunctionType_formalParameters;
 
-  @VariantId(15, variant: LinkedNodeKind.genericFunctionType)
-  int get genericFunctionType_functionKeyword;
-
   @VariantId(17, variant: LinkedNodeKind.genericFunctionType)
   int get genericFunctionType_id;
 
-  @VariantId(16, variant: LinkedNodeKind.genericFunctionType)
-  int get genericFunctionType_question;
-
   @VariantId(7, variant: LinkedNodeKind.genericFunctionType)
   LinkedNode get genericFunctionType_returnType;
 
@@ -1617,46 +1336,19 @@
   ])
   LinkedNode get ifMixin_condition;
 
-  @VariantId(15, variantList: [
-    LinkedNodeKind.ifElement,
-    LinkedNodeKind.ifStatement,
-  ])
-  int get ifMixin_elseKeyword;
-
-  @VariantId(16, variantList: [
-    LinkedNodeKind.ifElement,
-    LinkedNodeKind.ifStatement,
-  ])
-  int get ifMixin_ifKeyword;
-
-  @VariantId(17, variantList: [
-    LinkedNodeKind.ifElement,
-    LinkedNodeKind.ifStatement,
-  ])
-  int get ifMixin_leftParenthesis;
-
-  @VariantId(18, variantList: [
-    LinkedNodeKind.ifElement,
-    LinkedNodeKind.ifStatement,
-  ])
-  int get ifMixin_rightParenthesis;
-
   @VariantId(7, variant: LinkedNodeKind.ifStatement)
   LinkedNode get ifStatement_elseStatement;
 
   @VariantId(8, variant: LinkedNodeKind.ifStatement)
   LinkedNode get ifStatement_thenStatement;
 
-  @VariantId(15, variant: LinkedNodeKind.implementsClause)
-  int get implementsClause_implementsKeyword;
-
   @VariantId(2, variant: LinkedNodeKind.implementsClause)
   List<LinkedNode> get implementsClause_interfaces;
 
   @VariantId(15, variant: LinkedNodeKind.importDirective)
   int get importDirective_prefixOffset;
 
-  @VariantId(41, variant: LinkedNodeKind.importDirective)
+  @VariantId(1, variant: LinkedNodeKind.importDirective)
   String get importDirective_prefix;
 
   @VariantId(15, variant: LinkedNodeKind.indexExpression)
@@ -1668,15 +1360,6 @@
   @VariantId(6, variant: LinkedNodeKind.indexExpression)
   LinkedNode get indexExpression_index;
 
-  @VariantId(17, variant: LinkedNodeKind.indexExpression)
-  int get indexExpression_leftBracket;
-
-  @VariantId(16, variant: LinkedNodeKind.indexExpression)
-  int get indexExpression_period;
-
-  @VariantId(18, variant: LinkedNodeKind.indexExpression)
-  int get indexExpression_rightBracket;
-
   @VariantId(7, variant: LinkedNodeKind.indexExpression)
   LinkedNode get indexExpression_target;
 
@@ -1688,8 +1371,8 @@
   ])
   bool get inheritsCovariant;
 
-  @VariantId(6, variant: LinkedNodeKind.instanceCreationExpression)
-  LinkedNode get instanceCreationExpression_arguments;
+  @VariantId(2, variant: LinkedNodeKind.instanceCreationExpression)
+  List<LinkedNode> get instanceCreationExpression_arguments;
 
   @VariantId(7, variant: LinkedNodeKind.instanceCreationExpression)
   LinkedNode get instanceCreationExpression_constructorName;
@@ -1703,15 +1386,6 @@
   @VariantId(6, variant: LinkedNodeKind.interpolationExpression)
   LinkedNode get interpolationExpression_expression;
 
-  @VariantId(15, variant: LinkedNodeKind.interpolationExpression)
-  int get interpolationExpression_leftBracket;
-
-  @VariantId(16, variant: LinkedNodeKind.interpolationExpression)
-  int get interpolationExpression_rightBracket;
-
-  @VariantId(15, variant: LinkedNodeKind.interpolationString)
-  int get interpolationString_token;
-
   @VariantId(30, variant: LinkedNodeKind.interpolationString)
   String get interpolationString_value;
 
@@ -1736,24 +1410,12 @@
   @VariantId(6, variant: LinkedNodeKind.isExpression)
   LinkedNode get isExpression_expression;
 
-  @VariantId(15, variant: LinkedNodeKind.isExpression)
-  int get isExpression_isOperator;
-
-  @VariantId(16, variant: LinkedNodeKind.isExpression)
-  int get isExpression_notOperator;
-
   @VariantId(7, variant: LinkedNodeKind.isExpression)
   LinkedNode get isExpression_type;
 
-  @Id(1)
-  bool get isSynthetic;
-
   @Id(0)
   LinkedNodeKind get kind;
 
-  @VariantId(15, variant: LinkedNodeKind.label)
-  int get label_colon;
-
   @VariantId(6, variant: LinkedNodeKind.label)
   LinkedNode get label_label;
 
@@ -1769,36 +1431,21 @@
   @VariantId(2, variant: LinkedNodeKind.libraryIdentifier)
   List<LinkedNode> get libraryIdentifier_components;
 
-  @VariantId(2, variant: LinkedNodeKind.listLiteral)
+  @VariantId(3, variant: LinkedNodeKind.listLiteral)
   List<LinkedNode> get listLiteral_elements;
 
-  @VariantId(15, variant: LinkedNodeKind.listLiteral)
-  int get listLiteral_leftBracket;
-
-  @VariantId(16, variant: LinkedNodeKind.listLiteral)
-  int get listLiteral_rightBracket;
-
   @VariantId(6, variant: LinkedNodeKind.mapLiteralEntry)
   LinkedNode get mapLiteralEntry_key;
 
-  @VariantId(15, variant: LinkedNodeKind.mapLiteralEntry)
-  int get mapLiteralEntry_separator;
-
   @VariantId(7, variant: LinkedNodeKind.mapLiteralEntry)
   LinkedNode get mapLiteralEntry_value;
 
-  @VariantId(19, variant: LinkedNodeKind.methodDeclaration)
-  int get methodDeclaration_actualProperty;
-
   @VariantId(6, variant: LinkedNodeKind.methodDeclaration)
   LinkedNode get methodDeclaration_body;
 
   @VariantId(7, variant: LinkedNodeKind.methodDeclaration)
   LinkedNode get methodDeclaration_formalParameters;
 
-  @VariantId(17, variant: LinkedNodeKind.methodDeclaration)
-  int get methodDeclaration_operatorKeyword;
-
   @VariantId(8, variant: LinkedNodeKind.methodDeclaration)
   LinkedNode get methodDeclaration_returnType;
 
@@ -1808,22 +1455,16 @@
   @VariantId(6, variant: LinkedNodeKind.methodInvocation)
   LinkedNode get methodInvocation_methodName;
 
-  @VariantId(15, variant: LinkedNodeKind.methodInvocation)
-  int get methodInvocation_operator;
-
   @VariantId(7, variant: LinkedNodeKind.methodInvocation)
   LinkedNode get methodInvocation_target;
 
-  @VariantId(15, variant: LinkedNodeKind.mixinDeclaration)
-  int get mixinDeclaration_mixinKeyword;
-
   @VariantId(6, variant: LinkedNodeKind.mixinDeclaration)
   LinkedNode get mixinDeclaration_onClause;
 
   @VariantId(36, variant: LinkedNodeKind.mixinDeclaration)
   List<String> get mixinDeclaration_superInvokedNames;
 
-  @Id(38)
+  @Id(37)
   String get name;
 
   @VariantId(16, variantList: [
@@ -1882,15 +1523,6 @@
   @VariantId(6, variant: LinkedNodeKind.nativeClause)
   LinkedNode get nativeClause_name;
 
-  @VariantId(15, variant: LinkedNodeKind.nativeClause)
-  int get nativeClause_nativeKeyword;
-
-  @VariantId(15, variant: LinkedNodeKind.nativeFunctionBody)
-  int get nativeFunctionBody_nativeKeyword;
-
-  @VariantId(16, variant: LinkedNodeKind.nativeFunctionBody)
-  int get nativeFunctionBody_semicolon;
-
   @VariantId(6, variant: LinkedNodeKind.nativeFunctionBody)
   LinkedNode get nativeFunctionBody_stringLiteral;
 
@@ -1908,18 +1540,8 @@
   ])
   List<LinkedNode> get normalFormalParameter_metadata;
 
-  @VariantId(18, variantList: [
-    LinkedNodeKind.fieldFormalParameter,
-    LinkedNodeKind.functionTypedFormalParameter,
-    LinkedNodeKind.simpleFormalParameter,
-  ])
-  int get normalFormalParameter_requiredKeyword;
-
   @VariantId(15, variant: LinkedNodeKind.nullLiteral)
-  int get nullLiteral_literal;
-
-  @VariantId(15, variant: LinkedNodeKind.onClause)
-  int get onClause_onKeyword;
+  int get nullLiteral_fake;
 
   @VariantId(2, variant: LinkedNodeKind.onClause)
   List<LinkedNode> get onClause_superclassConstraints;
@@ -1927,18 +1549,9 @@
   @VariantId(6, variant: LinkedNodeKind.parenthesizedExpression)
   LinkedNode get parenthesizedExpression_expression;
 
-  @VariantId(15, variant: LinkedNodeKind.parenthesizedExpression)
-  int get parenthesizedExpression_leftParenthesis;
-
-  @VariantId(16, variant: LinkedNodeKind.parenthesizedExpression)
-  int get parenthesizedExpression_rightParenthesis;
-
   @VariantId(6, variant: LinkedNodeKind.partOfDirective)
   LinkedNode get partOfDirective_libraryName;
 
-  @VariantId(16, variant: LinkedNodeKind.partOfDirective)
-  int get partOfDirective_ofKeyword;
-
   @VariantId(7, variant: LinkedNodeKind.partOfDirective)
   LinkedNode get partOfDirective_uri;
 
@@ -1951,15 +1564,12 @@
   @VariantId(6, variant: LinkedNodeKind.postfixExpression)
   LinkedNode get postfixExpression_operand;
 
-  @VariantId(16, variant: LinkedNodeKind.postfixExpression)
-  int get postfixExpression_operator;
+  @VariantId(28, variant: LinkedNodeKind.postfixExpression)
+  UnlinkedTokenType get postfixExpression_operator;
 
   @VariantId(6, variant: LinkedNodeKind.prefixedIdentifier)
   LinkedNode get prefixedIdentifier_identifier;
 
-  @VariantId(15, variant: LinkedNodeKind.prefixedIdentifier)
-  int get prefixedIdentifier_period;
-
   @VariantId(7, variant: LinkedNodeKind.prefixedIdentifier)
   LinkedNode get prefixedIdentifier_prefix;
 
@@ -1975,8 +1585,8 @@
   @VariantId(28, variant: LinkedNodeKind.prefixExpression)
   UnlinkedTokenType get prefixExpression_operator;
 
-  @VariantId(15, variant: LinkedNodeKind.propertyAccess)
-  int get propertyAccess_operator;
+  @VariantId(28, variant: LinkedNodeKind.propertyAccess)
+  UnlinkedTokenType get propertyAccess_operator;
 
   @VariantId(6, variant: LinkedNodeKind.propertyAccess)
   LinkedNode get propertyAccess_propertyName;
@@ -1996,42 +1606,12 @@
   @VariantId(23, variant: LinkedNodeKind.redirectingConstructorInvocation)
   LinkedNodeType get redirectingConstructorInvocation_elementType;
 
-  @VariantId(16, variant: LinkedNodeKind.redirectingConstructorInvocation)
-  int get redirectingConstructorInvocation_period;
-
-  @VariantId(17, variant: LinkedNodeKind.redirectingConstructorInvocation)
-  int get redirectingConstructorInvocation_thisKeyword;
-
-  @VariantId(15, variant: LinkedNodeKind.rethrowExpression)
-  int get rethrowExpression_rethrowKeyword;
-
   @VariantId(6, variant: LinkedNodeKind.returnStatement)
   LinkedNode get returnStatement_expression;
 
-  @VariantId(15, variant: LinkedNodeKind.returnStatement)
-  int get returnStatement_returnKeyword;
-
-  @VariantId(16, variant: LinkedNodeKind.returnStatement)
-  int get returnStatement_semicolon;
-
-  @VariantId(15, variant: LinkedNodeKind.scriptTag)
-  int get scriptTag_scriptTag;
-
-  @VariantId(2, variant: LinkedNodeKind.setOrMapLiteral)
+  @VariantId(3, variant: LinkedNodeKind.setOrMapLiteral)
   List<LinkedNode> get setOrMapLiteral_elements;
 
-  @VariantId(27, variant: LinkedNodeKind.setOrMapLiteral)
-  bool get setOrMapLiteral_isMap;
-
-  @VariantId(31, variant: LinkedNodeKind.setOrMapLiteral)
-  bool get setOrMapLiteral_isSet;
-
-  @VariantId(15, variant: LinkedNodeKind.setOrMapLiteral)
-  int get setOrMapLiteral_leftBracket;
-
-  @VariantId(16, variant: LinkedNodeKind.setOrMapLiteral)
-  int get setOrMapLiteral_rightBracket;
-
   @VariantId(6, variant: LinkedNodeKind.simpleFormalParameter)
   LinkedNode get simpleFormalParameter_type;
 
@@ -2041,9 +1621,6 @@
   @VariantId(23, variant: LinkedNodeKind.simpleIdentifier)
   LinkedNodeType get simpleIdentifier_elementType;
 
-  @VariantId(27, variant: LinkedNodeKind.simpleIdentifier)
-  bool get simpleIdentifier_isDeclaration;
-
   @VariantId(20, variant: LinkedNodeKind.simpleStringLiteral)
   String get simpleStringLiteral_value;
 
@@ -2059,8 +1636,8 @@
   @VariantId(6, variant: LinkedNodeKind.spreadElement)
   LinkedNode get spreadElement_expression;
 
-  @VariantId(40, variant: LinkedNodeKind.spreadElement)
-  UnlinkedTokenType get spreadElement_spreadOperator2;
+  @VariantId(38, variant: LinkedNodeKind.spreadElement)
+  UnlinkedTokenType get spreadElement_spreadOperator;
 
   @VariantId(2, variant: LinkedNodeKind.stringInterpolation)
   List<LinkedNode> get stringInterpolation_elements;
@@ -2077,30 +1654,9 @@
   @VariantId(23, variant: LinkedNodeKind.superConstructorInvocation)
   LinkedNodeType get superConstructorInvocation_elementType;
 
-  @VariantId(16, variant: LinkedNodeKind.superConstructorInvocation)
-  int get superConstructorInvocation_period;
-
-  @VariantId(17, variant: LinkedNodeKind.superConstructorInvocation)
-  int get superConstructorInvocation_superKeyword;
-
-  @VariantId(15, variant: LinkedNodeKind.superExpression)
-  int get superExpression_superKeyword;
-
   @VariantId(6, variant: LinkedNodeKind.switchCase)
   LinkedNode get switchCase_expression;
 
-  @VariantId(16, variantList: [
-    LinkedNodeKind.switchCase,
-    LinkedNodeKind.switchDefault,
-  ])
-  int get switchMember_colon;
-
-  @VariantId(15, variantList: [
-    LinkedNodeKind.switchCase,
-    LinkedNodeKind.switchDefault,
-  ])
-  int get switchMember_keyword;
-
   @VariantId(3, variantList: [
     LinkedNodeKind.switchCase,
     LinkedNodeKind.switchDefault,
@@ -2116,45 +1672,18 @@
   @VariantId(7, variant: LinkedNodeKind.switchStatement)
   LinkedNode get switchStatement_expression;
 
-  @VariantId(18, variant: LinkedNodeKind.switchStatement)
-  int get switchStatement_leftBracket;
-
-  @VariantId(15, variant: LinkedNodeKind.switchStatement)
-  int get switchStatement_leftParenthesis;
-
   @VariantId(2, variant: LinkedNodeKind.switchStatement)
   List<LinkedNode> get switchStatement_members;
 
-  @VariantId(19, variant: LinkedNodeKind.switchStatement)
-  int get switchStatement_rightBracket;
-
-  @VariantId(16, variant: LinkedNodeKind.switchStatement)
-  int get switchStatement_rightParenthesis;
-
-  @VariantId(17, variant: LinkedNodeKind.switchStatement)
-  int get switchStatement_switchKeyword;
-
-  @VariantId(15, variant: LinkedNodeKind.symbolLiteral)
-  int get symbolLiteral_poundSign;
-
-  @VariantId(15, variant: LinkedNodeKind.thisExpression)
-  int get thisExpression_thisKeyword;
-
   @VariantId(6, variant: LinkedNodeKind.throwExpression)
   LinkedNode get throwExpression_expression;
 
-  @VariantId(15, variant: LinkedNodeKind.throwExpression)
-  int get throwExpression_throwKeyword;
-
   @VariantId(35, variantList: [
     LinkedNodeKind.simpleFormalParameter,
     LinkedNodeKind.variableDeclaration,
   ])
   TopLevelInferenceError get topLevelTypeInferenceError;
 
-  @VariantId(15, variant: LinkedNodeKind.topLevelVariableDeclaration)
-  int get topLevelVariableDeclaration_semicolon;
-
   @VariantId(6, variant: LinkedNodeKind.topLevelVariableDeclaration)
   LinkedNode get topLevelVariableDeclaration_variableList;
 
@@ -2167,58 +1696,29 @@
   @VariantId(7, variant: LinkedNodeKind.tryStatement)
   LinkedNode get tryStatement_finallyBlock;
 
-  @VariantId(15, variant: LinkedNodeKind.tryStatement)
-  int get tryStatement_finallyKeyword;
-
-  @VariantId(16, variant: LinkedNodeKind.tryStatement)
-  int get tryStatement_tryKeyword;
-
   @VariantId(27, variantList: [
     LinkedNodeKind.functionTypeAlias,
     LinkedNodeKind.genericTypeAlias,
   ])
   bool get typeAlias_hasSelfReference;
 
-  @VariantId(19, variantList: [
-    LinkedNodeKind.classTypeAlias,
-    LinkedNodeKind.functionTypeAlias,
-    LinkedNodeKind.genericTypeAlias,
-  ])
-  int get typeAlias_semicolon;
-
-  @VariantId(18, variantList: [
-    LinkedNodeKind.classTypeAlias,
-    LinkedNodeKind.functionTypeAlias,
-    LinkedNodeKind.genericTypeAlias,
-  ])
-  int get typeAlias_typedefKeyword;
-
   @VariantId(2, variant: LinkedNodeKind.typeArgumentList)
   List<LinkedNode> get typeArgumentList_arguments;
 
-  @VariantId(15, variant: LinkedNodeKind.typeArgumentList)
-  int get typeArgumentList_leftBracket;
-
-  @VariantId(16, variant: LinkedNodeKind.typeArgumentList)
-  int get typeArgumentList_rightBracket;
-
-  @VariantId(14, variantList: [
+  @VariantId(2, variantList: [
     LinkedNodeKind.listLiteral,
     LinkedNodeKind.setOrMapLiteral,
   ])
-  LinkedNode get typedLiteral_typeArguments;
+  List<LinkedNode> get typedLiteral_typeArguments;
 
   @VariantId(6, variant: LinkedNodeKind.typeName)
   LinkedNode get typeName_name;
 
-  @VariantId(15, variant: LinkedNodeKind.typeName)
-  int get typeName_question;
-
   @VariantId(23, variant: LinkedNodeKind.typeName)
   LinkedNodeType get typeName_type;
 
-  @VariantId(7, variant: LinkedNodeKind.typeName)
-  LinkedNode get typeName_typeArguments;
+  @VariantId(2, variant: LinkedNodeKind.typeName)
+  List<LinkedNode> get typeName_typeArguments;
 
   @VariantId(6, variant: LinkedNodeKind.typeParameter)
   LinkedNode get typeParameter_bound;
@@ -2226,15 +1726,6 @@
   @VariantId(23, variant: LinkedNodeKind.typeParameter)
   LinkedNodeType get typeParameter_defaultType;
 
-  @VariantId(15, variant: LinkedNodeKind.typeParameter)
-  int get typeParameter_extendsKeyword;
-
-  @VariantId(15, variant: LinkedNodeKind.typeParameterList)
-  int get typeParameterList_leftBracket;
-
-  @VariantId(16, variant: LinkedNodeKind.typeParameterList)
-  int get typeParameterList_rightBracket;
-
   @VariantId(2, variant: LinkedNodeKind.typeParameterList)
   List<LinkedNode> get typeParameterList_typeParameters;
 
@@ -2262,9 +1753,6 @@
   @VariantId(32, variant: LinkedNodeKind.variableDeclaration)
   LinkedNodeVariablesDeclaration get variableDeclaration_declaration;
 
-  @VariantId(15, variant: LinkedNodeKind.variableDeclaration)
-  int get variableDeclaration_equals;
-
   @VariantId(6, variant: LinkedNodeKind.variableDeclaration)
   LinkedNode get variableDeclaration_initializer;
 
@@ -2274,9 +1762,6 @@
   @VariantId(2, variant: LinkedNodeKind.variableDeclarationList)
   List<LinkedNode> get variableDeclarationList_variables;
 
-  @VariantId(15, variant: LinkedNodeKind.variableDeclarationStatement)
-  int get variableDeclarationStatement_semicolon;
-
   @VariantId(6, variant: LinkedNodeKind.variableDeclarationStatement)
   LinkedNode get variableDeclarationStatement_variables;
 
@@ -2286,32 +1771,11 @@
   @VariantId(7, variant: LinkedNodeKind.whileStatement)
   LinkedNode get whileStatement_condition;
 
-  @VariantId(15, variant: LinkedNodeKind.whileStatement)
-  int get whileStatement_leftParenthesis;
-
-  @VariantId(16, variant: LinkedNodeKind.whileStatement)
-  int get whileStatement_rightParenthesis;
-
-  @VariantId(17, variant: LinkedNodeKind.whileStatement)
-  int get whileStatement_whileKeyword;
-
   @VariantId(2, variant: LinkedNodeKind.withClause)
   List<LinkedNode> get withClause_mixinTypes;
 
-  @VariantId(15, variant: LinkedNodeKind.withClause)
-  int get withClause_withKeyword;
-
   @VariantId(6, variant: LinkedNodeKind.yieldStatement)
   LinkedNode get yieldStatement_expression;
-
-  @VariantId(17, variant: LinkedNodeKind.yieldStatement)
-  int get yieldStatement_semicolon;
-
-  @VariantId(16, variant: LinkedNodeKind.yieldStatement)
-  int get yieldStatement_star;
-
-  @VariantId(15, variant: LinkedNodeKind.yieldStatement)
-  int get yieldStatement_yieldKeyword;
 }
 
 /// Information about a group of libraries linked together, for example because
@@ -2433,7 +1897,6 @@
   redirectingConstructorInvocation,
   rethrowExpression,
   returnStatement,
-  scriptTag,
   setOrMapLiteral,
   showCombinator,
   simpleFormalParameter,
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_flags.dart b/pkg/analyzer/lib/src/summary2/ast_binary_flags.dart
index 13d4f3f..5f973e1 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_flags.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_flags.dart
@@ -2,51 +2,309 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'package:analyzer/dart/ast/ast.dart';
+
 class AstBinaryFlags {
-  static const _hasInitializer = 1 << 0;
-  static const _isAbstract = 1 << 1;
-  static const _isConst = 1 << 2;
-  static const _isCovariant = 1 << 3;
-  static const _isDeferred = 1 << 4;
-  static const _isExternal = 1 << 5;
-  static const _isFactory = 1 << 6;
-  static const _isFinal = 1 << 7;
-  static const _isGet = 1 << 8;
-  static const _isLate = 1 << 9;
-  static const _isNew = 1 << 10;
-  static const _isSet = 1 << 11;
-  static const _isStatic = 1 << 12;
-  static const _isVar = 1 << 13;
+  static final Map<Type, int> _typeBits = {};
+
+  static final _hasAwait = _checkBit(
+    0,
+    ForElement,
+    ForStatement,
+  );
+
+  static final _hasEqual = _checkBit(
+    0,
+    Configuration,
+  );
+
+  static final _hasInitializer = _checkBit(
+    0,
+    DefaultFormalParameter,
+    VariableDeclaration,
+  );
+
+  static final _hasNot = _checkBit(
+    0,
+    IsExpression,
+  );
+
+  static final _hasPeriod = _checkBit(
+    0,
+    IndexExpression,
+    MethodInvocation,
+  );
+
+  static final _hasPeriod2 = _checkBit(
+    1,
+    MethodInvocation,
+  );
+
+  static final _hasQuestion = _checkBit(
+    1,
+    GenericFunctionType,
+    TypeName,
+  );
+
+  static final _hasSeparatorColon = _checkBit(
+    0,
+    ConstructorDeclaration,
+  );
+
+  static final _hasSeparatorEquals = _checkBit(
+    2,
+    ConstructorDeclaration,
+  );
+
+  static final _hasThis = _checkBit(
+    0,
+    ConstructorFieldInitializer,
+    RedirectingConstructorInvocation,
+  );
+
+  static final _hasTypeArguments = _checkBit(
+    0,
+    TypedLiteral,
+    TypeName,
+  );
+
+  static final _isAbstract = _checkBit(
+    1,
+    ClassDeclaration,
+    ClassTypeAlias,
+    ConstructorDeclaration,
+    MethodDeclaration,
+  );
+
+  static final _isAsync = _checkBit(
+    2,
+    BlockFunctionBody,
+    EmptyFunctionBody,
+    FunctionExpression,
+    MethodDeclaration,
+  );
+
+  static final _isConst = _checkBit(
+    3,
+    ConstructorDeclaration,
+    DeclaredIdentifier,
+    InstanceCreationExpression,
+    NormalFormalParameter,
+    TypedLiteral,
+    VariableDeclarationList,
+  );
+
+  static final _isCovariant = _checkBit(
+    2,
+    FieldDeclaration,
+    NormalFormalParameter,
+  );
+
+  static final _isDeclaration = _checkBit(
+    0,
+    SimpleIdentifier,
+  );
+
+  static final _isDeferred = _checkBit(
+    0,
+    ImportDirective,
+  );
+
+  static final _isDelimiterCurly = _checkBit(
+    0,
+    FormalParameterList,
+  );
+
+  static final _isDelimiterSquare = _checkBit(
+    1,
+    FormalParameterList,
+  );
+
+  static final _isExternal = _checkBit(
+    7,
+    ConstructorDeclaration,
+    FunctionDeclaration,
+    MethodDeclaration,
+  );
+
+  static final _isFactory = _checkBit(
+    4,
+    ConstructorDeclaration,
+  );
+
+  static final _isFinal = _checkBit(
+    4,
+    DeclaredIdentifier,
+    NormalFormalParameter,
+    VariableDeclarationList,
+  );
+
+  static final _isGenerator = _checkBit(
+    3,
+    FunctionExpression,
+    MethodDeclaration,
+  );
+
+  static final _isGet = _checkBit(
+    4,
+    FunctionDeclaration,
+    MethodDeclaration,
+  );
+
+  static final _isLate = _checkBit(
+    0,
+    VariableDeclarationList,
+  );
+
+  static final _isMap = _checkBit(
+    1,
+    TypedLiteral,
+  );
+
+  static final _isNew = _checkBit(
+    0,
+    InstanceCreationExpression,
+  );
+
+  static final _isOperator = _checkBit(
+    0,
+    MethodDeclaration,
+  );
+
+  static final _isRequired = _checkBit(
+    0,
+    NormalFormalParameter,
+  );
+
+  static final _isSet = _checkBit(
+    5,
+    FunctionDeclaration,
+    MethodDeclaration,
+    TypedLiteral,
+  );
+
+  static final _isStar = _checkBit(
+    0,
+    BlockFunctionBody,
+    YieldStatement,
+  );
+
+  static final _isStatic = _checkBit(
+    6,
+    FieldDeclaration,
+    MethodDeclaration,
+  );
+
+  static final _isStringInterpolationIdentifier = _checkBit(
+    0,
+    InterpolationExpression,
+  );
+
+  static final _isSync = _checkBit(
+    3,
+    BlockFunctionBody,
+    ExpressionFunctionBody,
+  );
+
+  static final _isVar = _checkBit(
+    1,
+    DeclaredIdentifier,
+    NormalFormalParameter,
+    VariableDeclarationList,
+  );
 
   static int encode({
+    bool hasAwait: false,
+    bool hasEqual: false,
     bool hasInitializer: false,
+    bool hasNot: false,
+    bool hasPeriod: false,
+    bool hasPeriod2: false,
+    bool hasQuestion: false,
+    bool hasSeparatorColon: false,
+    bool hasSeparatorEquals: false,
+    bool hasThis: false,
+    bool hasTypeArguments: false,
     bool isAbstract: false,
+    bool isAsync: false,
     bool isConst: false,
     bool isCovariant: false,
+    bool isDeclaration: false,
     bool isDeferred: false,
+    bool isDelimiterCurly: false,
+    bool isDelimiterSquare: false,
     bool isExternal: false,
     bool isFactory: false,
     bool isFinal: false,
+    bool isGenerator: false,
     bool isGet: false,
     bool isLate: false,
+    bool isMap: false,
     bool isNew: false,
+    bool isOperator: false,
+    bool isRequired: false,
     bool isSet: false,
+    bool isStar: false,
     bool isStatic: false,
+    bool isStringInterpolationIdentifier: false,
+    bool isSync: false,
     bool isVar: false,
   }) {
     var result = 0;
+    if (hasAwait) {
+      result |= _hasAwait;
+    }
+    if (hasEqual) {
+      result |= _hasEqual;
+    }
     if (hasInitializer) {
       result |= _hasInitializer;
     }
+    if (hasNot) {
+      result |= _hasNot;
+    }
+    if (hasPeriod) {
+      result |= _hasPeriod;
+    }
+    if (hasPeriod2) {
+      result |= _hasPeriod2;
+    }
+    if (hasQuestion) {
+      result |= _hasQuestion;
+    }
+    if (hasSeparatorColon) {
+      result |= _hasSeparatorColon;
+    }
+    if (hasSeparatorEquals) {
+      result |= _hasSeparatorEquals;
+    }
+    if (hasThis) {
+      result |= _hasThis;
+    }
+    if (hasTypeArguments) {
+      result |= _hasTypeArguments;
+    }
     if (isAbstract) {
       result |= _isAbstract;
     }
+    if (isAsync) {
+      result |= _isAsync;
+    }
     if (isCovariant) {
       result |= _isCovariant;
     }
+    if (isDeclaration) {
+      result |= _isDeclaration;
+    }
     if (isDeferred) {
       result |= _isDeferred;
     }
+    if (isDelimiterCurly) {
+      result |= _isDelimiterCurly;
+    }
+    if (isDelimiterSquare) {
+      result |= _isDelimiterSquare;
+    }
     if (isConst) {
       result |= _isConst;
     }
@@ -59,35 +317,100 @@
     if (isFinal) {
       result |= _isFinal;
     }
+    if (isGenerator) {
+      result |= _isGenerator;
+    }
     if (isGet) {
       result |= _isGet;
     }
     if (isLate) {
       result |= _isLate;
     }
+    if (isMap) {
+      result |= _isMap;
+    }
     if (isNew) {
       result |= _isNew;
     }
+    if (isOperator) {
+      result |= _isOperator;
+    }
+    if (isRequired) {
+      result |= _isRequired;
+    }
     if (isSet) {
       result |= _isSet;
     }
+    if (isStar) {
+      result |= _isStar;
+    }
     if (isStatic) {
       result |= _isStatic;
     }
+    if (isStringInterpolationIdentifier) {
+      result |= _isStringInterpolationIdentifier;
+    }
+    if (isSync) {
+      result |= _isSync;
+    }
     if (isVar) {
       result |= _isVar;
     }
     return result;
   }
 
+  static bool hasAwait(int flags) {
+    return (flags & _hasAwait) != 0;
+  }
+
+  static bool hasEqual(int flags) {
+    return (flags & _hasEqual) != 0;
+  }
+
   static bool hasInitializer(int flags) {
     return (flags & _hasInitializer) != 0;
   }
 
+  static bool hasNot(int flags) {
+    return (flags & _hasNot) != 0;
+  }
+
+  static bool hasPeriod(int flags) {
+    return (flags & _hasPeriod) != 0;
+  }
+
+  static bool hasPeriod2(int flags) {
+    return (flags & _hasPeriod2) != 0;
+  }
+
+  static bool hasQuestion(int flags) {
+    return (flags & _isStringInterpolationIdentifier) != 0;
+  }
+
+  static bool hasSeparatorColon(int flags) {
+    return (flags & _hasSeparatorColon) != 0;
+  }
+
+  static bool hasSeparatorEquals(int flags) {
+    return (flags & _hasSeparatorEquals) != 0;
+  }
+
+  static bool hasThis(int flags) {
+    return (flags & _hasThis) != 0;
+  }
+
+  static bool hasTypeArguments(int flags) {
+    return (flags & _hasTypeArguments) != 0;
+  }
+
   static bool isAbstract(int flags) {
     return (flags & _isAbstract) != 0;
   }
 
+  static bool isAsync(int flags) {
+    return (flags & _isAsync) != 0;
+  }
+
   static bool isConst(int flags) {
     return (flags & _isConst) != 0;
   }
@@ -96,10 +419,22 @@
     return (flags & _isCovariant) != 0;
   }
 
+  static bool isDeclaration(int flags) {
+    return (flags & _isDeclaration) != 0;
+  }
+
   static bool isDeferred(int flags) {
     return (flags & _isDeferred) != 0;
   }
 
+  static bool isDelimiterCurly(int flags) {
+    return (flags & _isDelimiterCurly) != 0;
+  }
+
+  static bool isDelimiterSquare(int flags) {
+    return (flags & _isDelimiterSquare) != 0;
+  }
+
   static bool isExternal(int flags) {
     return (flags & _isExternal) != 0;
   }
@@ -112,6 +447,10 @@
     return (flags & _isFinal) != 0;
   }
 
+  static bool isGenerator(int flags) {
+    return (flags & _isGenerator) != 0;
+  }
+
   static bool isGet(int flags) {
     return (flags & _isGet) != 0;
   }
@@ -120,19 +459,67 @@
     return (flags & _isLate) != 0;
   }
 
+  static bool isMap(int flags) {
+    return (flags & _isMap) != 0;
+  }
+
   static bool isNew(int flags) {
     return (flags & _isNew) != 0;
   }
 
+  static bool isOperator(int flags) {
+    return (flags & _isOperator) != 0;
+  }
+
+  static bool isRequired(int flags) {
+    return (flags & _isRequired) != 0;
+  }
+
   static bool isSet(int flags) {
     return (flags & _isSet) != 0;
   }
 
+  static bool isStar(int flags) {
+    return (flags & _isStar) != 0;
+  }
+
   static bool isStatic(int flags) {
     return (flags & _isStatic) != 0;
   }
 
+  static bool isStringInterpolationIdentifier(int flags) {
+    return (flags & _isStringInterpolationIdentifier) != 0;
+  }
+
+  static bool isSync(int flags) {
+    return (flags & _isSync) != 0;
+  }
+
   static bool isVar(int flags) {
     return (flags & _isVar) != 0;
   }
+
+  /// Check the bit for its uniqueness for the given types.
+  static int _checkBit(int shift, Type type1,
+      [Type type2, Type type3, Type type4, Type type5, Type type6]) {
+    _checkBit0(shift, type1);
+    _checkBit0(shift, type2);
+    _checkBit0(shift, type3);
+    _checkBit0(shift, type4);
+    _checkBit0(shift, type5);
+    _checkBit0(shift, type6);
+    return 1 << shift;
+  }
+
+  /// Check the bit for its uniqueness for the [type].
+  static void _checkBit0(int shift, Type type) {
+    if (type != null) {
+      var currentBits = _typeBits[type] ?? 0;
+      var bit = 1 << shift;
+      if ((currentBits & bit) != 0) {
+        throw StateError('1 << $shift is already used for $type');
+      }
+      _typeBits[type] = currentBits | bit;
+    }
+  }
 }
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
index a88687c..0725e93 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
@@ -41,6 +41,8 @@
 
   InterfaceType get _intType => _unitContext.typeProvider.intType;
 
+  DartType get _nullType => _unitContext.typeProvider.nullType;
+
   InterfaceType get _stringType => _unitContext.typeProvider.stringType;
 
   AstNode readNode(LinkedNode data) {
@@ -87,11 +89,6 @@
     return bundleContext.elementOfIndex(index);
   }
 
-  Token _getToken(int index) {
-    // TODO(scheglov) Remove as much as possible uses.
-    return TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, '');
-  }
-
   AdjacentStrings _read_adjacentStrings(LinkedNode data) {
     return astFactory.adjacentStrings(
       _readNodeList(data.adjacentStrings_strings),
@@ -100,9 +97,9 @@
 
   Annotation _read_annotation(LinkedNode data) {
     return astFactory.annotation(
-      _getToken(data.annotation_atSign),
+      _Tokens.AT,
       _readNode(data.annotation_name),
-      _getToken(data.annotation_period),
+      _Tokens.PERIOD,
       _readNode(data.annotation_constructorName),
       _readNode(data.annotation_arguments),
     )..element = _elementOfComponents(
@@ -113,47 +110,47 @@
 
   ArgumentList _read_argumentList(LinkedNode data) {
     return astFactory.argumentList(
-      _getToken(data.argumentList_leftParenthesis),
+      _Tokens.OPEN_PAREN,
       _readNodeList(data.argumentList_arguments),
-      _getToken(data.argumentList_rightParenthesis),
+      _Tokens.CLOSE_PAREN,
     );
   }
 
   AsExpression _read_asExpression(LinkedNode data) {
     return astFactory.asExpression(
       _readNode(data.asExpression_expression),
-      _getToken(data.asExpression_asOperator),
+      _Tokens.AS,
       _readNode(data.asExpression_type),
     )..staticType = _readType(data.expression_type);
   }
 
   AssertInitializer _read_assertInitializer(LinkedNode data) {
     return astFactory.assertInitializer(
-      _getToken(data.assertInitializer_assertKeyword),
-      _getToken(data.assertInitializer_leftParenthesis),
+      _Tokens.ASSERT,
+      _Tokens.OPEN_PAREN,
       _readNode(data.assertInitializer_condition),
-      _getToken(data.assertInitializer_comma),
+      _Tokens.COMMA,
       _readNode(data.assertInitializer_message),
-      _getToken(data.assertInitializer_rightParenthesis),
+      _Tokens.CLOSE_PAREN,
     );
   }
 
   AssertStatement _read_assertStatement(LinkedNode data) {
     return astFactory.assertStatement(
-      _getToken(data.assertStatement_assertKeyword),
-      _getToken(data.assertStatement_leftParenthesis),
+      _Tokens.AS,
+      _Tokens.OPEN_PAREN,
       _readNode(data.assertStatement_condition),
-      _getToken(data.assertStatement_comma),
+      _Tokens.COMMA,
       _readNode(data.assertStatement_message),
-      _getToken(data.assertStatement_rightParenthesis),
-      _getToken(data.assertStatement_semicolon),
+      _Tokens.CLOSE_PAREN,
+      _Tokens.SEMICOLON,
     );
   }
 
   AssignmentExpression _read_assignmentExpression(LinkedNode data) {
     return astFactory.assignmentExpression(
       _readNode(data.assignmentExpression_leftHandSide),
-      _getToken(data.assignmentExpression_operator),
+      _Tokens.fromType(data.assignmentExpression_operator),
       _readNode(data.assignmentExpression_rightHandSide),
     )
       ..staticElement = _elementOfComponents(
@@ -165,7 +162,7 @@
 
   AwaitExpression _read_awaitExpression(LinkedNode data) {
     return astFactory.awaitExpression(
-      _getToken(data.awaitExpression_awaitKeyword),
+      _Tokens.AWAIT,
       _readNode(data.awaitExpression_expression),
     )..staticType = _readType(data.expression_type);
   }
@@ -173,11 +170,7 @@
   BinaryExpression _read_binaryExpression(LinkedNode data) {
     return astFactory.binaryExpression(
       _readNode(data.binaryExpression_leftOperand),
-      TokenFactory.tokenFromType(
-        TokensContext.binaryToAstTokenType(
-          data.binaryExpression_operator,
-        ),
-      ),
+      _Tokens.fromType(data.binaryExpression_operator),
       _readNode(data.binaryExpression_rightOperand),
     )
       ..staticElement = _elementOfComponents(
@@ -189,9 +182,9 @@
 
   Block _read_block(LinkedNode data) {
     return astFactory.block(
-      _getToken(data.block_leftBracket),
+      _Tokens.OPEN_CURLY_BRACKET,
       _readNodeList(data.block_statements),
-      _getToken(data.block_rightBracket),
+      _Tokens.CLOSE_CURLY_BRACKET,
     );
   }
 
@@ -199,8 +192,13 @@
     timerAstBinaryReaderFunctionBody.start();
     try {
       return astFactory.blockFunctionBody(
-        _getToken(data.blockFunctionBody_keyword),
-        _getToken(data.blockFunctionBody_star),
+        _Tokens.choose(
+          AstBinaryFlags.isAsync(data.flags),
+          _Tokens.ASYNC,
+          AstBinaryFlags.isSync(data.flags),
+          _Tokens.SYNC,
+        ),
+        AstBinaryFlags.isStar(data.flags) ? _Tokens.STAR : null,
         _readNode(data.blockFunctionBody_block),
       );
     } finally {
@@ -215,9 +213,9 @@
 
   BreakStatement _read_breakStatement(LinkedNode data) {
     return astFactory.breakStatement(
-      _getToken(data.breakStatement_breakKeyword),
+      _Tokens.BREAK,
       _readNode(data.breakStatement_label),
-      _getToken(data.breakStatement_semicolon),
+      _Tokens.SEMICOLON,
     );
   }
 
@@ -229,15 +227,18 @@
   }
 
   CatchClause _read_catchClause(LinkedNode data) {
+    var exceptionType = _readNode(data.catchClause_exceptionType);
+    var exceptionParameter = _readNode(data.catchClause_exceptionParameter);
+    var stackTraceParameter = _readNode(data.catchClause_stackTraceParameter);
     return astFactory.catchClause(
-      _getToken(data.catchClause_onKeyword),
-      _readNode(data.catchClause_exceptionType),
-      _getToken(data.catchClause_catchKeyword),
-      _getToken(data.catchClause_leftParenthesis),
-      _readNode(data.catchClause_exceptionParameter),
-      _getToken(data.catchClause_comma),
-      _readNode(data.catchClause_stackTraceParameter),
-      _getToken(data.catchClause_rightParenthesis),
+      exceptionType != null ? _Tokens.ON : null,
+      exceptionType,
+      exceptionParameter != null ? _Tokens.CATCH : null,
+      exceptionParameter != null ? _Tokens.OPEN_PAREN : null,
+      exceptionParameter,
+      stackTraceParameter != null ? _Tokens.COMMA : null,
+      stackTraceParameter,
+      exceptionParameter != null ? _Tokens.CLOSE_PAREN : null,
       _readNode(data.catchClause_body),
     );
   }
@@ -248,18 +249,16 @@
       var node = astFactory.classDeclaration(
         _readNodeLazy(data.annotatedNode_comment),
         _readNodeListLazy(data.annotatedNode_metadata),
-        AstBinaryFlags.isAbstract(data.flags)
-            ? TokenFactory.tokenFromKeyword(Keyword.ABSTRACT)
-            : null,
-        TokenFactory.tokenFromKeyword(Keyword.CLASS),
+        AstBinaryFlags.isAbstract(data.flags) ? _Tokens.ABSTRACT : null,
+        _Tokens.CLASS,
         _declaredIdentifier(data),
         _readNode(data.classOrMixinDeclaration_typeParameters),
         _readNodeLazy(data.classDeclaration_extendsClause),
         _readNodeLazy(data.classDeclaration_withClause),
         _readNodeLazy(data.classOrMixinDeclaration_implementsClause),
-        _getToken(data.classOrMixinDeclaration_leftBracket),
+        _Tokens.OPEN_CURLY_BRACKET,
         _readNodeListLazy(data.classOrMixinDeclaration_members),
-        _getToken(data.classOrMixinDeclaration_rightBracket),
+        _Tokens.CLOSE_CURLY_BRACKET,
       );
       node.nativeClause = _readNodeLazy(data.classDeclaration_nativeClause);
       LazyClassDeclaration.setData(node, data);
@@ -275,17 +274,15 @@
       var node = astFactory.classTypeAlias(
         _readNodeLazy(data.annotatedNode_comment),
         _readNodeListLazy(data.annotatedNode_metadata),
-        _getToken(data.typeAlias_typedefKeyword),
+        _Tokens.CLASS,
         _declaredIdentifier(data),
         _readNode(data.classTypeAlias_typeParameters),
-        TokenFactory.tokenFromType(TokenType.EQ),
-        AstBinaryFlags.isAbstract(data.flags)
-            ? TokenFactory.tokenFromKeyword(Keyword.ABSTRACT)
-            : null,
+        _Tokens.EQ,
+        AstBinaryFlags.isAbstract(data.flags) ? _Tokens.ABSTRACT : null,
         _readNodeLazy(data.classTypeAlias_superclass),
         _readNodeLazy(data.classTypeAlias_withClause),
         _readNodeLazy(data.classTypeAlias_implementsClause),
-        _getToken(data.typeAlias_semicolon),
+        _Tokens.SEMICOLON,
       );
       LazyClassTypeAlias.setData(node, data);
       return node;
@@ -319,39 +316,39 @@
 
   CommentReference _read_commentReference(LinkedNode data) {
     return astFactory.commentReference(
-      _getToken(data.commentReference_newKeyword),
+      AstBinaryFlags.isNew(data.flags) ? _Tokens.NEW : null,
       _readNode(data.commentReference_identifier),
     );
   }
 
   CompilationUnit _read_compilationUnit(LinkedNode data) {
     return astFactory.compilationUnit2(
-        beginToken: _getToken(data.compilationUnit_beginToken),
+        beginToken: null,
         scriptTag: _readNode(data.compilationUnit_scriptTag),
         directives: _readNodeList(data.compilationUnit_directives),
         declarations: _readNodeList(data.compilationUnit_declarations),
-        endToken: _getToken(data.compilationUnit_endToken),
+        endToken: null,
         featureSet: null);
   }
 
   ConditionalExpression _read_conditionalExpression(LinkedNode data) {
     return astFactory.conditionalExpression(
       _readNode(data.conditionalExpression_condition),
-      _getToken(data.conditionalExpression_question),
+      _Tokens.QUESTION,
       _readNode(data.conditionalExpression_thenExpression),
-      _getToken(data.conditionalExpression_colon),
+      _Tokens.COLON,
       _readNode(data.conditionalExpression_elseExpression),
     )..staticType = _readType(data.expression_type);
   }
 
   Configuration _read_configuration(LinkedNode data) {
     return astFactory.configuration(
-      _getToken(data.configuration_ifKeyword),
-      _getToken(data.configuration_leftParenthesis),
+      _Tokens.IF,
+      _Tokens.OPEN_PAREN,
       _readNode(data.configuration_name),
-      _getToken(data.configuration_equalToken),
+      AstBinaryFlags.hasEqual(data.flags) ? _Tokens.EQ : null,
       _readNode(data.configuration_value),
-      _getToken(data.configuration_rightParenthesis),
+      _Tokens.CLOSE_PAREN,
       _readNode(data.configuration_uri),
     );
   }
@@ -360,20 +357,19 @@
     var node = astFactory.constructorDeclaration(
       _readNodeLazy(data.annotatedNode_comment),
       _readNodeListLazy(data.annotatedNode_metadata),
-      AstBinaryFlags.isExternal(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.EXTERNAL)
-          : null,
-      AstBinaryFlags.isConst(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.CONST)
-          : null,
-      AstBinaryFlags.isFactory(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.FACTORY)
-          : null,
+      AstBinaryFlags.isExternal(data.flags) ? _Tokens.EXTERNAL : null,
+      AstBinaryFlags.isConst(data.flags) ? _Tokens.CONST : null,
+      AstBinaryFlags.isFactory(data.flags) ? _Tokens.FACTORY : null,
       _readNode(data.constructorDeclaration_returnType),
-      _getToken(data.constructorDeclaration_period),
+      data.name.isNotEmpty ? _Tokens.PERIOD : null,
       _declaredIdentifier(data),
       _readNodeLazy(data.constructorDeclaration_parameters),
-      _getToken(data.constructorDeclaration_separator),
+      _Tokens.choose(
+        AstBinaryFlags.hasSeparatorColon(data.flags),
+        _Tokens.COLON,
+        AstBinaryFlags.hasSeparatorEquals(data.flags),
+        _Tokens.EQ,
+      ),
       _readNodeListLazy(data.constructorDeclaration_initializers),
       _readNodeLazy(data.constructorDeclaration_redirectedConstructor),
       _readNodeLazy(data.constructorDeclaration_body),
@@ -384,11 +380,12 @@
 
   ConstructorFieldInitializer _read_constructorFieldInitializer(
       LinkedNode data) {
+    var hasThis = AstBinaryFlags.hasThis(data.flags);
     return astFactory.constructorFieldInitializer(
-      _getToken(data.constructorFieldInitializer_thisKeyword),
-      _getToken(data.constructorFieldInitializer_period),
+      hasThis ? _Tokens.THIS : null,
+      hasThis ? _Tokens.PERIOD : null,
       _readNode(data.constructorFieldInitializer_fieldName),
-      _getToken(data.constructorFieldInitializer_equals),
+      _Tokens.EQ,
       _readNode(data.constructorFieldInitializer_expression),
     );
   }
@@ -396,7 +393,7 @@
   ConstructorName _read_constructorName(LinkedNode data) {
     return astFactory.constructorName(
       _readNode(data.constructorName_type),
-      _getToken(data.constructorName_period),
+      data.constructorName_name != null ? _Tokens.PERIOD : null,
       _readNode(data.constructorName_name),
     )..staticElement = _elementOfComponents(
         data.constructorName_element,
@@ -406,9 +403,9 @@
 
   ContinueStatement _read_continueStatement(LinkedNode data) {
     return astFactory.continueStatement(
-      _getToken(data.continueStatement_continueKeyword),
+      _Tokens.CONTINUE,
       _readNode(data.continueStatement_label),
-      _getToken(data.continueStatement_semicolon),
+      _Tokens.SEMICOLON,
     );
   }
 
@@ -416,7 +413,14 @@
     return astFactory.declaredIdentifier(
       _readNode(data.annotatedNode_comment),
       _readNodeList(data.annotatedNode_metadata),
-      _getToken(data.declaredIdentifier_keyword),
+      _Tokens.choose(
+        AstBinaryFlags.isConst(data.flags),
+        _Tokens.CONST,
+        AstBinaryFlags.isFinal(data.flags),
+        _Tokens.FINAL,
+        AstBinaryFlags.isVar(data.flags),
+        _Tokens.VAR,
+      ),
       _readNode(data.declaredIdentifier_type),
       _readNode(data.declaredIdentifier_identifier),
     );
@@ -426,7 +430,7 @@
     var node = astFactory.defaultFormalParameter(
       _readNode(data.defaultFormalParameter_parameter),
       _toParameterKind(data.defaultFormalParameter_kind),
-      _getToken(data.defaultFormalParameter_separator),
+      data.defaultFormalParameter_defaultValue != null ? _Tokens.COLON : null,
       _readNodeLazy(data.defaultFormalParameter_defaultValue),
     );
     LazyFormalParameter.setData(node, data);
@@ -435,13 +439,13 @@
 
   DoStatement _read_doStatement(LinkedNode data) {
     return astFactory.doStatement(
-      _getToken(data.doStatement_doKeyword),
+      _Tokens.DO,
       _readNode(data.doStatement_body),
-      _getToken(data.doStatement_whileKeyword),
-      _getToken(data.doStatement_leftParenthesis),
+      _Tokens.WHILE,
+      _Tokens.OPEN_PAREN,
       _readNode(data.doStatement_condition),
-      _getToken(data.doStatement_rightParenthesis),
-      _getToken(data.doStatement_semicolon),
+      _Tokens.CLOSE_PAREN,
+      _Tokens.SEMICOLON,
     );
   }
 
@@ -458,13 +462,13 @@
 
   EmptyFunctionBody _read_emptyFunctionBody(LinkedNode data) {
     return astFactory.emptyFunctionBody(
-      _getToken(data.emptyFunctionBody_semicolon),
+      _Tokens.SEMICOLON,
     );
   }
 
   EmptyStatement _read_emptyStatement(LinkedNode data) {
     return astFactory.emptyStatement(
-      _getToken(data.emptyStatement_semicolon),
+      _Tokens.SEMICOLON,
     );
   }
 
@@ -482,11 +486,11 @@
     var node = astFactory.enumDeclaration(
       _readNodeLazy(data.annotatedNode_comment),
       _readNodeListLazy(data.annotatedNode_metadata),
-      TokenFactory.tokenFromKeyword(Keyword.ENUM),
+      _Tokens.ENUM,
       _declaredIdentifier(data),
-      TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET),
+      _Tokens.OPEN_CURLY_BRACKET,
       _readNodeListLazy(data.enumDeclaration_constants),
-      TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET),
+      _Tokens.CLOSE_CURLY_BRACKET,
     );
     LazyEnumDeclaration.setData(node, data);
     return node;
@@ -498,11 +502,11 @@
       var node = astFactory.exportDirective(
         _readNode(data.annotatedNode_comment),
         _readNodeListLazy(data.annotatedNode_metadata),
-        _getToken(data.directive_keyword),
+        _Tokens.EXPORT,
         _readNode(data.uriBasedDirective_uri),
         _readNodeList(data.namespaceDirective_configurations),
         _readNodeList(data.namespaceDirective_combinators),
-        _getToken(data.directive_semicolon),
+        _Tokens.SEMICOLON,
       );
       LazyDirective.setData(node, data);
       return node;
@@ -515,10 +519,15 @@
     timerAstBinaryReaderFunctionBody.start();
     try {
       return astFactory.expressionFunctionBody(
-        _getToken(data.expressionFunctionBody_keyword),
-        _getToken(data.expressionFunctionBody_arrow),
+        _Tokens.choose(
+          AstBinaryFlags.isAsync(data.flags),
+          _Tokens.ASYNC,
+          AstBinaryFlags.isSync(data.flags),
+          _Tokens.SYNC,
+        ),
+        _Tokens.ARROW,
         _readNode(data.expressionFunctionBody_expression),
-        _getToken(data.expressionFunctionBody_semicolon),
+        _Tokens.SEMICOLON,
       );
     } finally {
       timerAstBinaryReaderFunctionBody.stop();
@@ -528,13 +537,13 @@
   ExpressionStatement _read_expressionStatement(LinkedNode data) {
     return astFactory.expressionStatement(
       _readNode(data.expressionStatement_expression),
-      _getToken(data.expressionStatement_semicolon),
+      _Tokens.SEMICOLON,
     );
   }
 
   ExtendsClause _read_extendsClause(LinkedNode data) {
     return astFactory.extendsClause(
-      _getToken(data.extendsClause_extendsKeyword),
+      _Tokens.EXTENDS,
       _readNode(data.extendsClause_superclass),
     );
   }
@@ -542,15 +551,13 @@
   FieldDeclaration _read_fieldDeclaration(LinkedNode data) {
     var node = astFactory.fieldDeclaration2(
       comment: _readNodeLazy(data.annotatedNode_comment),
-      covariantKeyword: AstBinaryFlags.isCovariant(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.COVARIANT)
-          : null,
+      covariantKeyword:
+          AstBinaryFlags.isCovariant(data.flags) ? _Tokens.COVARIANT : null,
       fieldList: _readNode(data.fieldDeclaration_fields),
       metadata: _readNodeListLazy(data.annotatedNode_metadata),
-      semicolon: _getToken(data.fieldDeclaration_semicolon),
-      staticKeyword: AstBinaryFlags.isStatic(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.STATIC)
-          : null,
+      semicolon: _Tokens.SEMICOLON,
+      staticKeyword:
+          AstBinaryFlags.isStatic(data.flags) ? _Tokens.STATIC : null,
     );
     LazyFieldDeclaration.setData(node, data);
     return node;
@@ -559,24 +566,25 @@
   FieldFormalParameter _read_fieldFormalParameter(LinkedNode data) {
     var node = astFactory.fieldFormalParameter2(
       identifier: _declaredIdentifier(data),
-      period: TokenFactory.tokenFromType(TokenType.PERIOD),
-      thisKeyword: _getToken(data.fieldFormalParameter_thisKeyword),
-      covariantKeyword: AstBinaryFlags.isCovariant(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.COVARIANT)
-          : null,
+      period: _Tokens.PERIOD,
+      thisKeyword: _Tokens.THIS,
+      covariantKeyword:
+          AstBinaryFlags.isCovariant(data.flags) ? _Tokens.COVARIANT : null,
       typeParameters: _readNode(data.fieldFormalParameter_typeParameters),
-      keyword: AstBinaryFlags.isConst(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.CONST)
-          : AstBinaryFlags.isFinal(data.flags)
-              ? TokenFactory.tokenFromKeyword(Keyword.FINAL)
-              : AstBinaryFlags.isVar(data.flags)
-                  ? TokenFactory.tokenFromKeyword(Keyword.VAR)
-                  : null,
+      keyword: _Tokens.choose(
+        AstBinaryFlags.isConst(data.flags),
+        _Tokens.CONST,
+        AstBinaryFlags.isFinal(data.flags),
+        _Tokens.FINAL,
+        AstBinaryFlags.isVar(data.flags),
+        _Tokens.VAR,
+      ),
       metadata: _readNodeList(data.normalFormalParameter_metadata),
       comment: _readNode(data.normalFormalParameter_comment),
       type: _readNode(data.fieldFormalParameter_type),
       parameters: _readNode(data.fieldFormalParameter_formalParameters),
-      requiredKeyword: _getToken(data.normalFormalParameter_requiredKeyword),
+      requiredKeyword:
+          AstBinaryFlags.isRequired(data.flags) ? _Tokens.REQUIRED : null,
     );
     LazyFormalParameter.setData(node, data);
     return node;
@@ -585,7 +593,7 @@
   ForEachPartsWithDeclaration _read_forEachPartsWithDeclaration(
       LinkedNode data) {
     return astFactory.forEachPartsWithDeclaration(
-      inKeyword: _getToken(data.forEachParts_inKeyword),
+      inKeyword: _Tokens.IN,
       iterable: _readNode(data.forEachParts_iterable),
       loopVariable: _readNode(data.forEachPartsWithDeclaration_loopVariable),
     );
@@ -593,7 +601,7 @@
 
   ForEachPartsWithIdentifier _read_forEachPartsWithIdentifier(LinkedNode data) {
     return astFactory.forEachPartsWithIdentifier(
-      inKeyword: _getToken(data.forEachParts_inKeyword),
+      inKeyword: _Tokens.IN,
       iterable: _readNode(data.forEachParts_iterable),
       identifier: _readNode(data.forEachPartsWithIdentifier_identifier),
     );
@@ -601,30 +609,40 @@
 
   ForElement _read_forElement(LinkedNode data) {
     return astFactory.forElement(
-      awaitKeyword: _getToken(data.forMixin_awaitKeyword),
+      awaitKeyword: AstBinaryFlags.hasAwait(data.flags) ? _Tokens.AWAIT : null,
       body: _readNode(data.forElement_body),
-      forKeyword: _getToken(data.forMixin_forKeyword),
+      forKeyword: _Tokens.FOR,
       forLoopParts: _readNode(data.forMixin_forLoopParts),
-      leftParenthesis: _getToken(data.forMixin_leftParenthesis),
-      rightParenthesis: _getToken(data.forMixin_rightParenthesis),
+      leftParenthesis: _Tokens.OPEN_PAREN,
+      rightParenthesis: _Tokens.CLOSE_PAREN,
     );
   }
 
   FormalParameterList _read_formalParameterList(LinkedNode data) {
     return astFactory.formalParameterList(
-      _getToken(data.formalParameterList_leftParenthesis),
+      _Tokens.OPEN_PAREN,
       _readNodeList(data.formalParameterList_parameters),
-      _getToken(data.formalParameterList_leftDelimiter),
-      _getToken(data.formalParameterList_rightDelimiter),
-      _getToken(data.formalParameterList_rightParenthesis),
+      _Tokens.choose(
+        AstBinaryFlags.isDelimiterCurly(data.flags),
+        _Tokens.OPEN_CURLY_BRACKET,
+        AstBinaryFlags.isDelimiterSquare(data.flags),
+        _Tokens.OPEN_SQUARE_BRACKET,
+      ),
+      _Tokens.choose(
+        AstBinaryFlags.isDelimiterCurly(data.flags),
+        _Tokens.CLOSE_CURLY_BRACKET,
+        AstBinaryFlags.isDelimiterSquare(data.flags),
+        _Tokens.CLOSE_SQUARE_BRACKET,
+      ),
+      _Tokens.CLOSE_PAREN,
     );
   }
 
   ForPartsWithDeclarations _read_forPartsWithDeclarations(LinkedNode data) {
     return astFactory.forPartsWithDeclarations(
       condition: _readNode(data.forParts_condition),
-      leftSeparator: _getToken(data.forParts_leftSeparator),
-      rightSeparator: _getToken(data.forParts_rightSeparator),
+      leftSeparator: _Tokens.SEMICOLON,
+      rightSeparator: _Tokens.SEMICOLON,
       updaters: _readNodeList(data.forParts_updaters),
       variables: _readNode(data.forPartsWithDeclarations_variables),
     );
@@ -634,19 +652,19 @@
     return astFactory.forPartsWithExpression(
       condition: _readNode(data.forParts_condition),
       initialization: _readNode(data.forPartsWithExpression_initialization),
-      leftSeparator: _getToken(data.forParts_leftSeparator),
-      rightSeparator: _getToken(data.forParts_rightSeparator),
+      leftSeparator: _Tokens.SEMICOLON,
+      rightSeparator: _Tokens.SEMICOLON,
       updaters: _readNodeList(data.forParts_updaters),
     );
   }
 
   ForStatement _read_forStatement(LinkedNode data) {
     return astFactory.forStatement(
-      awaitKeyword: _getToken(data.forMixin_awaitKeyword),
-      forKeyword: _getToken(data.forMixin_forKeyword),
-      leftParenthesis: _getToken(data.forMixin_leftParenthesis),
+      awaitKeyword: AstBinaryFlags.hasAwait(data.flags) ? _Tokens.AWAIT : null,
+      forKeyword: _Tokens.FOR,
+      leftParenthesis: _Tokens.OPEN_PAREN,
       forLoopParts: _readNode(data.forMixin_forLoopParts),
-      rightParenthesis: _getToken(data.forMixin_rightParenthesis),
+      rightParenthesis: _Tokens.CLOSE_PAREN,
       body: _readNode(data.forStatement_body),
     );
   }
@@ -657,15 +675,14 @@
       var node = astFactory.functionDeclaration(
         _readNodeLazy(data.annotatedNode_comment),
         _readNodeListLazy(data.annotatedNode_metadata),
-        AstBinaryFlags.isExternal(data.flags)
-            ? TokenFactory.tokenFromKeyword(Keyword.EXTERNAL)
-            : null,
+        AstBinaryFlags.isExternal(data.flags) ? _Tokens.EXTERNAL : null,
         _readNodeLazy(data.functionDeclaration_returnType),
-        AstBinaryFlags.isGet(data.flags)
-            ? TokenFactory.tokenFromKeyword(Keyword.GET)
-            : AstBinaryFlags.isSet(data.flags)
-                ? TokenFactory.tokenFromKeyword(Keyword.SET)
-                : null,
+        _Tokens.choose(
+          AstBinaryFlags.isGet(data.flags),
+          _Tokens.GET,
+          AstBinaryFlags.isSet(data.flags),
+          _Tokens.SET,
+        ),
         _declaredIdentifier(data),
         _readNodeLazy(data.functionDeclaration_functionExpression),
       );
@@ -706,12 +723,12 @@
     var node = astFactory.functionTypeAlias(
       _readNodeLazy(data.annotatedNode_comment),
       _readNodeListLazy(data.annotatedNode_metadata),
-      _getToken(data.typeAlias_typedefKeyword),
+      _Tokens.TYPEDEF,
       _readNodeLazy(data.functionTypeAlias_returnType),
       _declaredIdentifier(data),
       _readNode(data.functionTypeAlias_typeParameters),
       _readNodeLazy(data.functionTypeAlias_formalParameters),
-      _getToken(data.typeAlias_semicolon),
+      _Tokens.SEMICOLON,
     );
     LazyFunctionTypeAlias.setData(node, data);
     LazyFunctionTypeAlias.setHasSelfReference(
@@ -725,15 +742,15 @@
       LinkedNode data) {
     var node = astFactory.functionTypedFormalParameter2(
       comment: _readNodeLazy(data.normalFormalParameter_comment),
-      covariantKeyword: AstBinaryFlags.isCovariant(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.COVARIANT)
-          : null,
+      covariantKeyword:
+          AstBinaryFlags.isCovariant(data.flags) ? _Tokens.COVARIANT : null,
       identifier: _declaredIdentifier(data),
       metadata: _readNodeListLazy(data.normalFormalParameter_metadata),
       parameters: _readNodeLazy(
         data.functionTypedFormalParameter_formalParameters,
       ),
-      requiredKeyword: _getToken(data.normalFormalParameter_requiredKeyword),
+      requiredKeyword:
+          AstBinaryFlags.isRequired(data.flags) ? _Tokens.REQUIRED : null,
       returnType: _readNodeLazy(data.functionTypedFormalParameter_returnType),
       typeParameters: _readNode(
         data.functionTypedFormalParameter_typeParameters,
@@ -746,10 +763,11 @@
   GenericFunctionType _read_genericFunctionType(LinkedNode data) {
     GenericFunctionTypeImpl node = astFactory.genericFunctionType(
       _readNodeLazy(data.genericFunctionType_returnType),
-      _getToken(data.genericFunctionType_functionKeyword),
+      _Tokens.FUNCTION,
       _readNode(data.genericFunctionType_typeParameters),
       _readNodeLazy(data.genericFunctionType_formalParameters),
-      question: _getToken(data.genericFunctionType_question),
+      question:
+          AstBinaryFlags.hasQuestion(data.flags) ? _Tokens.QUESTION : null,
     );
     node.type = _readType(data.genericFunctionType_type);
     LazyGenericFunctionType.setData(node, data);
@@ -761,12 +779,12 @@
     var node = astFactory.genericTypeAlias(
       _readNodeLazy(data.annotatedNode_comment),
       _readNodeListLazy(data.annotatedNode_metadata),
-      _getToken(data.typeAlias_typedefKeyword),
+      _Tokens.TYPEDEF,
       _declaredIdentifier(data),
       _readNode(data.genericTypeAlias_typeParameters),
-      TokenFactory.tokenFromType(TokenType.EQ),
+      _Tokens.EQ,
       _readNodeLazy(data.genericTypeAlias_functionType),
-      _getToken(data.typeAlias_semicolon),
+      _Tokens.SEMICOLON,
     );
     LazyGenericTypeAlias.setData(node, data);
     LazyGenericTypeAlias.setHasSelfReference(
@@ -778,38 +796,40 @@
 
   HideCombinator _read_hideCombinator(LinkedNode data) {
     return astFactory.hideCombinator(
-      _getToken(data.combinator_keyword),
+      _Tokens.HIDE,
       data.names.map((name) => AstTestFactory.identifier3(name)).toList(),
     );
   }
 
   IfElement _read_ifElement(LinkedNode data) {
+    var elseElement = _readNode(data.ifElement_elseElement);
     return astFactory.ifElement(
       condition: _readNode(data.ifMixin_condition),
-      elseElement: _readNode(data.ifElement_elseElement),
-      elseKeyword: _getToken(data.ifMixin_elseKeyword),
-      ifKeyword: _getToken(data.ifMixin_ifKeyword),
-      leftParenthesis: _getToken(data.ifMixin_leftParenthesis),
-      rightParenthesis: _getToken(data.ifMixin_rightParenthesis),
+      elseElement: elseElement,
+      elseKeyword: elseElement != null ? _Tokens.ELSE : null,
+      ifKeyword: _Tokens.IF,
+      leftParenthesis: _Tokens.OPEN_PAREN,
+      rightParenthesis: _Tokens.CLOSE_PAREN,
       thenElement: _readNode(data.ifElement_thenElement),
     );
   }
 
   IfStatement _read_ifStatement(LinkedNode data) {
+    var elseStatement = _readNode(data.ifStatement_elseStatement);
     return astFactory.ifStatement(
-      _getToken(data.ifMixin_ifKeyword),
-      _getToken(data.ifMixin_leftParenthesis),
+      _Tokens.IF,
+      _Tokens.OPEN_PAREN,
       _readNode(data.ifMixin_condition),
-      _getToken(data.ifMixin_rightParenthesis),
+      _Tokens.CLOSE_PAREN,
       _readNode(data.ifStatement_thenStatement),
-      _getToken(data.ifMixin_elseKeyword),
-      _readNode(data.ifStatement_elseStatement),
+      elseStatement != null ? _Tokens.ELSE : null,
+      elseStatement,
     );
   }
 
   ImplementsClause _read_implementsClause(LinkedNode data) {
     return astFactory.implementsClause(
-      _getToken(data.implementsClause_implementsKeyword),
+      _Tokens.IMPLEMENTS,
       _readNodeList(data.implementsClause_interfaces),
     );
   }
@@ -828,16 +848,14 @@
       var node = astFactory.importDirective(
         _readNode(data.annotatedNode_comment),
         _readNodeListLazy(data.annotatedNode_metadata),
-        _getToken(data.directive_keyword),
+        _Tokens.IMPORT,
         _readNode(data.uriBasedDirective_uri),
         _readNodeList(data.namespaceDirective_configurations),
-        AstBinaryFlags.isDeferred(data.flags)
-            ? TokenFactory.tokenFromKeyword(Keyword.DEFERRED)
-            : null,
-        TokenFactory.tokenFromKeyword(Keyword.AS),
+        AstBinaryFlags.isDeferred(data.flags) ? _Tokens.DEFERRED : null,
+        _Tokens.AS,
         prefix,
         _readNodeList(data.namespaceDirective_combinators),
-        _getToken(data.directive_semicolon),
+        _Tokens.SEMICOLON,
       );
       LazyDirective.setData(node, data);
       return node;
@@ -849,11 +867,12 @@
   IndexExpression _read_indexExpression(LinkedNode data) {
     return astFactory.indexExpressionForTarget(
       _readNode(data.indexExpression_target),
-      _getToken(data.indexExpression_leftBracket),
+      _Tokens.OPEN_SQUARE_BRACKET,
       _readNode(data.indexExpression_index),
-      _getToken(data.indexExpression_rightBracket),
+      _Tokens.CLOSE_SQUARE_BRACKET,
     )
-      ..period = _getToken(data.indexExpression_period)
+      ..period =
+          AstBinaryFlags.hasPeriod(data.flags) ? _Tokens.PERIOD_PERIOD : null
       ..staticElement = _elementOfComponents(
         data.indexExpression_element,
         data.indexExpression_elementType,
@@ -863,13 +882,20 @@
 
   InstanceCreationExpression _read_instanceCreationExpression(LinkedNode data) {
     var node = astFactory.instanceCreationExpression(
-      AstBinaryFlags.isConst(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.CONST)
-          : AstBinaryFlags.isNew(data.flags)
-              ? TokenFactory.tokenFromKeyword(Keyword.NEW)
-              : null,
+      _Tokens.choose(
+        AstBinaryFlags.isConst(data.flags),
+        _Tokens.CONST,
+        AstBinaryFlags.isNew(data.flags),
+        _Tokens.NEW,
+      ),
       _readNode(data.instanceCreationExpression_constructorName),
-      _readNode(data.instanceCreationExpression_arguments),
+      astFactory.argumentList(
+        _Tokens.OPEN_PAREN,
+        _readNodeList(
+          data.instanceCreationExpression_arguments,
+        ),
+        _Tokens.CLOSE_PAREN,
+      ),
       typeArguments: _readNode(data.instanceCreationExpression_typeArguments),
     );
     node.staticElement = node.constructorName.staticElement;
@@ -883,16 +909,20 @@
   }
 
   InterpolationExpression _read_interpolationExpression(LinkedNode data) {
+    var isIdentifier =
+        AstBinaryFlags.isStringInterpolationIdentifier(data.flags);
     return astFactory.interpolationExpression(
-      _getToken(data.interpolationExpression_leftBracket),
+      isIdentifier
+          ? _Tokens.OPEN_CURLY_BRACKET
+          : _Tokens.STRING_INTERPOLATION_EXPRESSION,
       _readNode(data.interpolationExpression_expression),
-      _getToken(data.interpolationExpression_rightBracket),
+      isIdentifier ? null : _Tokens.CLOSE_CURLY_BRACKET,
     );
   }
 
   InterpolationString _read_interpolationString(LinkedNode data) {
     return astFactory.interpolationString(
-      _getToken(data.interpolationString_token),
+      TokenFactory.tokenFromString(data.interpolationString_value),
       data.interpolationString_value,
     );
   }
@@ -900,8 +930,8 @@
   IsExpression _read_isExpression(LinkedNode data) {
     return astFactory.isExpression(
       _readNode(data.isExpression_expression),
-      _getToken(data.isExpression_isOperator),
-      _getToken(data.isExpression_notOperator),
+      _Tokens.IS,
+      AstBinaryFlags.hasNot(data.flags) ? _Tokens.BANG : null,
       _readNode(data.isExpression_type),
     )..staticType = _boolType;
   }
@@ -909,7 +939,7 @@
   Label _read_label(LinkedNode data) {
     return astFactory.label(
       _readNode(data.label_label),
-      _getToken(data.label_colon),
+      _Tokens.COLON,
     );
   }
 
@@ -926,9 +956,9 @@
       var node = astFactory.libraryDirective(
         _readNode(data.annotatedNode_comment),
         _readNodeListLazy(data.annotatedNode_metadata),
-        _getToken(data.directive_keyword),
+        _Tokens.LIBRARY,
         _readNode(data.libraryDirective_name),
-        _getToken(data.directive_semicolon),
+        _Tokens.SEMICOLON,
       );
       LazyDirective.setData(node, data);
       return node;
@@ -945,20 +975,24 @@
 
   ListLiteral _read_listLiteral(LinkedNode data) {
     return astFactory.listLiteral(
-      AstBinaryFlags.isConst(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.CONST)
+      AstBinaryFlags.isConst(data.flags) ? _Tokens.CONST : null,
+      AstBinaryFlags.hasTypeArguments(data.flags)
+          ? astFactory.typeArgumentList(
+              _Tokens.LT,
+              _readNodeList(data.typedLiteral_typeArguments),
+              _Tokens.GT,
+            )
           : null,
-      _readNode(data.typedLiteral_typeArguments),
-      _getToken(data.listLiteral_leftBracket),
+      _Tokens.OPEN_SQUARE_BRACKET,
       _readNodeList(data.listLiteral_elements),
-      _getToken(data.listLiteral_rightBracket),
+      _Tokens.CLOSE_SQUARE_BRACKET,
     )..staticType = _readType(data.expression_type);
   }
 
   MapLiteralEntry _read_mapLiteralEntry(LinkedNode data) {
     return astFactory.mapLiteralEntry(
       _readNode(data.mapLiteralEntry_key),
-      _getToken(data.mapLiteralEntry_separator),
+      _Tokens.COLON,
       _readNode(data.mapLiteralEntry_value),
     );
   }
@@ -967,19 +1001,16 @@
     var node = astFactory.methodDeclaration(
       _readNodeLazy(data.annotatedNode_comment),
       _readNodeListLazy(data.annotatedNode_metadata),
-      AstBinaryFlags.isExternal(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.EXTERNAL)
-          : null,
-      AstBinaryFlags.isStatic(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.STATIC)
-          : null,
+      AstBinaryFlags.isExternal(data.flags) ? _Tokens.EXTERNAL : null,
+      AstBinaryFlags.isStatic(data.flags) ? _Tokens.STATIC : null,
       _readNodeLazy(data.methodDeclaration_returnType),
-      AstBinaryFlags.isGet(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.GET)
-          : AstBinaryFlags.isSet(data.flags)
-              ? TokenFactory.tokenFromKeyword(Keyword.SET)
-              : null,
-      _getToken(data.methodDeclaration_operatorKeyword),
+      _Tokens.choose(
+        AstBinaryFlags.isGet(data.flags),
+        _Tokens.GET,
+        AstBinaryFlags.isSet(data.flags),
+        _Tokens.SET,
+      ),
+      AstBinaryFlags.isOperator(data.flags) ? _Tokens.OPERATOR : null,
       _declaredIdentifier(data),
       _readNode(data.methodDeclaration_typeParameters),
       _readNodeLazy(data.methodDeclaration_formalParameters),
@@ -994,7 +1025,12 @@
   MethodInvocation _read_methodInvocation(LinkedNode data) {
     return astFactory.methodInvocation(
       _readNode(data.methodInvocation_target),
-      _getToken(data.methodInvocation_operator),
+      _Tokens.choose(
+        AstBinaryFlags.hasPeriod(data.flags),
+        _Tokens.PERIOD,
+        AstBinaryFlags.hasPeriod2(data.flags),
+        _Tokens.PERIOD_PERIOD,
+      ),
       _readNode(data.methodInvocation_methodName),
       _readNode(data.invocationExpression_typeArguments),
       _readNode(data.invocationExpression_arguments),
@@ -1007,14 +1043,14 @@
       var node = astFactory.mixinDeclaration(
         _readNodeLazy(data.annotatedNode_comment),
         _readNodeListLazy(data.annotatedNode_metadata),
-        _getToken(data.mixinDeclaration_mixinKeyword),
+        _Tokens.MIXIN,
         _declaredIdentifier(data),
         _readNode(data.classOrMixinDeclaration_typeParameters),
         _readNodeLazy(data.mixinDeclaration_onClause),
         _readNodeLazy(data.classOrMixinDeclaration_implementsClause),
-        _getToken(data.classOrMixinDeclaration_leftBracket),
+        _Tokens.OPEN_CURLY_BRACKET,
         _readNodeListLazy(data.classOrMixinDeclaration_members),
-        _getToken(data.classOrMixinDeclaration_rightBracket),
+        _Tokens.CLOSE_CURLY_BRACKET,
       );
       LazyMixinDeclaration(node, data);
       return node;
@@ -1033,37 +1069,37 @@
 
   NativeClause _read_nativeClause(LinkedNode data) {
     return astFactory.nativeClause(
-      _getToken(data.nativeClause_nativeKeyword),
+      _Tokens.NATIVE,
       _readNode(data.nativeClause_name),
     );
   }
 
   NativeFunctionBody _read_nativeFunctionBody(LinkedNode data) {
     return astFactory.nativeFunctionBody(
-      _getToken(data.nativeFunctionBody_nativeKeyword),
+      _Tokens.NATIVE,
       _readNode(data.nativeFunctionBody_stringLiteral),
-      _getToken(data.nativeFunctionBody_semicolon),
+      _Tokens.SEMICOLON,
     );
   }
 
   NullLiteral _read_nullLiteral(LinkedNode data) {
     return astFactory.nullLiteral(
-      _getToken(data.nullLiteral_literal),
-    )..staticType = _readType(data.expression_type);
+      _Tokens.NULL,
+    )..staticType = _nullType;
   }
 
   OnClause _read_onClause(LinkedNode data) {
     return astFactory.onClause(
-      _getToken(data.onClause_onKeyword),
+      _Tokens.ON,
       _readNodeList(data.onClause_superclassConstraints),
     );
   }
 
   ParenthesizedExpression _read_parenthesizedExpression(LinkedNode data) {
     return astFactory.parenthesizedExpression(
-      _getToken(data.parenthesizedExpression_leftParenthesis),
+      _Tokens.OPEN_PAREN,
       _readNode(data.parenthesizedExpression_expression),
-      _getToken(data.parenthesizedExpression_rightParenthesis),
+      _Tokens.CLOSE_PAREN,
     )..staticType = _readType(data.expression_type);
   }
 
@@ -1073,9 +1109,9 @@
       var node = astFactory.partDirective(
         _readNode(data.annotatedNode_comment),
         _readNodeListLazy(data.annotatedNode_metadata),
-        _getToken(data.directive_keyword),
+        _Tokens.PART,
         _readNode(data.uriBasedDirective_uri),
-        _getToken(data.directive_semicolon),
+        _Tokens.SEMICOLON,
       );
       LazyDirective.setData(node, data);
       return node;
@@ -1090,11 +1126,11 @@
       var node = astFactory.partOfDirective(
         _readNode(data.annotatedNode_comment),
         _readNodeListLazy(data.annotatedNode_metadata),
-        _getToken(data.directive_keyword),
-        _getToken(data.partOfDirective_ofKeyword),
+        _Tokens.PART,
+        _Tokens.OF,
         _readNode(data.partOfDirective_uri),
         _readNode(data.partOfDirective_libraryName),
-        _getToken(data.directive_semicolon),
+        _Tokens.SEMICOLON,
       );
       LazyDirective.setData(node, data);
       return node;
@@ -1106,7 +1142,7 @@
   PostfixExpression _read_postfixExpression(LinkedNode data) {
     return astFactory.postfixExpression(
       _readNode(data.postfixExpression_operand),
-      _getToken(data.postfixExpression_operator),
+      _Tokens.fromType(data.postfixExpression_operator),
     )
       ..staticElement = _elementOfComponents(
         data.postfixExpression_element,
@@ -1118,18 +1154,14 @@
   PrefixedIdentifier _read_prefixedIdentifier(LinkedNode data) {
     return astFactory.prefixedIdentifier(
       _readNode(data.prefixedIdentifier_prefix),
-      _getToken(data.prefixedIdentifier_period),
+      _Tokens.PERIOD,
       _readNode(data.prefixedIdentifier_identifier),
     )..staticType = _readType(data.expression_type);
   }
 
   PrefixExpression _read_prefixExpression(LinkedNode data) {
     return astFactory.prefixExpression(
-      TokenFactory.tokenFromType(
-        TokensContext.binaryToAstTokenType(
-          data.prefixExpression_operator,
-        ),
-      ),
+      _Tokens.fromType(data.prefixExpression_operator),
       _readNode(data.prefixExpression_operand),
     )
       ..staticElement = _elementOfComponents(
@@ -1142,16 +1174,17 @@
   PropertyAccess _read_propertyAccess(LinkedNode data) {
     return astFactory.propertyAccess(
       _readNode(data.propertyAccess_target),
-      _getToken(data.propertyAccess_operator),
+      _Tokens.fromType(data.propertyAccess_operator),
       _readNode(data.propertyAccess_propertyName),
     )..staticType = _readType(data.expression_type);
   }
 
   RedirectingConstructorInvocation _read_redirectingConstructorInvocation(
       LinkedNode data) {
+    var hasThis = AstBinaryFlags.hasThis(data.flags);
     return astFactory.redirectingConstructorInvocation(
-      _getToken(data.redirectingConstructorInvocation_thisKeyword),
-      _getToken(data.redirectingConstructorInvocation_period),
+      hasThis ? _Tokens.THIS : null,
+      hasThis ? _Tokens.PERIOD : null,
       _readNode(data.redirectingConstructorInvocation_constructorName),
       _readNode(data.redirectingConstructorInvocation_arguments),
     )..staticElement = _elementOfComponents(
@@ -1162,37 +1195,35 @@
 
   RethrowExpression _read_rethrowExpression(LinkedNode data) {
     return astFactory.rethrowExpression(
-      _getToken(data.rethrowExpression_rethrowKeyword),
+      _Tokens.RETHROW,
     )..staticType = _readType(data.expression_type);
   }
 
   ReturnStatement _read_returnStatement(LinkedNode data) {
     return astFactory.returnStatement(
-      _getToken(data.returnStatement_returnKeyword),
+      _Tokens.RETURN,
       _readNode(data.returnStatement_expression),
-      _getToken(data.returnStatement_semicolon),
-    );
-  }
-
-  ScriptTag _read_scriptTag(LinkedNode data) {
-    return astFactory.scriptTag(
-      _getToken(data.scriptTag_scriptTag),
+      _Tokens.SEMICOLON,
     );
   }
 
   SetOrMapLiteral _read_setOrMapLiteral(LinkedNode data) {
     SetOrMapLiteralImpl node = astFactory.setOrMapLiteral(
-      constKeyword: AstBinaryFlags.isConst(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.CONST)
-          : null,
+      constKeyword: AstBinaryFlags.isConst(data.flags) ? _Tokens.CONST : null,
       elements: _readNodeList(data.setOrMapLiteral_elements),
-      leftBracket: _getToken(data.setOrMapLiteral_leftBracket),
-      typeArguments: _readNode(data.typedLiteral_typeArguments),
-      rightBracket: _getToken(data.setOrMapLiteral_rightBracket),
+      leftBracket: _Tokens.OPEN_CURLY_BRACKET,
+      typeArguments: AstBinaryFlags.hasTypeArguments(data.flags)
+          ? astFactory.typeArgumentList(
+              _Tokens.LT,
+              _readNodeList(data.typedLiteral_typeArguments),
+              _Tokens.GT,
+            )
+          : null,
+      rightBracket: _Tokens.CLOSE_CURLY_BRACKET,
     )..staticType = _readType(data.expression_type);
-    if (data.setOrMapLiteral_isMap) {
+    if (AstBinaryFlags.isMap(data.flags)) {
       node.becomeMap();
-    } else if (data.setOrMapLiteral_isSet) {
+    } else if (AstBinaryFlags.isSet(data.flags)) {
       node.becomeSet();
     }
     return node;
@@ -1200,7 +1231,7 @@
 
   ShowCombinator _read_showCombinator(LinkedNode data) {
     return astFactory.showCombinator(
-      _getToken(data.combinator_keyword),
+      _Tokens.SHOW,
       data.names.map((name) => AstTestFactory.identifier3(name)).toList(),
     );
   }
@@ -1209,19 +1240,20 @@
     SimpleFormalParameterImpl node = astFactory.simpleFormalParameter2(
       identifier: _declaredIdentifier(data),
       type: _readNode(data.simpleFormalParameter_type),
-      covariantKeyword: AstBinaryFlags.isCovariant(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.COVARIANT)
-          : null,
+      covariantKeyword:
+          AstBinaryFlags.isCovariant(data.flags) ? _Tokens.COVARIANT : null,
       comment: _readNode(data.normalFormalParameter_comment),
       metadata: _readNodeList(data.normalFormalParameter_metadata),
-      keyword: AstBinaryFlags.isConst(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.CONST)
-          : AstBinaryFlags.isFinal(data.flags)
-              ? TokenFactory.tokenFromKeyword(Keyword.FINAL)
-              : AstBinaryFlags.isVar(data.flags)
-                  ? TokenFactory.tokenFromKeyword(Keyword.VAR)
-                  : null,
-      requiredKeyword: _getToken(data.normalFormalParameter_requiredKeyword),
+      keyword: _Tokens.choose(
+        AstBinaryFlags.isConst(data.flags),
+        _Tokens.CONST,
+        AstBinaryFlags.isFinal(data.flags),
+        _Tokens.FINAL,
+        AstBinaryFlags.isVar(data.flags),
+        _Tokens.VAR,
+      ),
+      requiredKeyword:
+          AstBinaryFlags.isRequired(data.flags) ? _Tokens.REQUIRED : null,
     );
     LazyFormalParameter.setData(node, data);
     LazyAst.setInheritsCovariant(node, data.inheritsCovariant);
@@ -1231,7 +1263,7 @@
   SimpleIdentifier _read_simpleIdentifier(LinkedNode data) {
     return astFactory.simpleIdentifier(
       TokenFactory.tokenFromString(data.name),
-      isDeclaration: data.simpleIdentifier_isDeclaration,
+      isDeclaration: AstBinaryFlags.isDeclaration(data.flags),
     )
       ..staticElement = _elementOfComponents(
         data.simpleIdentifier_element,
@@ -1249,11 +1281,7 @@
 
   SpreadElement _read_spreadElement(LinkedNode data) {
     return astFactory.spreadElement(
-      spreadOperator: TokenFactory.tokenFromType(
-        TokensContext.binaryToAstTokenType(
-          data.spreadElement_spreadOperator2,
-        ),
-      ),
+      spreadOperator: _Tokens.fromType(data.spreadElement_spreadOperator),
       expression: _readNode(data.spreadElement_expression),
     );
   }
@@ -1266,8 +1294,8 @@
 
   SuperConstructorInvocation _read_superConstructorInvocation(LinkedNode data) {
     return astFactory.superConstructorInvocation(
-      _getToken(data.superConstructorInvocation_superKeyword),
-      _getToken(data.superConstructorInvocation_period),
+      _Tokens.SUPER,
+      _Tokens.PERIOD,
       _readNode(data.superConstructorInvocation_constructorName),
       _readNode(data.superConstructorInvocation_arguments),
     )..staticElement = _elementOfComponents(
@@ -1278,16 +1306,16 @@
 
   SuperExpression _read_superExpression(LinkedNode data) {
     return astFactory.superExpression(
-      _getToken(data.superExpression_superKeyword),
+      _Tokens.SUPER,
     )..staticType = _readType(data.expression_type);
   }
 
   SwitchCase _read_switchCase(LinkedNode data) {
     return astFactory.switchCase(
       _readNodeList(data.switchMember_labels),
-      _getToken(data.switchMember_keyword),
+      _Tokens.CASE,
       _readNode(data.switchCase_expression),
-      _getToken(data.switchMember_colon),
+      _Tokens.COLON,
       _readNodeList(data.switchMember_statements),
     );
   }
@@ -1295,40 +1323,40 @@
   SwitchDefault _read_switchDefault(LinkedNode data) {
     return astFactory.switchDefault(
       _readNodeList(data.switchMember_labels),
-      _getToken(data.switchMember_keyword),
-      _getToken(data.switchMember_colon),
+      _Tokens.DEFAULT,
+      _Tokens.COLON,
       _readNodeList(data.switchMember_statements),
     );
   }
 
   SwitchStatement _read_switchStatement(LinkedNode data) {
     return astFactory.switchStatement(
-      _getToken(data.switchStatement_switchKeyword),
-      _getToken(data.switchStatement_leftParenthesis),
+      _Tokens.SWITCH,
+      _Tokens.OPEN_PAREN,
       _readNode(data.switchStatement_expression),
-      _getToken(data.switchStatement_rightParenthesis),
-      _getToken(data.switchStatement_leftBracket),
+      _Tokens.CLOSE_PAREN,
+      _Tokens.OPEN_CURLY_BRACKET,
       _readNodeList(data.switchStatement_members),
-      _getToken(data.switchStatement_rightBracket),
+      _Tokens.CLOSE_CURLY_BRACKET,
     );
   }
 
   SymbolLiteral _read_symbolLiteral(LinkedNode data) {
     return astFactory.symbolLiteral(
-      _getToken(data.symbolLiteral_poundSign),
+      _Tokens.HASH,
       data.names.map((lexeme) => TokenFactory.tokenFromString(lexeme)).toList(),
     )..staticType = _readType(data.expression_type);
   }
 
   ThisExpression _read_thisExpression(LinkedNode data) {
     return astFactory.thisExpression(
-      _getToken(data.thisExpression_thisKeyword),
+      _Tokens.THIS,
     )..staticType = _readType(data.expression_type);
   }
 
   ThrowExpression _read_throwExpression(LinkedNode data) {
     return astFactory.throwExpression(
-      _getToken(data.throwExpression_throwKeyword),
+      _Tokens.THROW,
       _readNode(data.throwExpression_expression),
     )..staticType = _readType(data.expression_type);
   }
@@ -1341,7 +1369,7 @@
         _readNodeLazy(data.annotatedNode_comment),
         _readNodeListLazy(data.annotatedNode_metadata),
         _readNode(data.topLevelVariableDeclaration_variableList),
-        _getToken(data.topLevelVariableDeclaration_semicolon),
+        _Tokens.SEMICOLON,
       );
       LazyTopLevelVariableDeclaration.setData(node, data);
       return node;
@@ -1352,27 +1380,34 @@
 
   TryStatement _read_tryStatement(LinkedNode data) {
     return astFactory.tryStatement(
-      _getToken(data.tryStatement_tryKeyword),
+      _Tokens.TRY,
       _readNode(data.tryStatement_body),
       _readNodeList(data.tryStatement_catchClauses),
-      _getToken(data.tryStatement_finallyKeyword),
+      _Tokens.FINALLY,
       _readNode(data.tryStatement_finallyBlock),
     );
   }
 
   TypeArgumentList _read_typeArgumentList(LinkedNode data) {
     return astFactory.typeArgumentList(
-      _getToken(data.typeArgumentList_leftBracket),
+      _Tokens.LT,
       _readNodeList(data.typeArgumentList_arguments),
-      _getToken(data.typeArgumentList_rightBracket),
+      _Tokens.GT,
     );
   }
 
   TypeName _read_typeName(LinkedNode data) {
     return astFactory.typeName(
       _readNode(data.typeName_name),
-      _readNode(data.typeName_typeArguments),
-      question: _getToken(data.typeName_question),
+      AstBinaryFlags.hasTypeArguments(data.flags)
+          ? astFactory.typeArgumentList(
+              _Tokens.LT,
+              _readNodeList(data.typeName_typeArguments),
+              _Tokens.GT,
+            )
+          : null,
+      question:
+          AstBinaryFlags.hasQuestion(data.flags) ? _Tokens.QUESTION : null,
     )..type = _readType(data.typeName_type);
   }
 
@@ -1381,7 +1416,7 @@
       _readNodeLazy(data.annotatedNode_comment),
       _readNodeListLazy(data.annotatedNode_metadata),
       _declaredIdentifier(data),
-      _getToken(data.typeParameter_extendsKeyword),
+      _Tokens.EXTENDS,
       _readNodeLazy(data.typeParameter_bound),
     );
     LazyTypeParameter.setData(node, data);
@@ -1390,16 +1425,16 @@
 
   TypeParameterList _read_typeParameterList(LinkedNode data) {
     return astFactory.typeParameterList(
-      _getToken(data.typeParameterList_leftBracket),
+      _Tokens.LT,
       _readNodeList(data.typeParameterList_typeParameters),
-      _getToken(data.typeParameterList_rightBracket),
+      _Tokens.GT,
     );
   }
 
   VariableDeclaration _read_variableDeclaration(LinkedNode data) {
     var node = astFactory.variableDeclaration(
       _declaredIdentifier(data),
-      _getToken(data.variableDeclaration_equals),
+      _Tokens.EQ,
       _readNodeLazy(data.variableDeclaration_initializer),
     );
     LazyVariableDeclaration.setData(node, data);
@@ -1410,16 +1445,15 @@
   VariableDeclarationList _read_variableDeclarationList(LinkedNode data) {
     var node = astFactory.variableDeclarationList2(
       comment: _readNodeLazy(data.annotatedNode_comment),
-      keyword: AstBinaryFlags.isConst(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.CONST)
-          : AstBinaryFlags.isFinal(data.flags)
-              ? TokenFactory.tokenFromKeyword(Keyword.FINAL)
-              : AstBinaryFlags.isVar(data.flags)
-                  ? TokenFactory.tokenFromKeyword(Keyword.VAR)
-                  : null,
-      lateKeyword: AstBinaryFlags.isLate(data.flags)
-          ? TokenFactory.tokenFromKeyword(Keyword.LATE)
-          : null,
+      keyword: _Tokens.choose(
+        AstBinaryFlags.isConst(data.flags),
+        _Tokens.CONST,
+        AstBinaryFlags.isFinal(data.flags),
+        _Tokens.FINAL,
+        AstBinaryFlags.isVar(data.flags),
+        _Tokens.VAR,
+      ),
+      lateKeyword: AstBinaryFlags.isLate(data.flags) ? _Tokens.LATE : null,
       metadata: _readNodeListLazy(data.annotatedNode_metadata),
       type: _readNodeLazy(data.variableDeclarationList_type),
       variables: _readNodeList(data.variableDeclarationList_variables),
@@ -1432,33 +1466,33 @@
       LinkedNode data) {
     return astFactory.variableDeclarationStatement(
       _readNode(data.variableDeclarationStatement_variables),
-      _getToken(data.variableDeclarationStatement_semicolon),
+      _Tokens.SEMICOLON,
     );
   }
 
   WhileStatement _read_whileStatement(LinkedNode data) {
     return astFactory.whileStatement(
-      _getToken(data.whileStatement_whileKeyword),
-      _getToken(data.whileStatement_leftParenthesis),
+      _Tokens.WHILE,
+      _Tokens.OPEN_PAREN,
       _readNode(data.whileStatement_condition),
-      _getToken(data.whileStatement_rightParenthesis),
+      _Tokens.CLOSE_PAREN,
       _readNode(data.whileStatement_body),
     );
   }
 
   WithClause _read_withClause(LinkedNode data) {
     return astFactory.withClause(
-      _getToken(data.withClause_withKeyword),
+      _Tokens.WITH,
       _readNodeList(data.withClause_mixinTypes),
     );
   }
 
   YieldStatement _read_yieldStatement(LinkedNode data) {
     return astFactory.yieldStatement(
-      _getToken(data.yieldStatement_yieldKeyword),
-      _getToken(data.yieldStatement_star),
+      _Tokens.YIELD,
+      AstBinaryFlags.isStar(data.flags) ? _Tokens.STAR : null,
       _readNode(data.yieldStatement_expression),
-      _getToken(data.yieldStatement_semicolon),
+      _Tokens.SEMICOLON,
     );
   }
 
@@ -1648,8 +1682,6 @@
         return _read_rethrowExpression(data);
       case LinkedNodeKind.returnStatement:
         return _read_returnStatement(data);
-      case LinkedNodeKind.scriptTag:
-        return _read_scriptTag(data);
       case LinkedNodeKind.setOrMapLiteral:
         return _read_setOrMapLiteral(data);
       case LinkedNodeKind.showCombinator:
@@ -1751,3 +1783,106 @@
     }
   }
 }
+
+class _Tokens {
+  static final ABSTRACT = TokenFactory.tokenFromKeyword(Keyword.ABSTRACT);
+  static final ARROW = TokenFactory.tokenFromType(TokenType.FUNCTION);
+  static final AS = TokenFactory.tokenFromKeyword(Keyword.AS);
+  static final ASSERT = TokenFactory.tokenFromKeyword(Keyword.ASSERT);
+  static final AT = TokenFactory.tokenFromType(TokenType.AT);
+  static final ASYNC = TokenFactory.tokenFromKeyword(Keyword.ASYNC);
+  static final AWAIT = TokenFactory.tokenFromKeyword(Keyword.AWAIT);
+  static final BANG = TokenFactory.tokenFromType(TokenType.BANG);
+  static final BREAK = TokenFactory.tokenFromKeyword(Keyword.BREAK);
+  static final CASE = TokenFactory.tokenFromKeyword(Keyword.CASE);
+  static final CATCH = TokenFactory.tokenFromKeyword(Keyword.CATCH);
+  static final CLASS = TokenFactory.tokenFromKeyword(Keyword.CLASS);
+  static final CLOSE_CURLY_BRACKET =
+      TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET);
+  static final CLOSE_PAREN = TokenFactory.tokenFromType(TokenType.CLOSE_PAREN);
+  static final CLOSE_SQUARE_BRACKET =
+      TokenFactory.tokenFromType(TokenType.CLOSE_SQUARE_BRACKET);
+  static final COLON = TokenFactory.tokenFromType(TokenType.COLON);
+  static final COMMA = TokenFactory.tokenFromType(TokenType.COMMA);
+  static final CONST = TokenFactory.tokenFromKeyword(Keyword.CONST);
+  static final CONTINUE = TokenFactory.tokenFromKeyword(Keyword.CONTINUE);
+  static final COVARIANT = TokenFactory.tokenFromKeyword(Keyword.COVARIANT);
+  static final DEFERRED = TokenFactory.tokenFromKeyword(Keyword.DEFERRED);
+  static final ELSE = TokenFactory.tokenFromKeyword(Keyword.ELSE);
+  static final EXTERNAL = TokenFactory.tokenFromKeyword(Keyword.EXTERNAL);
+  static final FACTORY = TokenFactory.tokenFromKeyword(Keyword.FACTORY);
+  static final DEFAULT = TokenFactory.tokenFromKeyword(Keyword.DEFAULT);
+  static final DO = TokenFactory.tokenFromKeyword(Keyword.DO);
+  static final ENUM = TokenFactory.tokenFromKeyword(Keyword.ENUM);
+  static final EQ = TokenFactory.tokenFromType(TokenType.EQ);
+  static final EXPORT = TokenFactory.tokenFromKeyword(Keyword.EXPORT);
+  static final EXTENDS = TokenFactory.tokenFromKeyword(Keyword.EXTENDS);
+  static final FINAL = TokenFactory.tokenFromKeyword(Keyword.FINAL);
+  static final FINALLY = TokenFactory.tokenFromKeyword(Keyword.FINALLY);
+  static final FOR = TokenFactory.tokenFromKeyword(Keyword.FOR);
+  static final FUNCTION = TokenFactory.tokenFromKeyword(Keyword.FUNCTION);
+  static final GET = TokenFactory.tokenFromKeyword(Keyword.GET);
+  static final GT = TokenFactory.tokenFromType(TokenType.GT);
+  static final HASH = TokenFactory.tokenFromType(TokenType.HASH);
+  static final HIDE = TokenFactory.tokenFromKeyword(Keyword.HIDE);
+  static final IF = TokenFactory.tokenFromKeyword(Keyword.IF);
+  static final IMPLEMENTS = TokenFactory.tokenFromKeyword(Keyword.IMPORT);
+  static final IMPORT = TokenFactory.tokenFromKeyword(Keyword.IMPLEMENTS);
+  static final IN = TokenFactory.tokenFromKeyword(Keyword.IN);
+  static final IS = TokenFactory.tokenFromKeyword(Keyword.IS);
+  static final LATE = TokenFactory.tokenFromKeyword(Keyword.LATE);
+  static final LIBRARY = TokenFactory.tokenFromKeyword(Keyword.LIBRARY);
+  static final LT = TokenFactory.tokenFromType(TokenType.LT);
+  static final MIXIN = TokenFactory.tokenFromKeyword(Keyword.MIXIN);
+  static final NATIVE = TokenFactory.tokenFromKeyword(Keyword.NATIVE);
+  static final NEW = TokenFactory.tokenFromKeyword(Keyword.NEW);
+  static final NULL = TokenFactory.tokenFromKeyword(Keyword.NULL);
+  static final OF = TokenFactory.tokenFromKeyword(Keyword.OF);
+  static final ON = TokenFactory.tokenFromKeyword(Keyword.ON);
+  static final OPEN_CURLY_BRACKET =
+      TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET);
+  static final OPEN_PAREN = TokenFactory.tokenFromType(TokenType.OPEN_PAREN);
+  static final OPEN_SQUARE_BRACKET =
+      TokenFactory.tokenFromType(TokenType.OPEN_SQUARE_BRACKET);
+  static final OPERATOR = TokenFactory.tokenFromKeyword(Keyword.OPERATOR);
+  static final PART = TokenFactory.tokenFromKeyword(Keyword.PART);
+  static final PERIOD = TokenFactory.tokenFromType(TokenType.PERIOD);
+  static final PERIOD_PERIOD =
+      TokenFactory.tokenFromType(TokenType.PERIOD_PERIOD);
+  static final QUESTION = TokenFactory.tokenFromType(TokenType.QUESTION);
+  static final REQUIRED = TokenFactory.tokenFromKeyword(Keyword.REQUIRED);
+  static final RETHROW = TokenFactory.tokenFromKeyword(Keyword.RETHROW);
+  static final RETURN = TokenFactory.tokenFromKeyword(Keyword.RETURN);
+  static final SEMICOLON = TokenFactory.tokenFromType(TokenType.SEMICOLON);
+  static final SET = TokenFactory.tokenFromKeyword(Keyword.SET);
+  static final SHOW = TokenFactory.tokenFromKeyword(Keyword.SHOW);
+  static final STAR = TokenFactory.tokenFromType(TokenType.STAR);
+  static final STATIC = TokenFactory.tokenFromKeyword(Keyword.STATIC);
+  static final STRING_INTERPOLATION_EXPRESSION =
+      TokenFactory.tokenFromType(TokenType.STRING_INTERPOLATION_EXPRESSION);
+  static final SUPER = TokenFactory.tokenFromKeyword(Keyword.SUPER);
+  static final SWITCH = TokenFactory.tokenFromKeyword(Keyword.SWITCH);
+  static final SYNC = TokenFactory.tokenFromKeyword(Keyword.SYNC);
+  static final THIS = TokenFactory.tokenFromKeyword(Keyword.THIS);
+  static final THROW = TokenFactory.tokenFromKeyword(Keyword.THROW);
+  static final TRY = TokenFactory.tokenFromKeyword(Keyword.TRY);
+  static final TYPEDEF = TokenFactory.tokenFromKeyword(Keyword.TYPEDEF);
+  static final VAR = TokenFactory.tokenFromKeyword(Keyword.VAR);
+  static final WITH = TokenFactory.tokenFromKeyword(Keyword.WITH);
+  static final WHILE = TokenFactory.tokenFromKeyword(Keyword.WHILE);
+  static final YIELD = TokenFactory.tokenFromKeyword(Keyword.YIELD);
+
+  static Token choose(bool if1, Token then1, bool if2, Token then2,
+      [bool if3, Token then3]) {
+    if (if1) return then1;
+    if (if2) return then2;
+    if (if2 == true) return then3;
+    return null;
+  }
+
+  static Token fromType(UnlinkedTokenType type) {
+    return TokenFactory.tokenFromType(
+      TokensContext.binaryToAstTokenType(type),
+    );
+  }
+}
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
index eb63f6d..e766a07 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
@@ -47,12 +47,10 @@
     var elementComponents = _componentsOfElement(node.element);
     return LinkedNodeBuilder.annotation(
       annotation_arguments: node.arguments?.accept(this),
-      annotation_atSign: _getToken(node.atSign),
       annotation_constructorName: node.constructorName?.accept(this),
       annotation_element: elementComponents.rawElement,
       annotation_elementType: elementComponents.definingType,
       annotation_name: node.name?.accept(this),
-      annotation_period: _getToken(node.period),
     );
   }
 
@@ -60,15 +58,12 @@
   LinkedNodeBuilder visitArgumentList(ArgumentList node) {
     return LinkedNodeBuilder.argumentList(
       argumentList_arguments: _writeNodeList(node.arguments),
-      argumentList_leftParenthesis: _getToken(node.leftParenthesis),
-      argumentList_rightParenthesis: _getToken(node.rightParenthesis),
     );
   }
 
   @override
   LinkedNodeBuilder visitAsExpression(AsExpression node) {
     return LinkedNodeBuilder.asExpression(
-      asExpression_asOperator: _getToken(node.asOperator),
       asExpression_expression: node.expression.accept(this),
       asExpression_type: node.type.accept(this),
     );
@@ -77,25 +72,16 @@
   @override
   LinkedNodeBuilder visitAssertInitializer(AssertInitializer node) {
     return LinkedNodeBuilder.assertInitializer(
-      assertInitializer_assertKeyword: _getToken(node.assertKeyword),
-      assertInitializer_comma: _getToken(node.comma),
       assertInitializer_condition: node.condition.accept(this),
-      assertInitializer_leftParenthesis: _getToken(node.leftParenthesis),
       assertInitializer_message: node.message?.accept(this),
-      assertInitializer_rightParenthesis: _getToken(node.rightParenthesis),
     );
   }
 
   @override
   LinkedNodeBuilder visitAssertStatement(AssertStatement node) {
     var builder = LinkedNodeBuilder.assertStatement(
-      assertStatement_assertKeyword: _getToken(node.assertKeyword),
-      assertStatement_comma: _getToken(node.comma),
       assertStatement_condition: node.condition.accept(this),
-      assertStatement_leftParenthesis: _getToken(node.leftParenthesis),
       assertStatement_message: node.message?.accept(this),
-      assertStatement_rightParenthesis: _getToken(node.rightParenthesis),
-      assertStatement_semicolon: _getToken(node.semicolon),
     );
     _storeStatement(builder, node);
     return builder;
@@ -108,7 +94,9 @@
       assignmentExpression_element: elementComponents.rawElement,
       assignmentExpression_elementType: elementComponents.definingType,
       assignmentExpression_leftHandSide: node.leftHandSide.accept(this),
-      assignmentExpression_operator: _getToken(node.operator),
+      assignmentExpression_operator: TokensWriter.astToBinaryTokenType(
+        node.operator.type,
+      ),
       assignmentExpression_rightHandSide: node.rightHandSide.accept(this),
       expression_type: _writeType(node.staticType),
     );
@@ -117,7 +105,6 @@
   @override
   LinkedNodeBuilder visitAwaitExpression(AwaitExpression node) {
     return LinkedNodeBuilder.awaitExpression(
-      awaitExpression_awaitKeyword: _getToken(node.awaitKeyword),
       awaitExpression_expression: node.expression.accept(this),
       expression_type: _writeType(node.staticType),
     );
@@ -141,8 +128,6 @@
   @override
   LinkedNodeBuilder visitBlock(Block node) {
     return LinkedNodeBuilder.block(
-      block_leftBracket: _getToken(node.leftBracket),
-      block_rightBracket: _getToken(node.rightBracket),
       block_statements: _writeNodeList(node.statements),
     );
   }
@@ -151,11 +136,15 @@
   LinkedNodeBuilder visitBlockFunctionBody(BlockFunctionBody node) {
     timerAstBinaryWriterFunctionBody.start();
     try {
-      return LinkedNodeBuilder.blockFunctionBody(
+      var builder = LinkedNodeBuilder.blockFunctionBody(
         blockFunctionBody_block: node.block.accept(this),
-        blockFunctionBody_keyword: _getToken(node.keyword),
-        blockFunctionBody_star: _getToken(node.star),
       );
+      builder.flags = AstBinaryFlags.encode(
+        isAsync: node.keyword?.keyword == Keyword.ASYNC,
+        isStar: node.star != null,
+        isSync: node.keyword?.keyword == Keyword.SYNC,
+      );
+      return builder;
     } finally {
       timerAstBinaryWriterFunctionBody.stop();
     }
@@ -171,9 +160,7 @@
   @override
   LinkedNodeBuilder visitBreakStatement(BreakStatement node) {
     var builder = LinkedNodeBuilder.breakStatement(
-      breakStatement_breakKeyword: _getToken(node.breakKeyword),
       breakStatement_label: node.label?.accept(this),
-      breakStatement_semicolon: _getToken(node.semicolon),
     );
     _storeStatement(builder, node);
     return builder;
@@ -193,13 +180,8 @@
   LinkedNodeBuilder visitCatchClause(CatchClause node) {
     return LinkedNodeBuilder.catchClause(
       catchClause_body: node.body.accept(this),
-      catchClause_catchKeyword: _getToken(node.catchKeyword),
-      catchClause_comma: _getToken(node.comma),
       catchClause_exceptionParameter: node.exceptionParameter?.accept(this),
       catchClause_exceptionType: node.exceptionType?.accept(this),
-      catchClause_leftParenthesis: _getToken(node.leftParenthesis),
-      catchClause_onKeyword: _getToken(node.onKeyword),
-      catchClause_rightParenthesis: _getToken(node.rightParenthesis),
       catchClause_stackTraceParameter: node.stackTraceParameter?.accept(this),
     );
   }
@@ -265,7 +247,6 @@
 
   @override
   LinkedNodeBuilder visitCommentReference(CommentReference node) {
-    return null;
 //    var identifier = node.identifier;
 //    _tokensWriter.writeTokens(
 //      node.newKeyword ?? identifier.beginToken,
@@ -281,10 +262,8 @@
   @override
   LinkedNodeBuilder visitCompilationUnit(CompilationUnit node) {
     var builder = LinkedNodeBuilder.compilationUnit(
-      compilationUnit_beginToken: _getToken(node.beginToken),
       compilationUnit_declarations: _writeNodeList(node.declarations),
       compilationUnit_directives: _writeNodeList(node.directives),
-      compilationUnit_endToken: _getToken(node.endToken),
       compilationUnit_scriptTag: node.scriptTag?.accept(this),
     );
     _storeCodeOffsetLength(builder, node);
@@ -294,10 +273,8 @@
   @override
   LinkedNodeBuilder visitConditionalExpression(ConditionalExpression node) {
     var builder = LinkedNodeBuilder.conditionalExpression(
-      conditionalExpression_colon: _getToken(node.colon),
       conditionalExpression_condition: node.condition.accept(this),
       conditionalExpression_elseExpression: node.elseExpression.accept(this),
-      conditionalExpression_question: _getToken(node.question),
       conditionalExpression_thenExpression: node.thenExpression.accept(this),
     );
     _storeExpression(builder, node);
@@ -306,15 +283,15 @@
 
   @override
   LinkedNodeBuilder visitConfiguration(Configuration node) {
-    return LinkedNodeBuilder.configuration(
-      configuration_equalToken: _getToken(node.equalToken),
-      configuration_ifKeyword: _getToken(node.ifKeyword),
-      configuration_leftParenthesis: _getToken(node.leftParenthesis),
+    var builder = LinkedNodeBuilder.configuration(
       configuration_name: node.name?.accept(this),
-      configuration_rightParenthesis: _getToken(node.rightParenthesis),
       configuration_value: node.value?.accept(this),
       configuration_uri: node.uri?.accept(this),
     );
+    builder.flags = AstBinaryFlags.encode(
+      hasEqual: node.equalToken != null,
+    );
+    return builder;
   }
 
   @override
@@ -322,13 +299,13 @@
     var builder = LinkedNodeBuilder.constructorDeclaration(
       constructorDeclaration_initializers: _writeNodeList(node.initializers),
       constructorDeclaration_parameters: node.parameters.accept(this),
-      constructorDeclaration_period: _getToken(node.period),
       constructorDeclaration_redirectedConstructor:
           node.redirectedConstructor?.accept(this),
       constructorDeclaration_returnType: node.returnType.accept(this),
-      constructorDeclaration_separator: _getToken(node.separator),
     );
     builder.flags = AstBinaryFlags.encode(
+      hasSeparatorColon: node.separator?.type == TokenType.COLON,
+      hasSeparatorEquals: node.separator?.type == TokenType.EQ,
       isAbstract: node.body is EmptyFunctionBody,
       isConst: node.constKeyword != null,
       isExternal: node.externalKeyword != null,
@@ -350,11 +327,11 @@
   LinkedNodeBuilder visitConstructorFieldInitializer(
       ConstructorFieldInitializer node) {
     var builder = LinkedNodeBuilder.constructorFieldInitializer(
-      constructorFieldInitializer_equals: _getToken(node.equals),
       constructorFieldInitializer_expression: node.expression.accept(this),
       constructorFieldInitializer_fieldName: node.fieldName.accept(this),
-      constructorFieldInitializer_period: _getToken(node.period),
-      constructorFieldInitializer_thisKeyword: _getToken(node.thisKeyword),
+    );
+    builder.flags = AstBinaryFlags.encode(
+      hasThis: node.thisKeyword != null,
     );
     _storeConstructorInitializer(builder, node);
     return builder;
@@ -367,7 +344,6 @@
       constructorName_element: elementComponents.rawElement,
       constructorName_elementType: elementComponents.definingType,
       constructorName_name: node.name?.accept(this),
-      constructorName_period: _getToken(node.period),
       constructorName_type: node.type.accept(this),
     );
   }
@@ -375,9 +351,7 @@
   @override
   LinkedNodeBuilder visitContinueStatement(ContinueStatement node) {
     var builder = LinkedNodeBuilder.continueStatement(
-      continueStatement_continueKeyword: _getToken(node.continueKeyword),
       continueStatement_label: node.label?.accept(this),
-      continueStatement_semicolon: _getToken(node.semicolon),
     );
     _storeStatement(builder, node);
     return builder;
@@ -387,9 +361,13 @@
   LinkedNodeBuilder visitDeclaredIdentifier(DeclaredIdentifier node) {
     var builder = LinkedNodeBuilder.declaredIdentifier(
       declaredIdentifier_identifier: node.identifier.accept(this),
-      declaredIdentifier_keyword: _getToken(node.keyword),
       declaredIdentifier_type: node.type?.accept(this),
     );
+    builder.flags = AstBinaryFlags.encode(
+      isConst: node.keyword?.keyword == Keyword.CONST,
+      isFinal: node.keyword?.keyword == Keyword.FINAL,
+      isVar: node.keyword?.keyword == Keyword.VAR,
+    );
     _storeDeclaration(builder, node);
     return builder;
   }
@@ -400,7 +378,6 @@
       defaultFormalParameter_defaultValue: node.defaultValue?.accept(this),
       defaultFormalParameter_kind: _toParameterKind(node),
       defaultFormalParameter_parameter: node.parameter.accept(this),
-      defaultFormalParameter_separator: _getToken(node.separator),
     );
     builder.flags = AstBinaryFlags.encode(
       hasInitializer: node.defaultValue != null,
@@ -414,11 +391,6 @@
     return LinkedNodeBuilder.doStatement(
       doStatement_body: node.body.accept(this),
       doStatement_condition: node.condition.accept(this),
-      doStatement_doKeyword: _getToken(node.doKeyword),
-      doStatement_leftParenthesis: _getToken(node.leftParenthesis),
-      doStatement_rightParenthesis: _getToken(node.rightParenthesis),
-      doStatement_semicolon: _getToken(node.semicolon),
-      doStatement_whileKeyword: _getToken(node.whileKeyword),
     );
   }
 
@@ -438,18 +410,14 @@
 
   @override
   LinkedNodeBuilder visitEmptyFunctionBody(EmptyFunctionBody node) {
-    var builder = LinkedNodeBuilder.emptyFunctionBody(
-      emptyFunctionBody_semicolon: _getToken(node.semicolon),
-    );
+    var builder = LinkedNodeBuilder.emptyFunctionBody();
     _storeFunctionBody(builder, node);
     return builder;
   }
 
   @override
   LinkedNodeBuilder visitEmptyStatement(EmptyStatement node) {
-    return LinkedNodeBuilder.emptyStatement(
-      emptyStatement_semicolon: _getToken(node.semicolon),
-    );
+    return LinkedNodeBuilder.emptyStatement();
   }
 
   @override
@@ -487,12 +455,14 @@
   LinkedNodeBuilder visitExpressionFunctionBody(ExpressionFunctionBody node) {
     timerAstBinaryWriterFunctionBody.start();
     try {
-      return LinkedNodeBuilder.expressionFunctionBody(
-        expressionFunctionBody_arrow: _getToken(node.functionDefinition),
+      var builder = LinkedNodeBuilder.expressionFunctionBody(
         expressionFunctionBody_expression: node.expression.accept(this),
-        expressionFunctionBody_keyword: _getToken(node.keyword),
-        expressionFunctionBody_semicolon: _getToken(node.semicolon),
       );
+      builder.flags = AstBinaryFlags.encode(
+        isAsync: node.keyword?.keyword == Keyword.ASYNC,
+        isSync: node.keyword?.keyword == Keyword.SYNC,
+      );
+      return builder;
     } finally {
       timerAstBinaryWriterFunctionBody.stop();
     }
@@ -502,14 +472,12 @@
   LinkedNodeBuilder visitExpressionStatement(ExpressionStatement node) {
     return LinkedNodeBuilder.expressionStatement(
       expressionStatement_expression: node.expression.accept(this),
-      expressionStatement_semicolon: _getToken(node.semicolon),
     );
   }
 
   @override
   LinkedNodeBuilder visitExtendsClause(ExtendsClause node) {
     return LinkedNodeBuilder.extendsClause(
-      extendsClause_extendsKeyword: _getToken(node.extendsKeyword),
       extendsClause_superclass: node.superclass.accept(this),
     );
   }
@@ -523,7 +491,6 @@
 
     var builder = LinkedNodeBuilder.fieldDeclaration(
       fieldDeclaration_fields: node.fields.accept(this),
-      fieldDeclaration_semicolon: _getToken(node.semicolon),
     );
     builder.flags = AstBinaryFlags.encode(
       isCovariant: node.covariantKeyword != null,
@@ -541,7 +508,6 @@
   LinkedNodeBuilder visitFieldFormalParameter(FieldFormalParameter node) {
     var builder = LinkedNodeBuilder.fieldFormalParameter(
       fieldFormalParameter_formalParameters: node.parameters?.accept(this),
-      fieldFormalParameter_thisKeyword: _getToken(node.thisKeyword),
       fieldFormalParameter_type: node.type?.accept(this),
       fieldFormalParameter_typeParameters: node.typeParameters?.accept(this),
     );
@@ -580,13 +546,16 @@
 
   @override
   LinkedNodeBuilder visitFormalParameterList(FormalParameterList node) {
-    return LinkedNodeBuilder.formalParameterList(
-      formalParameterList_leftDelimiter: _getToken(node.leftDelimiter),
-      formalParameterList_leftParenthesis: _getToken(node.leftParenthesis),
+    var builder = LinkedNodeBuilder.formalParameterList(
       formalParameterList_parameters: _writeNodeList(node.parameters),
-      formalParameterList_rightDelimiter: _getToken(node.rightDelimiter),
-      formalParameterList_rightParenthesis: _getToken(node.rightParenthesis),
     );
+    builder.flags = AstBinaryFlags.encode(
+      isDelimiterCurly:
+          node.leftDelimiter?.type == TokenType.OPEN_CURLY_BRACKET,
+      isDelimiterSquare:
+          node.leftDelimiter?.type == TokenType.OPEN_SQUARE_BRACKET,
+    );
+    return builder;
   }
 
   @override
@@ -649,13 +618,16 @@
     if (node.parent.parent is CompilationUnit) {
       bodyToStore = null;
     }
-    return LinkedNodeBuilder.functionExpression(
-      executable_isAsynchronous: node.body?.isAsynchronous ?? false,
-      executable_isGenerator: node.body?.isGenerator ?? false,
+    var builder = LinkedNodeBuilder.functionExpression(
       functionExpression_body: bodyToStore?.accept(this),
       functionExpression_formalParameters: node.parameters?.accept(this),
       functionExpression_typeParameters: node.typeParameters?.accept(this),
     );
+    builder.flags = AstBinaryFlags.encode(
+      isAsync: node.body?.isAsynchronous ?? false,
+      isGenerator: node.body?.isGenerator ?? false,
+    );
+    return builder;
   }
 
   @override
@@ -706,12 +678,13 @@
   LinkedNodeBuilder visitGenericFunctionType(GenericFunctionType node) {
     var builder = LinkedNodeBuilder.genericFunctionType(
       genericFunctionType_formalParameters: node.parameters.accept(this),
-      genericFunctionType_functionKeyword: _getToken(node.functionKeyword),
-      genericFunctionType_question: _getToken(node.question),
       genericFunctionType_returnType: node.returnType?.accept(this),
       genericFunctionType_type: _writeType(node.type),
       genericFunctionType_typeParameters: node.typeParameters?.accept(this),
     );
+    builder.flags = AstBinaryFlags.encode(
+      hasQuestion: node.question != null,
+    );
     _writeActualReturnType(builder, node);
 
     var id = LazyAst.getGenericFunctionTypeId(node);
@@ -743,17 +716,16 @@
     var builder = LinkedNodeBuilder.hideCombinator(
       names: node.hiddenNames.map((id) => id.name).toList(),
     );
-    _storeCombinator(builder, node);
     return builder;
   }
 
   @override
   LinkedNodeBuilder visitIfElement(IfElement node) {
     var builder = LinkedNodeBuilder.ifElement(
+      ifMixin_condition: node.condition.accept(this),
       ifElement_elseElement: node.elseElement?.accept(this),
       ifElement_thenElement: node.thenElement.accept(this),
     );
-    _storeIfMixin(builder, node as IfElementImpl);
     return builder;
   }
 
@@ -761,21 +733,15 @@
   LinkedNodeBuilder visitIfStatement(IfStatement node) {
     var builder = LinkedNodeBuilder.ifStatement(
       ifMixin_condition: node.condition.accept(this),
-      ifMixin_elseKeyword: _getToken(node.elseKeyword),
       ifStatement_elseStatement: node.elseStatement?.accept(this),
-      ifMixin_ifKeyword: _getToken(node.ifKeyword),
-      ifMixin_leftParenthesis: _getToken(node.leftParenthesis),
-      ifMixin_rightParenthesis: _getToken(node.rightParenthesis),
       ifStatement_thenStatement: node.thenStatement.accept(this),
     );
-    _storeIfMixin(builder, node as IfStatementImpl);
     return builder;
   }
 
   @override
   LinkedNodeBuilder visitImplementsClause(ImplementsClause node) {
     return LinkedNodeBuilder.implementsClause(
-      implementsClause_implementsKeyword: _getToken(node.implementsKeyword),
       implementsClause_interfaces: _writeNodeList(node.interfaces),
     );
   }
@@ -801,16 +767,17 @@
   @override
   LinkedNodeBuilder visitIndexExpression(IndexExpression node) {
     var elementComponents = _componentsOfElement(node.staticElement);
-    return LinkedNodeBuilder.indexExpression(
+    var builder = LinkedNodeBuilder.indexExpression(
       indexExpression_element: elementComponents.rawElement,
       indexExpression_elementType: elementComponents.definingType,
       indexExpression_index: node.index.accept(this),
-      indexExpression_leftBracket: _getToken(node.leftBracket),
-      indexExpression_period: _getToken(node.period),
-      indexExpression_rightBracket: _getToken(node.rightBracket),
       indexExpression_target: node.target?.accept(this),
       expression_type: _writeType(node.staticType),
     );
+    builder.flags = AstBinaryFlags.encode(
+      hasPeriod: node.period != null,
+    );
+    return builder;
   }
 
   @override
@@ -818,7 +785,9 @@
       InstanceCreationExpression node) {
     InstanceCreationExpressionImpl nodeImpl = node;
     var builder = LinkedNodeBuilder.instanceCreationExpression(
-      instanceCreationExpression_arguments: node.argumentList.accept(this),
+      instanceCreationExpression_arguments: _writeNodeList(
+        node.argumentList.arguments,
+      ),
       instanceCreationExpression_constructorName:
           node.constructorName.accept(this),
       instanceCreationExpression_typeArguments:
@@ -843,15 +812,15 @@
   LinkedNodeBuilder visitInterpolationExpression(InterpolationExpression node) {
     return LinkedNodeBuilder.interpolationExpression(
       interpolationExpression_expression: node.expression.accept(this),
-      interpolationExpression_leftBracket: _getToken(node.leftBracket),
-      interpolationExpression_rightBracket: _getToken(node.rightBracket),
-    );
+    )..flags = AstBinaryFlags.encode(
+        isStringInterpolationIdentifier:
+            node.leftBracket.type == TokenType.STRING_INTERPOLATION_IDENTIFIER,
+      );
   }
 
   @override
   LinkedNodeBuilder visitInterpolationString(InterpolationString node) {
     return LinkedNodeBuilder.interpolationString(
-      interpolationString_token: _getToken(node.contents),
       interpolationString_value: node.value,
     );
   }
@@ -860,10 +829,11 @@
   LinkedNodeBuilder visitIsExpression(IsExpression node) {
     var builder = LinkedNodeBuilder.isExpression(
       isExpression_expression: node.expression.accept(this),
-      isExpression_isOperator: _getToken(node.isOperator),
-      isExpression_notOperator: _getToken(node.notOperator),
       isExpression_type: node.type.accept(this),
     );
+    builder.flags = AstBinaryFlags.encode(
+      hasNot: node.notOperator != null,
+    );
     return builder;
   }
 
@@ -871,7 +841,6 @@
   LinkedNodeBuilder visitLabel(Label node) {
     return LinkedNodeBuilder.label(
       label_label: node.label.accept(this),
-      label_colon: _getToken(node.colon),
     );
   }
 
@@ -889,7 +858,6 @@
     try {
       var builder = LinkedNodeBuilder.libraryDirective(
         libraryDirective_name: node.name.accept(this),
-        directive_semicolon: _getToken(node.semicolon),
       );
       _storeDirective(builder, node);
       return builder;
@@ -909,8 +877,6 @@
   LinkedNodeBuilder visitListLiteral(ListLiteral node) {
     var builder = LinkedNodeBuilder.listLiteral(
       listLiteral_elements: _writeNodeList(node.elements),
-      listLiteral_leftBracket: _getToken(node.leftBracket),
-      listLiteral_rightBracket: _getToken(node.rightBracket),
     );
     _storeTypedLiteral(builder, node);
     return builder;
@@ -920,7 +886,6 @@
   LinkedNodeBuilder visitMapLiteralEntry(MapLiteralEntry node) {
     return LinkedNodeBuilder.mapLiteralEntry(
       mapLiteralEntry_key: node.key.accept(this),
-      mapLiteralEntry_separator: _getToken(node.separator),
       mapLiteralEntry_value: node.value.accept(this),
     );
   }
@@ -928,10 +893,7 @@
   @override
   LinkedNodeBuilder visitMethodDeclaration(MethodDeclaration node) {
     var builder = LinkedNodeBuilder.methodDeclaration(
-      executable_isAsynchronous: node.body?.isAsynchronous ?? false,
-      executable_isGenerator: node.body?.isGenerator ?? false,
       methodDeclaration_formalParameters: node.parameters?.accept(this),
-      methodDeclaration_operatorKeyword: _getToken(node.operatorKeyword),
       methodDeclaration_returnType: node.returnType?.accept(this),
       methodDeclaration_typeParameters: node.typeParameters?.accept(this),
     );
@@ -940,8 +902,11 @@
       ..nameOffset = node.name.offset;
     builder.flags = AstBinaryFlags.encode(
       isAbstract: node.body is EmptyFunctionBody,
+      isAsync: node.body?.isAsynchronous ?? false,
       isExternal: node.externalKeyword != null,
+      isGenerator: node.body?.isGenerator ?? false,
       isGet: node.isGetter,
+      isOperator: node.operatorKeyword != null,
       isSet: node.isSetter,
       isStatic: node.isStatic,
     );
@@ -955,9 +920,12 @@
   LinkedNodeBuilder visitMethodInvocation(MethodInvocation node) {
     var builder = LinkedNodeBuilder.methodInvocation(
       methodInvocation_methodName: node.methodName?.accept(this),
-      methodInvocation_operator: _getToken(node.operator),
       methodInvocation_target: node.target?.accept(this),
     );
+    builder.flags = AstBinaryFlags.encode(
+      hasPeriod: node.operator?.type == TokenType.PERIOD,
+      hasPeriod2: node.operator?.type == TokenType.PERIOD_PERIOD,
+    );
     _storeInvocationExpression(builder, node);
     return builder;
   }
@@ -967,7 +935,6 @@
     timerAstBinaryWriterMixin.start();
     try {
       var builder = LinkedNodeBuilder.mixinDeclaration(
-        mixinDeclaration_mixinKeyword: _getToken(node.mixinKeyword),
         mixinDeclaration_onClause: node.onClause?.accept(this),
       );
       _storeClassOrMixinDeclaration(builder, node);
@@ -989,7 +956,6 @@
   @override
   LinkedNodeBuilder visitNativeClause(NativeClause node) {
     return LinkedNodeBuilder.nativeClause(
-      nativeClause_nativeKeyword: _getToken(node.nativeKeyword),
       nativeClause_name: node.name.accept(this),
     );
   }
@@ -997,25 +963,18 @@
   @override
   LinkedNodeBuilder visitNativeFunctionBody(NativeFunctionBody node) {
     return LinkedNodeBuilder.nativeFunctionBody(
-      nativeFunctionBody_nativeKeyword: _getToken(node.nativeKeyword),
-      nativeFunctionBody_semicolon: _getToken(node.semicolon),
       nativeFunctionBody_stringLiteral: node.stringLiteral?.accept(this),
     );
   }
 
   @override
   LinkedNodeBuilder visitNullLiteral(NullLiteral node) {
-    var builder = LinkedNodeBuilder.nullLiteral(
-      nullLiteral_literal: _getToken(node.literal),
-    );
-    _storeExpression(builder, node);
-    return builder;
+    return LinkedNodeBuilder.nullLiteral();
   }
 
   @override
   LinkedNodeBuilder visitOnClause(OnClause node) {
     return LinkedNodeBuilder.onClause(
-      onClause_onKeyword: _getToken(node.onKeyword),
       onClause_superclassConstraints:
           _writeNodeList(node.superclassConstraints),
     );
@@ -1025,9 +984,6 @@
   LinkedNodeBuilder visitParenthesizedExpression(ParenthesizedExpression node) {
     var builder = LinkedNodeBuilder.parenthesizedExpression(
       parenthesizedExpression_expression: node.expression.accept(this),
-      parenthesizedExpression_leftParenthesis: _getToken(node.leftParenthesis),
-      parenthesizedExpression_rightParenthesis:
-          _getToken(node.rightParenthesis),
     );
     _storeExpression(builder, node);
     return builder;
@@ -1037,9 +993,7 @@
   LinkedNodeBuilder visitPartDirective(PartDirective node) {
     timerAstBinaryWriterDirective.start();
     try {
-      var builder = LinkedNodeBuilder.partDirective(
-        directive_semicolon: _getToken(node.semicolon),
-      );
+      var builder = LinkedNodeBuilder.partDirective();
       _storeUriBasedDirective(builder, node);
       return builder;
     } finally {
@@ -1053,8 +1007,6 @@
     try {
       var builder = LinkedNodeBuilder.partOfDirective(
         partOfDirective_libraryName: node.libraryName?.accept(this),
-        partOfDirective_ofKeyword: _getToken(node.ofKeyword),
-        directive_semicolon: _getToken(node.semicolon),
         partOfDirective_uri: node.uri?.accept(this),
       );
       _storeDirective(builder, node);
@@ -1072,7 +1024,9 @@
       postfixExpression_element: elementComponents.rawElement,
       postfixExpression_elementType: elementComponents.definingType,
       postfixExpression_operand: node.operand.accept(this),
-      postfixExpression_operator: _getToken(node.operator),
+      postfixExpression_operator: TokensWriter.astToBinaryTokenType(
+        node.operator.type,
+      ),
     );
   }
 
@@ -1080,7 +1034,6 @@
   LinkedNodeBuilder visitPrefixedIdentifier(PrefixedIdentifier node) {
     return LinkedNodeBuilder.prefixedIdentifier(
       prefixedIdentifier_identifier: node.identifier.accept(this),
-      prefixedIdentifier_period: _getToken(node.period),
       prefixedIdentifier_prefix: node.prefix.accept(this),
       expression_type: _writeType(node.staticType),
     );
@@ -1103,7 +1056,9 @@
   @override
   LinkedNodeBuilder visitPropertyAccess(PropertyAccess node) {
     var builder = LinkedNodeBuilder.propertyAccess(
-      propertyAccess_operator: _getToken(node.operator),
+      propertyAccess_operator: TokensWriter.astToBinaryTokenType(
+        node.operator.type,
+      ),
       propertyAccess_propertyName: node.propertyName.accept(this),
       propertyAccess_target: node.target?.accept(this),
     );
@@ -1123,8 +1078,9 @@
       redirectingConstructorInvocation_element: elementComponents.rawElement,
       redirectingConstructorInvocation_elementType:
           elementComponents.definingType,
-      redirectingConstructorInvocation_period: _getToken(node.period),
-      redirectingConstructorInvocation_thisKeyword: _getToken(node.thisKeyword),
+    );
+    builder.flags = AstBinaryFlags.encode(
+      hasThis: node.thisKeyword != null,
     );
     _storeConstructorInitializer(builder, node);
     return builder;
@@ -1132,39 +1088,29 @@
 
   @override
   LinkedNodeBuilder visitRethrowExpression(RethrowExpression node) {
-    var builder = LinkedNodeBuilder.rethrowExpression(
-      rethrowExpression_rethrowKeyword: _getToken(node.rethrowKeyword),
+    return LinkedNodeBuilder.rethrowExpression(
+      expression_type: _writeType(node.staticType),
     );
-    _storeExpression(builder, node);
-    return builder;
   }
 
   @override
   LinkedNodeBuilder visitReturnStatement(ReturnStatement node) {
     return LinkedNodeBuilder.returnStatement(
       returnStatement_expression: node.expression?.accept(this),
-      returnStatement_returnKeyword: _getToken(node.returnKeyword),
-      returnStatement_semicolon: _getToken(node.semicolon),
     );
   }
 
   @override
   LinkedNodeBuilder visitScriptTag(ScriptTag node) {
-    return LinkedNodeBuilder.scriptTag(
-      scriptTag_scriptTag: _getToken(node.scriptTag),
-    );
+    return null;
   }
 
   @override
   LinkedNodeBuilder visitSetOrMapLiteral(SetOrMapLiteral node) {
     var builder = LinkedNodeBuilder.setOrMapLiteral(
       setOrMapLiteral_elements: _writeNodeList(node.elements),
-      setOrMapLiteral_isMap: node.isMap,
-      setOrMapLiteral_isSet: node.isSet,
-      setOrMapLiteral_leftBracket: _getToken(node.leftBracket),
-      setOrMapLiteral_rightBracket: _getToken(node.rightBracket),
     );
-    _storeTypedLiteral(builder, node);
+    _storeTypedLiteral(builder, node, isMap: node.isMap, isSet: node.isSet);
     return builder;
   }
 
@@ -1173,7 +1119,6 @@
     var builder = LinkedNodeBuilder.showCombinator(
       names: node.shownNames.map((id) => id.name).toList(),
     );
-    _storeCombinator(builder, node);
     return builder;
   }
 
@@ -1202,9 +1147,11 @@
     var builder = LinkedNodeBuilder.simpleIdentifier(
       simpleIdentifier_element: elementComponents.rawElement,
       simpleIdentifier_elementType: elementComponents.definingType,
-      simpleIdentifier_isDeclaration: node is DeclaredSimpleIdentifier,
       expression_type: _writeType(node.staticType),
     );
+    builder.flags = AstBinaryFlags.encode(
+      isDeclaration: node is DeclaredSimpleIdentifier,
+    );
     builder.name = node.name;
     return builder;
   }
@@ -1221,7 +1168,7 @@
   LinkedNodeBuilder visitSpreadElement(SpreadElement node) {
     return LinkedNodeBuilder.spreadElement(
       spreadElement_expression: node.expression.accept(this),
-      spreadElement_spreadOperator2: TokensWriter.astToBinaryTokenType(
+      spreadElement_spreadOperator: TokensWriter.astToBinaryTokenType(
         node.spreadOperator.type,
       ),
     );
@@ -1244,8 +1191,6 @@
           node.constructorName?.accept(this),
       superConstructorInvocation_element: elementComponents.rawElement,
       superConstructorInvocation_elementType: elementComponents.definingType,
-      superConstructorInvocation_period: _getToken(node.period),
-      superConstructorInvocation_superKeyword: _getToken(node.superKeyword),
     );
     _storeConstructorInitializer(builder, node);
     return builder;
@@ -1253,9 +1198,7 @@
 
   @override
   LinkedNodeBuilder visitSuperExpression(SuperExpression node) {
-    var builder = LinkedNodeBuilder.superExpression(
-      superExpression_superKeyword: _getToken(node.superKeyword),
-    );
+    var builder = LinkedNodeBuilder.superExpression();
     _storeExpression(builder, node);
     return builder;
   }
@@ -1280,19 +1223,13 @@
   LinkedNodeBuilder visitSwitchStatement(SwitchStatement node) {
     return LinkedNodeBuilder.switchStatement(
       switchStatement_expression: node.expression.accept(this),
-      switchStatement_leftBracket: _getToken(node.leftBracket),
-      switchStatement_leftParenthesis: _getToken(node.leftParenthesis),
       switchStatement_members: _writeNodeList(node.members),
-      switchStatement_rightBracket: _getToken(node.rightBracket),
-      switchStatement_rightParenthesis: _getToken(node.rightParenthesis),
-      switchStatement_switchKeyword: _getToken(node.switchKeyword),
     );
   }
 
   @override
   LinkedNodeBuilder visitSymbolLiteral(SymbolLiteral node) {
     var builder = LinkedNodeBuilder.symbolLiteral(
-      symbolLiteral_poundSign: _getToken(node.poundSign),
       names: node.components.map((t) => t.lexeme).toList(),
     );
     _storeExpression(builder, node);
@@ -1301,9 +1238,7 @@
 
   @override
   LinkedNodeBuilder visitThisExpression(ThisExpression node) {
-    var builder = LinkedNodeBuilder.thisExpression(
-      thisExpression_thisKeyword: _getToken(node.thisKeyword),
-    );
+    var builder = LinkedNodeBuilder.thisExpression();
     _storeExpression(builder, node);
     return builder;
   }
@@ -1312,7 +1247,6 @@
   LinkedNodeBuilder visitThrowExpression(ThrowExpression node) {
     return LinkedNodeBuilder.throwExpression(
       throwExpression_expression: node.expression.accept(this),
-      throwExpression_throwKeyword: _getToken(node.throwKeyword),
       expression_type: _writeType(node.staticType),
     );
   }
@@ -1325,7 +1259,6 @@
       _variablesDeclaration = LinkedNodeVariablesDeclarationBuilder();
 
       var builder = LinkedNodeBuilder.topLevelVariableDeclaration(
-        topLevelVariableDeclaration_semicolon: _getToken(node.semicolon),
         topLevelVariableDeclaration_variableList: node.variables?.accept(this),
       );
       _storeCompilationUnitMember(builder, node);
@@ -1345,8 +1278,6 @@
       tryStatement_body: node.body.accept(this),
       tryStatement_catchClauses: _writeNodeList(node.catchClauses),
       tryStatement_finallyBlock: node.finallyBlock?.accept(this),
-      tryStatement_finallyKeyword: _getToken(node.finallyKeyword),
-      tryStatement_tryKeyword: _getToken(node.tryKeyword),
     );
   }
 
@@ -1354,8 +1285,6 @@
   LinkedNodeBuilder visitTypeArgumentList(TypeArgumentList node) {
     return LinkedNodeBuilder.typeArgumentList(
       typeArgumentList_arguments: _writeNodeList(node.arguments),
-      typeArgumentList_leftBracket: _getToken(node.leftBracket),
-      typeArgumentList_rightBracket: _getToken(node.rightBracket),
     );
   }
 
@@ -1363,10 +1292,14 @@
   LinkedNodeBuilder visitTypeName(TypeName node) {
     return LinkedNodeBuilder.typeName(
       typeName_name: node.name.accept(this),
-      typeName_question: _getToken(node.question),
       typeName_type: _writeType(node.type),
-      typeName_typeArguments: node.typeArguments?.accept(this),
-    );
+      typeName_typeArguments: _writeNodeList(
+        node.typeArguments?.arguments,
+      ),
+    )..flags = AstBinaryFlags.encode(
+        hasQuestion: node.question != null,
+        hasTypeArguments: node.typeArguments != null,
+      );
   }
 
   @override
@@ -1374,7 +1307,6 @@
     var builder = LinkedNodeBuilder.typeParameter(
       typeParameter_bound: node.bound?.accept(this),
       typeParameter_defaultType: _writeType(LazyAst.getDefaultType(node)),
-      typeParameter_extendsKeyword: _getToken(node.extendsKeyword),
     );
     builder
       ..name = node.name.name
@@ -1387,8 +1319,6 @@
   @override
   LinkedNodeBuilder visitTypeParameterList(TypeParameterList node) {
     return LinkedNodeBuilder.typeParameterList(
-      typeParameterList_leftBracket: _getToken(node.leftBracket),
-      typeParameterList_rightBracket: _getToken(node.rightBracket),
       typeParameterList_typeParameters: _writeNodeList(node.typeParameters),
     );
   }
@@ -1404,7 +1334,6 @@
     }
 
     var builder = LinkedNodeBuilder.variableDeclaration(
-      variableDeclaration_equals: _getToken(node.equals),
       variableDeclaration_initializer: initializer?.accept(this),
       variableDeclaration_declaration: _variablesDeclaration,
     );
@@ -1446,7 +1375,6 @@
   LinkedNodeBuilder visitVariableDeclarationStatement(
       VariableDeclarationStatement node) {
     return LinkedNodeBuilder.variableDeclarationStatement(
-      variableDeclarationStatement_semicolon: _getToken(node.semicolon),
       variableDeclarationStatement_variables: node.variables.accept(this),
     );
   }
@@ -1456,9 +1384,6 @@
     return LinkedNodeBuilder.whileStatement(
       whileStatement_body: node.body.accept(this),
       whileStatement_condition: node.condition.accept(this),
-      whileStatement_leftParenthesis: _getToken(node.leftParenthesis),
-      whileStatement_rightParenthesis: _getToken(node.rightParenthesis),
-      whileStatement_whileKeyword: _getToken(node.whileKeyword),
     );
   }
 
@@ -1466,17 +1391,16 @@
   LinkedNodeBuilder visitWithClause(WithClause node) {
     return LinkedNodeBuilder.withClause(
       withClause_mixinTypes: _writeNodeList(node.mixinTypes),
-      withClause_withKeyword: _getToken(node.withKeyword),
     );
   }
 
   @override
   LinkedNodeBuilder visitYieldStatement(YieldStatement node) {
     var builder = LinkedNodeBuilder.yieldStatement(
-      yieldStatement_yieldKeyword: _getToken(node.yieldKeyword),
       yieldStatement_expression: node.expression.accept(this),
-      yieldStatement_semicolon: _getToken(node.semicolon),
-      yieldStatement_star: _getToken(node.star),
+    );
+    builder.flags = AstBinaryFlags.encode(
+      isStar: node.star != null,
     );
     _storeStatement(builder, node);
     return builder;
@@ -1506,11 +1430,6 @@
     return _ElementComponents(elementIndex, null);
   }
 
-  int _getToken(Token token) {
-    // TODO(scheglov) Remove this method
-    return 0;
-  }
-
   int _indexOfElement(Element element) {
     return _linkingContext.indexOfElement(element);
   }
@@ -1530,9 +1449,7 @@
     builder
       ..classOrMixinDeclaration_implementsClause =
           node.implementsClause?.accept(this)
-      ..classOrMixinDeclaration_leftBracket = _getToken(node.leftBracket)
       ..classOrMixinDeclaration_members = _writeNodeList(node.members)
-      ..classOrMixinDeclaration_rightBracket = _getToken(node.rightBracket)
       ..classOrMixinDeclaration_typeParameters =
           node.typeParameters?.accept(this);
     _storeNamedCompilationUnitMember(builder, node);
@@ -1556,10 +1473,6 @@
     }
   }
 
-  void _storeCombinator(LinkedNodeBuilder builder, Combinator node) {
-    builder.combinator_keyword = _getToken(node.keyword);
-  }
-
   void _storeCompilationUnitMember(
       LinkedNodeBuilder builder, CompilationUnitMember node) {
     _storeDeclaration(builder, node);
@@ -1574,7 +1487,6 @@
 
   void _storeDirective(LinkedNodeBuilder builder, Directive node) {
     _storeAnnotatedNode(builder, node);
-    builder..directive_keyword = _getToken(node.keyword);
   }
 
   void _storeExpression(LinkedNodeBuilder builder, Expression node) {
@@ -1583,9 +1495,7 @@
 
   void _storeForEachParts(LinkedNodeBuilder builder, ForEachParts node) {
     _storeForLoopParts(builder, node);
-    builder
-      ..forEachParts_inKeyword = _getToken(node.inKeyword)
-      ..forEachParts_iterable = node.iterable?.accept(this);
+    builder..forEachParts_iterable = node.iterable?.accept(this);
   }
 
   void _storeForLoopParts(LinkedNodeBuilder builder, ForLoopParts node) {}
@@ -1596,34 +1506,21 @@
   }
 
   void _storeForMixin(LinkedNodeBuilder builder, ForMixin node) {
-    builder
-      ..forMixin_awaitKeyword = _getToken(node.awaitKeyword)
-      ..forMixin_forKeyword = _getToken(node.forKeyword)
-      ..forMixin_forLoopParts = node.forLoopParts.accept(this)
-      ..forMixin_leftParenthesis = _getToken(node.leftParenthesis)
-      ..forMixin_rightParenthesis = _getToken(node.rightParenthesis);
+    builder.flags = AstBinaryFlags.encode(
+      hasAwait: node.awaitKeyword != null,
+    );
+    builder..forMixin_forLoopParts = node.forLoopParts.accept(this);
   }
 
   void _storeForParts(LinkedNodeBuilder builder, ForParts node) {
     _storeForLoopParts(builder, node);
     builder
-      ..forParts_leftSeparator = _getToken(node.leftSeparator)
       ..forParts_condition = node.condition?.accept(this)
-      ..forParts_rightSeparator = _getToken(node.rightSeparator)
       ..forParts_updaters = _writeNodeList(node.updaters);
   }
 
   void _storeFunctionBody(LinkedNodeBuilder builder, FunctionBody node) {}
 
-  void _storeIfMixin(LinkedNodeBuilder builder, IfMixin node) {
-    builder
-      ..ifMixin_condition = node.condition.accept(this)
-      ..ifMixin_elseKeyword = _getToken(node.elseKeyword)
-      ..ifMixin_ifKeyword = _getToken(node.ifKeyword)
-      ..ifMixin_leftParenthesis = _getToken(node.leftParenthesis)
-      ..ifMixin_rightParenthesis = _getToken(node.rightParenthesis);
-  }
-
   void _storeInheritsCovariant(LinkedNodeBuilder builder, AstNode node) {
     var value = LazyAst.getInheritsCovariant(node);
     builder.inheritsCovariant = value;
@@ -1660,7 +1557,6 @@
       ..namespaceDirective_combinators = _writeNodeList(node.combinators)
       ..namespaceDirective_configurations = _writeNodeList(node.configurations)
       ..namespaceDirective_selectedUri = LazyDirective.getSelectedUri(node)
-      ..directive_semicolon = _getToken(node.semicolon)
       ..nameOffset = node.offset;
   }
 
@@ -1673,37 +1569,38 @@
         isConst: keyword?.type == Keyword.CONST,
         isCovariant: node.covariantKeyword != null,
         isFinal: keyword?.type == Keyword.FINAL,
+        isRequired: node.requiredKeyword != null,
         isVar: keyword?.type == Keyword.VAR,
       )
       ..name = node.identifier?.name
       ..nameOffset = node.identifier?.offset ?? 0
-      ..normalFormalParameter_metadata = _writeNodeList(node.metadata)
-      ..normalFormalParameter_requiredKeyword = _getToken(node.requiredKeyword);
+      ..normalFormalParameter_metadata = _writeNodeList(node.metadata);
   }
 
   void _storeStatement(LinkedNodeBuilder builder, Statement node) {}
 
   void _storeSwitchMember(LinkedNodeBuilder builder, SwitchMember node) {
-    builder.switchMember_colon = _getToken(node.colon);
-    builder.switchMember_keyword = _getToken(node.keyword);
     builder.switchMember_labels = _writeNodeList(node.labels);
     builder.switchMember_statements = _writeNodeList(node.statements);
   }
 
   void _storeTypeAlias(LinkedNodeBuilder builder, TypeAlias node) {
     _storeNamedCompilationUnitMember(builder, node);
-    builder
-      ..typeAlias_semicolon = _getToken(node.semicolon)
-      ..typeAlias_typedefKeyword = _getToken(node.typedefKeyword);
   }
 
-  void _storeTypedLiteral(LinkedNodeBuilder builder, TypedLiteral node) {
+  void _storeTypedLiteral(LinkedNodeBuilder builder, TypedLiteral node,
+      {bool isMap: false, bool isSet: false}) {
     _storeExpression(builder, node);
     builder
       ..flags = AstBinaryFlags.encode(
+        hasTypeArguments: node.typeArguments != null,
         isConst: node.constKeyword != null,
+        isMap: isMap,
+        isSet: isSet,
       )
-      ..typedLiteral_typeArguments = node.typeArguments?.accept(this);
+      ..typedLiteral_typeArguments = _writeNodeList(
+        node.typeArguments?.arguments,
+      );
   }
 
   void _storeUriBasedDirective(
@@ -1728,6 +1625,10 @@
   }
 
   List<LinkedNodeBuilder> _writeNodeList(List<AstNode> nodeList) {
+    if (nodeList == null) {
+      return const <LinkedNodeBuilder>[];
+    }
+
     var result = List<LinkedNodeBuilder>.filled(
       nodeList.length,
       null,
diff --git a/pkg/analyzer/lib/src/summary2/builder/source_library_builder.dart b/pkg/analyzer/lib/src/summary2/builder/source_library_builder.dart
index 99a42f9..fb84bac 100644
--- a/pkg/analyzer/lib/src/summary2/builder/source_library_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/builder/source_library_builder.dart
@@ -173,28 +173,6 @@
     }
   }
 
-  void addSyntheticConstructors() {
-    for (var reference in localScope.map.values) {
-      var node = reference.node;
-      if (node == null) continue;
-      if (node.kind != LinkedNodeKind.classDeclaration) continue;
-
-      // Skip the class if it already has a constructor.
-      if (node.classOrMixinDeclaration_members
-          .any((n) => n.kind == LinkedNodeKind.constructorDeclaration)) {
-        continue;
-      }
-
-      node.classOrMixinDeclaration_members.add(
-        LinkedNodeBuilder.constructorDeclaration(
-          constructorDeclaration_parameters:
-              LinkedNodeBuilder.formalParameterList(),
-          constructorDeclaration_body: LinkedNodeBuilder.emptyFunctionBody(),
-        )..isSynthetic = true,
-      );
-    }
-  }
-
   /// Return `true` if the export scope was modified.
   bool addToExportScope(String name, Reference reference) {
     if (name.startsWith('_')) return false;
diff --git a/pkg/analyzer/lib/src/summary2/lazy_ast.dart b/pkg/analyzer/lib/src/summary2/lazy_ast.dart
index 659b28e..74f2f76 100644
--- a/pkg/analyzer/lib/src/summary2/lazy_ast.dart
+++ b/pkg/analyzer/lib/src/summary2/lazy_ast.dart
@@ -1003,7 +1003,7 @@
   static bool isAsynchronous(FunctionExpression node) {
     var lazy = get(node);
     if (lazy != null) {
-      return lazy.data.executable_isAsynchronous;
+      return AstBinaryFlags.isAsync(lazy.data.flags);
     } else {
       return node.body.isAsynchronous;
     }
@@ -1012,7 +1012,7 @@
   static bool isGenerator(FunctionExpression node) {
     var lazy = get(node);
     if (lazy != null) {
-      return lazy.data.executable_isGenerator;
+      return AstBinaryFlags.isGenerator(lazy.data.flags);
     } else {
       return node.body.isGenerator;
     }
@@ -1393,7 +1393,7 @@
   static bool isAsynchronous(MethodDeclaration node) {
     var lazy = get(node);
     if (lazy != null) {
-      return lazy.data.executable_isAsynchronous;
+      return AstBinaryFlags.isAsync(lazy.data.flags);
     } else {
       return node.body.isAsynchronous;
     }
@@ -1402,7 +1402,7 @@
   static bool isGenerator(MethodDeclaration node) {
     var lazy = get(node);
     if (lazy != null) {
-      return lazy.data.executable_isGenerator;
+      return AstBinaryFlags.isGenerator(lazy.data.flags);
     } else {
       return node.body.isGenerator;
     }
diff --git a/pkg/analyzer/lib/src/summary2/link.dart b/pkg/analyzer/lib/src/summary2/link.dart
index 0d3c3ee..05189e2 100644
--- a/pkg/analyzer/lib/src/summary2/link.dart
+++ b/pkg/analyzer/lib/src/summary2/link.dart
@@ -100,16 +100,9 @@
     timerLinkingRemoveBundle.stop();
   }
 
-  void _addSyntheticConstructors() {
-    for (var library in builders.values) {
-      library.addSyntheticConstructors();
-    }
-  }
-
   void _buildOutlines() {
     _resolveUriDirectives();
     _computeLibraryScopes();
-    _addSyntheticConstructors();
     _createTypeSystem();
     _resolveTypes();
     TypeAliasSelfReferenceFinder().perform(this);