Version 2.13.0-114.0.dev

Merge commit '8f2ca0b2482bf6acde1e90aab3745de407d4e51a' into 'dev'
diff --git a/pkg/analysis_server/tool/code_completion/completion_metrics.dart b/pkg/analysis_server/tool/code_completion/completion_metrics.dart
index cd32542..4b13c5a8 100644
--- a/pkg/analysis_server/tool/code_completion/completion_metrics.dart
+++ b/pkg/analysis_server/tool/code_completion/completion_metrics.dart
@@ -156,10 +156,6 @@
             'support in LSP.',
         defaultsTo: false,
         negatable: false)
-    ..addFlag(CompletionMetricsOptions.MD,
-        help: 'Use markdown as the output format.',
-        defaultsTo: false,
-        negatable: false)
     ..addOption(
       'help',
       abbr: 'h',
@@ -783,13 +779,8 @@
   }
 
   void printHeading(int level, String heading) {
-    if (options.markdown) {
-      var prefix = '#' * level;
-      print('$prefix $heading');
-    } else {
-      print(heading);
-      print(((level == 1) ? '=' : '-') * heading.length);
-    }
+    var prefix = '#' * level;
+    print('$prefix $heading');
     print('');
   }
 
@@ -818,6 +809,7 @@
       ['', 'mrr', 'inverse mrr', 'mrr_5', 'inverse mrr_5', 'count'],
       toRow(metrics.mrrComputer),
       toRow(metrics.successfulMrrComputer),
+      ['', '', '', '', '', ''],
       for (var group in groups) toRow(metrics.groupMrrComputers[group]),
     ];
     rightJustifyColumns(table, [2, 4, 5]);
@@ -1423,9 +1415,6 @@
   /// computing suggestions.
   static const String AVAILABLE_SUGGESTIONS = 'available-suggestions';
 
-  /// A flag that causes the output to be in markdown format.
-  static const String MD = 'md';
-
   /// An option to control whether and how overlays should be produced.
   static const String OVERLAY = 'overlay';
 
@@ -1473,9 +1462,6 @@
   /// run.
   final bool availableSuggestions;
 
-  /// A flag indicating whether the output should use markdown.
-  final bool markdown;
-
   /// The overlay mode that should be used.
   final String overlay;
 
@@ -1509,7 +1495,6 @@
   factory CompletionMetricsOptions(results) {
     return CompletionMetricsOptions._(
         availableSuggestions: results[AVAILABLE_SUGGESTIONS],
-        markdown: results[MD],
         overlay: results[OVERLAY],
         printMissedCompletionDetails: results[PRINT_MISSED_COMPLETION_DETAILS],
         printMissedCompletionSummary: results[PRINT_MISSED_COMPLETION_SUMMARY],
@@ -1521,7 +1506,6 @@
 
   CompletionMetricsOptions._(
       {@required this.availableSuggestions,
-      @required this.markdown,
       @required this.overlay,
       @required this.printMissedCompletionDetails,
       @required this.printMissedCompletionSummary,
diff --git a/pkg/analyzer/lib/src/dart/analysis/cache.dart b/pkg/analyzer/lib/src/dart/analysis/cache.dart
index 5f50eb1..ca97db6 100644
--- a/pkg/analyzer/lib/src/dart/analysis/cache.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/cache.dart
@@ -38,17 +38,18 @@
   }
 
   void _evict() {
-    while (_currentSizeBytes > _maxSizeBytes) {
-      if (_map.isEmpty) {
-        // Should be impossible, since _currentSizeBytes should always match
-        // _map.  But recover anyway.
-        assert(false);
-        _currentSizeBytes = 0;
-        break;
+    if (_currentSizeBytes > _maxSizeBytes) {
+      var keysToRemove = <K>[];
+      for (var entry in _map.entries) {
+        keysToRemove.add(entry.key);
+        _currentSizeBytes -= _meter(entry.value);
+        if (_currentSizeBytes <= _maxSizeBytes) {
+          break;
+        }
       }
-      K key = _map.keys.first;
-      V value = _map.remove(key)!;
-      _currentSizeBytes -= _meter(value);
+      for (var key in keysToRemove) {
+        _map.remove(key);
+      }
     }
   }
 }
diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart
index b48310d..e0cbb1c 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast.dart
@@ -50,7 +50,7 @@
   Token get endToken => _strings.endToken!;
 
   @override
-  NodeList<StringLiteral> get strings => _strings;
+  NodeListImpl<StringLiteral> get strings => _strings;
 
   @override
   E? accept<E>(AstVisitor<E> visitor) => visitor.visitAdjacentStrings(this);
@@ -107,7 +107,7 @@
   }
 
   @override
-  Comment? get documentationComment => _comment;
+  CommentImpl? get documentationComment => _comment;
 
   @override
   set documentationComment(Comment? comment) {
@@ -115,7 +115,7 @@
   }
 
   @override
-  NodeList<Annotation> get metadata => _metadata;
+  NodeListImpl<Annotation> get metadata => _metadata;
 
   @override
   List<AstNode> get sortedCommentAndAnnotations {
@@ -226,7 +226,7 @@
   }
 
   @override
-  ArgumentList? get arguments => _arguments;
+  ArgumentListImpl? get arguments => _arguments;
 
   @override
   set arguments(ArgumentList? arguments) {
@@ -246,7 +246,7 @@
     ..add(_arguments);
 
   @override
-  SimpleIdentifier? get constructorName => _constructorName;
+  SimpleIdentifierImpl? get constructorName => _constructorName;
 
   @override
   set constructorName(SimpleIdentifier? name) {
@@ -279,7 +279,7 @@
   }
 
   @override
-  Identifier get name => _name;
+  IdentifierImpl get name => _name;
 
   @override
   set name(Identifier name) {
@@ -290,7 +290,7 @@
   AstNode get parent => super.parent!;
 
   @override
-  TypeArgumentList? get typeArguments => _typeArguments;
+  TypeArgumentListImpl? get typeArguments => _typeArguments;
 
   /// Sets the type arguments to the constructor being invoked to the given
   /// [typeArguments].
@@ -347,7 +347,7 @@
   }
 
   @override
-  NodeList<Expression> get arguments => _arguments;
+  NodeListImpl<Expression> get arguments => _arguments;
 
   @override
   Token get beginToken => leftParenthesis;
@@ -440,7 +440,7 @@
   Token get endToken => _type.endToken;
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   @override
   set expression(Expression expression) {
@@ -451,7 +451,7 @@
   Precedence get precedence => Precedence.relational;
 
   @override
-  TypeAnnotation get type => _type;
+  TypeAnnotationImpl get type => _type;
 
   @override
   set type(TypeAnnotation type) {
@@ -513,7 +513,7 @@
     ..add(rightParenthesis);
 
   @override
-  Expression get condition => _condition;
+  ExpressionImpl get condition => _condition;
 
   @override
   set condition(Expression condition) {
@@ -524,7 +524,7 @@
   Token get endToken => rightParenthesis;
 
   @override
-  Expression? get message => _message;
+  ExpressionImpl? get message => _message;
 
   @override
   set message(Expression? expression) {
@@ -589,7 +589,7 @@
     ..add(semicolon);
 
   @override
-  Expression get condition => _condition;
+  ExpressionImpl get condition => _condition;
 
   @override
   set condition(Expression condition) {
@@ -600,7 +600,7 @@
   Token get endToken => semicolon;
 
   @override
-  Expression? get message => _message;
+  ExpressionImpl? get message => _message;
 
   @override
   set message(Expression? expression) {
@@ -659,7 +659,7 @@
   Token get endToken => _rightHandSide.endToken;
 
   @override
-  Expression get leftHandSide => _leftHandSide;
+  ExpressionImpl get leftHandSide => _leftHandSide;
 
   @override
   set leftHandSide(Expression expression) {
@@ -670,7 +670,7 @@
   Precedence get precedence => Precedence.assignment;
 
   @override
-  Expression get rightHandSide => _rightHandSide;
+  ExpressionImpl get rightHandSide => _rightHandSide;
 
   @override
   set rightHandSide(Expression expression) {
@@ -869,7 +869,7 @@
   Token get endToken => _expression.endToken;
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   @override
   set expression(Expression expression) {
@@ -929,7 +929,7 @@
   Token get endToken => _rightOperand.endToken;
 
   @override
-  Expression get leftOperand => _leftOperand;
+  ExpressionImpl get leftOperand => _leftOperand;
 
   @override
   set leftOperand(Expression expression) {
@@ -940,7 +940,7 @@
   Precedence get precedence => Precedence.forTokenType(operator.type);
 
   @override
-  Expression get rightOperand => _rightOperand;
+  ExpressionImpl get rightOperand => _rightOperand;
 
   @override
   set rightOperand(Expression expression) {
@@ -993,7 +993,7 @@
   }
 
   @override
-  Block get block => _block;
+  BlockImpl get block => _block;
 
   @override
   set block(Block block) {
@@ -1059,7 +1059,7 @@
   Token get endToken => rightBracket;
 
   @override
-  NodeList<Statement> get statements => _statements;
+  NodeListImpl<Statement> get statements => _statements;
 
   @override
   E? accept<E>(AstVisitor<E> visitor) => visitor.visitBlock(this);
@@ -1150,7 +1150,7 @@
   Token get endToken => semicolon;
 
   @override
-  SimpleIdentifier? get label => _label;
+  SimpleIdentifierImpl? get label => _label;
 
   @override
   set label(SimpleIdentifier? identifier) {
@@ -1200,7 +1200,7 @@
   Token get beginToken => _target.beginToken;
 
   @override
-  NodeList<Expression> get cascadeSections => _cascadeSections;
+  NodeListImpl<Expression> get cascadeSections => _cascadeSections;
 
   @override
   Iterable<SyntacticEntity> get childEntities => ChildEntities()
@@ -1219,7 +1219,7 @@
   Precedence get precedence => Precedence.cascade;
 
   @override
-  Expression get target => _target;
+  ExpressionImpl get target => _target;
 
   @override
   set target(Expression target) {
@@ -1321,7 +1321,7 @@
   }
 
   @override
-  Block get body => _body;
+  BlockImpl get body => _body;
 
   @override
   set body(Block block) {
@@ -1344,7 +1344,7 @@
   Token get endToken => _body.endToken;
 
   @override
-  SimpleIdentifier? get exceptionParameter => _exceptionParameter;
+  SimpleIdentifierImpl? get exceptionParameter => _exceptionParameter;
 
   @override
   set exceptionParameter(SimpleIdentifier? parameter) {
@@ -1352,7 +1352,7 @@
   }
 
   @override
-  TypeAnnotation? get exceptionType => _exceptionType;
+  TypeAnnotationImpl? get exceptionType => _exceptionType;
 
   @override
   set exceptionType(TypeAnnotation? exceptionType) {
@@ -1360,7 +1360,7 @@
   }
 
   @override
-  SimpleIdentifier? get stackTraceParameter => _stackTraceParameter;
+  SimpleIdentifierImpl? get stackTraceParameter => _stackTraceParameter;
 
   @override
   set stackTraceParameter(SimpleIdentifier? parameter) {
@@ -1479,7 +1479,7 @@
   ClassElement? get declaredElement => _name.staticElement as ClassElement?;
 
   @override
-  ExtendsClause? get extendsClause => _extendsClause;
+  ExtendsClauseImpl? get extendsClause => _extendsClause;
 
   @override
   set extendsClause(ExtendsClause? extendsClause) {
@@ -1498,7 +1498,7 @@
   bool get isAbstract => abstractKeyword != null;
 
   @override
-  NativeClause? get nativeClause => _nativeClause;
+  NativeClauseImpl? get nativeClause => _nativeClause;
 
   @override
   set nativeClause(NativeClause? nativeClause) {
@@ -1506,7 +1506,7 @@
   }
 
   @override
-  WithClause? get withClause => _withClause;
+  WithClauseImpl? get withClause => _withClause;
 
   @override
   set withClause(WithClause? withClause) {
@@ -1597,7 +1597,7 @@
   Token get endToken => rightBracket;
 
   @override
-  ImplementsClause? get implementsClause => _implementsClause;
+  ImplementsClauseImpl? get implementsClause => _implementsClause;
 
   set implementsClause(ImplementsClause? implementsClause) {
     _implementsClause =
@@ -1605,10 +1605,10 @@
   }
 
   @override
-  NodeList<ClassMember> get members => _members;
+  NodeListImpl<ClassMember> get members => _members;
 
   @override
-  TypeParameterList? get typeParameters => _typeParameters;
+  TypeParameterListImpl? get typeParameters => _typeParameters;
 
   set typeParameters(TypeParameterList? typeParameters) {
     _typeParameters = _becomeParentOf(typeParameters as TypeParameterListImpl?);
@@ -1734,7 +1734,7 @@
   }
 
   @override
-  ImplementsClause? get implementsClause => _implementsClause;
+  ImplementsClauseImpl? get implementsClause => _implementsClause;
 
   @override
   set implementsClause(ImplementsClause? implementsClause) {
@@ -1746,7 +1746,7 @@
   bool get isAbstract => abstractKeyword != null;
 
   @override
-  TypeName get superclass => _superclass;
+  TypeNameImpl get superclass => _superclass;
 
   @override
   set superclass(TypeName superclass) {
@@ -1754,7 +1754,7 @@
   }
 
   @override
-  TypeParameterList? get typeParameters => _typeParameters;
+  TypeParameterListImpl? get typeParameters => _typeParameters;
 
   @override
   set typeParameters(TypeParameterList? typeParameters) {
@@ -1762,7 +1762,7 @@
   }
 
   @override
-  WithClause get withClause => _withClause;
+  WithClauseImpl get withClause => _withClause;
 
   @override
   set withClause(WithClause withClause) {
@@ -1861,7 +1861,7 @@
   bool get isEndOfLine => _type == CommentType.END_OF_LINE;
 
   @override
-  NodeList<CommentReference> get references => _references;
+  NodeListImpl<CommentReference> get references => _references;
 
   @override
   E? accept<E>(AstVisitor<E> visitor) => visitor.visitComment(this);
@@ -1920,7 +1920,7 @@
   Token get endToken => _identifier.endToken;
 
   @override
-  Identifier get identifier => _identifier;
+  IdentifierImpl get identifier => _identifier;
 
   @override
   set identifier(Identifier identifier) {
@@ -2048,10 +2048,10 @@
   }
 
   @override
-  NodeList<CompilationUnitMember> get declarations => _declarations;
+  NodeListImpl<CompilationUnitMember> get declarations => _declarations;
 
   @override
-  NodeList<Directive> get directives => _directives;
+  NodeListImpl<Directive> get directives => _directives;
 
   @override
   set element(CompilationUnitElement? element) {
@@ -2203,7 +2203,7 @@
     ..add(_elseExpression);
 
   @override
-  Expression get condition => _condition;
+  ExpressionImpl get condition => _condition;
 
   @override
   set condition(Expression expression) {
@@ -2211,7 +2211,7 @@
   }
 
   @override
-  Expression get elseExpression => _elseExpression;
+  ExpressionImpl get elseExpression => _elseExpression;
 
   @override
   set elseExpression(Expression expression) {
@@ -2225,7 +2225,7 @@
   Precedence get precedence => Precedence.conditional;
 
   @override
-  Expression get thenExpression => _thenExpression;
+  ExpressionImpl get thenExpression => _thenExpression;
 
   @override
   set thenExpression(Expression expression) {
@@ -2300,7 +2300,7 @@
   Token get endToken => _uri.endToken;
 
   @override
-  DottedName get name => _name;
+  DottedNameImpl get name => _name;
 
   @override
   set name(DottedName name) {
@@ -2308,7 +2308,7 @@
   }
 
   @override
-  StringLiteral get uri => _uri;
+  StringLiteralImpl get uri => _uri;
 
   @override
   set uri(StringLiteral uri) {
@@ -2316,7 +2316,7 @@
   }
 
   @override
-  StringLiteral? get value => _value;
+  StringLiteralImpl? get value => _value;
 
   @override
   set value(StringLiteral? value) {
@@ -2449,7 +2449,7 @@
   }
 
   @override
-  FunctionBody get body => _body;
+  FunctionBodyImpl get body => _body;
 
   @override
   set body(FunctionBody functionBody) {
@@ -2486,10 +2486,10 @@
   }
 
   @override
-  NodeList<ConstructorInitializer> get initializers => _initializers;
+  NodeListImpl<ConstructorInitializer> get initializers => _initializers;
 
   @override
-  SimpleIdentifier? get name => _name;
+  SimpleIdentifierImpl? get name => _name;
 
   @override
   set name(SimpleIdentifier? identifier) {
@@ -2497,7 +2497,7 @@
   }
 
   @override
-  FormalParameterList get parameters => _parameters;
+  FormalParameterListImpl get parameters => _parameters;
 
   @override
   set parameters(FormalParameterList parameters) {
@@ -2505,7 +2505,7 @@
   }
 
   @override
-  ConstructorName? get redirectedConstructor => _redirectedConstructor;
+  ConstructorNameImpl? get redirectedConstructor => _redirectedConstructor;
 
   @override
   set redirectedConstructor(ConstructorName? redirectedConstructor) {
@@ -2514,7 +2514,7 @@
   }
 
   @override
-  Identifier get returnType => _returnType;
+  IdentifierImpl get returnType => _returnType;
 
   @override
   set returnType(Identifier typeName) {
@@ -2591,7 +2591,7 @@
   Token get endToken => _expression.endToken;
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   @override
   set expression(Expression expression) {
@@ -2599,7 +2599,7 @@
   }
 
   @override
-  SimpleIdentifier get fieldName => _fieldName;
+  SimpleIdentifierImpl get fieldName => _fieldName;
 
   @override
   set fieldName(SimpleIdentifier identifier) {
@@ -2672,7 +2672,7 @@
   }
 
   @override
-  SimpleIdentifier? get name => _name;
+  SimpleIdentifierImpl? get name => _name;
 
   @override
   set name(SimpleIdentifier? name) {
@@ -2680,7 +2680,7 @@
   }
 
   @override
-  TypeName get type => _type;
+  TypeNameImpl get type => _type;
 
   @override
   set type(TypeName type) {
@@ -2739,7 +2739,7 @@
   Token get endToken => semicolon;
 
   @override
-  SimpleIdentifier? get label => _label;
+  SimpleIdentifierImpl? get label => _label;
 
   @override
   set label(SimpleIdentifier? identifier) {
@@ -2818,7 +2818,7 @@
   }
 
   @override
-  SimpleIdentifier get identifier => _identifier;
+  SimpleIdentifierImpl get identifier => _identifier;
 
   @override
   set identifier(SimpleIdentifier identifier) {
@@ -2832,7 +2832,7 @@
   bool get isFinal => keyword?.keyword == Keyword.FINAL;
 
   @override
-  TypeAnnotation? get type => _type;
+  TypeAnnotationImpl? get type => _type;
 
   @override
   set type(TypeAnnotation? type) {
@@ -2915,7 +2915,7 @@
   ParameterElement? get declaredElement => _parameter.declaredElement;
 
   @override
-  Expression? get defaultValue => _defaultValue;
+  ExpressionImpl? get defaultValue => _defaultValue;
 
   @override
   set defaultValue(Expression? expression) {
@@ -2931,7 +2931,7 @@
   }
 
   @override
-  SimpleIdentifier? get identifier => _parameter.identifier;
+  SimpleIdentifierImpl? get identifier => _parameter.identifier;
 
   @override
   bool get isConst => _parameter.isConst;
@@ -2940,10 +2940,10 @@
   bool get isFinal => _parameter.isFinal;
 
   @override
-  NodeList<Annotation> get metadata => _parameter.metadata;
+  NodeListImpl<Annotation> get metadata => _parameter.metadata;
 
   @override
-  NormalFormalParameter get parameter => _parameter;
+  NormalFormalParameterImpl get parameter => _parameter;
 
   @override
   set parameter(NormalFormalParameter formalParameter) {
@@ -3041,7 +3041,7 @@
   Token get beginToken => doKeyword;
 
   @override
-  Statement get body => _body;
+  StatementImpl get body => _body;
 
   @override
   set body(Statement statement) {
@@ -3059,7 +3059,7 @@
     ..add(semicolon);
 
   @override
-  Expression get condition => _condition;
+  ExpressionImpl get condition => _condition;
 
   @override
   set condition(Expression expression) {
@@ -3101,7 +3101,7 @@
       ChildEntities()..addAll(_components);
 
   @override
-  NodeList<SimpleIdentifier> get components => _components;
+  NodeListImpl<SimpleIdentifier> get components => _components;
 
   @override
   Token get endToken => _components.endToken!;
@@ -3252,7 +3252,7 @@
   Token get firstTokenAfterCommentAndMetadata => _name.beginToken;
 
   @override
-  SimpleIdentifier get name => _name;
+  SimpleIdentifierImpl get name => _name;
 
   @override
   set name(SimpleIdentifier name) {
@@ -3319,7 +3319,7 @@
     ..add(rightBracket);
 
   @override
-  NodeList<EnumConstantDeclaration> get constants => _constants;
+  NodeListImpl<EnumConstantDeclaration> get constants => _constants;
 
   @override
   ClassElement? get declaredElement => _name.staticElement as ClassElement?;
@@ -3453,7 +3453,7 @@
   }
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   @override
   set expression(Expression expression) {
@@ -3578,7 +3578,7 @@
   }
 
   @override
-  Expression get unParenthesized => this;
+  ExpressionImpl get unParenthesized => this;
 }
 
 /// An expression used as a statement.
@@ -3616,7 +3616,7 @@
   }
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   @override
   set expression(Expression expression) {
@@ -3664,7 +3664,7 @@
   Token get endToken => _superclass.endToken;
 
   @override
-  TypeName get superclass => _superclass;
+  TypeNameImpl get superclass => _superclass;
 
   @override
   set superclass(TypeName name) {
@@ -3759,7 +3759,7 @@
   Token get endToken => rightBracket;
 
   @override
-  TypeAnnotation get extendedType => _extendedType;
+  TypeAnnotationImpl get extendedType => _extendedType;
 
   set extendedType(TypeAnnotation extendedClass) {
     _extendedType = _becomeParentOf(extendedClass as TypeAnnotationImpl);
@@ -3769,17 +3769,17 @@
   Token get firstTokenAfterCommentAndMetadata => extensionKeyword;
 
   @override
-  NodeList<ClassMember> get members => _members;
+  NodeListImpl<ClassMember> get members => _members;
 
   @override
-  SimpleIdentifier? get name => _name;
+  SimpleIdentifierImpl? get name => _name;
 
   set name(SimpleIdentifier? identifier) {
     _name = _becomeParentOf(identifier as SimpleIdentifierImpl?);
   }
 
   @override
-  TypeParameterList? get typeParameters => _typeParameters;
+  TypeParameterListImpl? get typeParameters => _typeParameters;
 
   set typeParameters(TypeParameterList? typeParameters) {
     _typeParameters = _becomeParentOf(typeParameters as TypeParameterListImpl?);
@@ -3831,7 +3831,7 @@
   }
 
   @override
-  ArgumentList get argumentList => _argumentList;
+  ArgumentListImpl get argumentList => _argumentList;
 
   set argumentList(ArgumentList argumentList) {
     _argumentList = _becomeParentOf(argumentList as ArgumentListImpl);
@@ -3850,7 +3850,7 @@
   Token get endToken => _argumentList.endToken;
 
   @override
-  Identifier get extensionName => _extensionName;
+  IdentifierImpl get extensionName => _extensionName;
 
   set extensionName(Identifier extensionName) {
     _extensionName = _becomeParentOf(extensionName as IdentifierImpl);
@@ -3872,7 +3872,7 @@
   }
 
   @override
-  TypeArgumentList? get typeArguments => _typeArguments;
+  TypeArgumentListImpl? get typeArguments => _typeArguments;
 
   set typeArguments(TypeArgumentList? typeArguments) {
     _typeArguments = _becomeParentOf(typeArguments as TypeArgumentListImpl?);
@@ -3948,7 +3948,7 @@
   Token get endToken => semicolon;
 
   @override
-  VariableDeclarationList get fields => _fieldList;
+  VariableDeclarationListImpl get fields => _fieldList;
 
   @override
   set fields(VariableDeclarationList fields) {
@@ -4047,7 +4047,7 @@
 
   @override
   Token get beginToken {
-    NodeList<Annotation> metadata = this.metadata;
+    NodeListImpl<Annotation> metadata = this.metadata;
     if (metadata.isNotEmpty) {
       return metadata.beginToken!;
     } else if (requiredKeyword != null) {
@@ -4077,7 +4077,7 @@
   }
 
   @override
-  SimpleIdentifier get identifier => super.identifier!;
+  SimpleIdentifierImpl get identifier => super.identifier!;
 
   @override
   bool get isConst => keyword?.keyword == Keyword.CONST;
@@ -4086,7 +4086,7 @@
   bool get isFinal => keyword?.keyword == Keyword.FINAL;
 
   @override
-  FormalParameterList? get parameters => _parameters;
+  FormalParameterListImpl? get parameters => _parameters;
 
   @override
   set parameters(FormalParameterList? parameters) {
@@ -4094,7 +4094,7 @@
   }
 
   @override
-  TypeAnnotation? get type => _type;
+  TypeAnnotationImpl? get type => _type;
 
   @override
   set type(TypeAnnotation? type) {
@@ -4102,7 +4102,7 @@
   }
 
   @override
-  TypeParameterList? get typeParameters => _typeParameters;
+  TypeParameterListImpl? get typeParameters => _typeParameters;
 
   @override
   set typeParameters(TypeParameterList? typeParameters) {
@@ -4149,7 +4149,7 @@
   Token get endToken => _iterable.endToken;
 
   @override
-  Expression get iterable => _iterable;
+  ExpressionImpl get iterable => _iterable;
 
   set iterable(Expression expression) {
     _iterable = _becomeParentOf(expression as ExpressionImpl);
@@ -4183,7 +4183,7 @@
     ..addAll(super.childEntities);
 
   @override
-  DeclaredIdentifier get loopVariable => _loopVariable;
+  DeclaredIdentifierImpl get loopVariable => _loopVariable;
 
   set loopVariable(DeclaredIdentifier variable) {
     _loopVariable = _becomeParentOf(variable as DeclaredIdentifierImpl);
@@ -4222,7 +4222,7 @@
     ..addAll(super.childEntities);
 
   @override
-  SimpleIdentifier get identifier => _identifier;
+  SimpleIdentifierImpl get identifier => _identifier;
 
   set identifier(SimpleIdentifier identifier) {
     _identifier = _becomeParentOf(identifier as SimpleIdentifierImpl);
@@ -4268,7 +4268,7 @@
   Token get beginToken => awaitKeyword ?? forKeyword;
 
   @override
-  CollectionElement get body => _body;
+  CollectionElementImpl get body => _body;
 
   set body(CollectionElement statement) {
     _body = _becomeParentOf(statement as CollectionElementImpl);
@@ -4287,7 +4287,7 @@
   Token get endToken => _body.endToken;
 
   @override
-  ForLoopParts get forLoopParts => _forLoopParts;
+  ForLoopPartsImpl get forLoopParts => _forLoopParts;
 
   set forLoopParts(ForLoopParts forLoopParts) {
     _forLoopParts = _becomeParentOf(forLoopParts as ForLoopPartsImpl);
@@ -4462,7 +4462,7 @@
   }
 
   @override
-  NodeList<FormalParameter> get parameters => _parameters;
+  NodeListImpl<FormalParameter> get parameters => _parameters;
 
   @override
   E? accept<E>(AstVisitor<E> visitor) => visitor.visitFormalParameterList(this);
@@ -4508,7 +4508,7 @@
     ..addAll(_updaters);
 
   @override
-  Expression? get condition => _condition;
+  ExpressionImpl? get condition => _condition;
 
   set condition(Expression? expression) {
     _condition = _becomeParentOf(expression as ExpressionImpl?);
@@ -4518,7 +4518,7 @@
   Token get endToken => _updaters.endToken ?? rightSeparator;
 
   @override
-  NodeList<Expression> get updaters => _updaters;
+  NodeListImpl<Expression> get updaters => _updaters;
 
   @override
   void visitChildren(AstVisitor visitor) {
@@ -4556,7 +4556,7 @@
     ..addAll(super.childEntities);
 
   @override
-  VariableDeclarationList get variables => _variableList;
+  VariableDeclarationListImpl get variables => _variableList;
 
   set variables(VariableDeclarationList? variableList) {
     _variableList =
@@ -4603,7 +4603,7 @@
     ..addAll(super.childEntities);
 
   @override
-  Expression? get initialization => _initialization;
+  ExpressionImpl? get initialization => _initialization;
 
   set initialization(Expression? initialization) {
     _initialization = _becomeParentOf(initialization as ExpressionImpl?);
@@ -4649,7 +4649,7 @@
   Token get beginToken => awaitKeyword ?? forKeyword;
 
   @override
-  Statement get body => _body;
+  StatementImpl get body => _body;
 
   set body(Statement statement) {
     _body = _becomeParentOf(statement as StatementImpl);
@@ -4668,7 +4668,7 @@
   Token get endToken => _body.endToken;
 
   @override
-  ForLoopParts get forLoopParts => _forLoopParts;
+  ForLoopPartsImpl get forLoopParts => _forLoopParts;
 
   set forLoopParts(ForLoopParts forLoopParts) {
     _forLoopParts = _becomeParentOf(forLoopParts as ForLoopPartsImpl);
@@ -4809,7 +4809,7 @@
   }
 
   @override
-  FunctionExpression get functionExpression => _functionExpression;
+  FunctionExpressionImpl get functionExpression => _functionExpression;
 
   @override
   set functionExpression(FunctionExpression functionExpression) {
@@ -4824,7 +4824,7 @@
   bool get isSetter => propertyKeyword?.keyword == Keyword.SET;
 
   @override
-  TypeAnnotation? get returnType => _returnType;
+  TypeAnnotationImpl? get returnType => _returnType;
 
   @override
   set returnType(TypeAnnotation? type) {
@@ -4865,7 +4865,7 @@
   Token get endToken => _functionDeclaration.endToken;
 
   @override
-  FunctionDeclaration get functionDeclaration => _functionDeclaration;
+  FunctionDeclarationImpl get functionDeclaration => _functionDeclaration;
 
   @override
   set functionDeclaration(FunctionDeclaration functionDeclaration) {
@@ -4921,7 +4921,7 @@
   }
 
   @override
-  FunctionBody get body => _body;
+  FunctionBodyImpl get body => _body;
 
   @override
   set body(FunctionBody functionBody) {
@@ -4938,7 +4938,7 @@
   }
 
   @override
-  FormalParameterList? get parameters => _parameters;
+  FormalParameterListImpl? get parameters => _parameters;
 
   @override
   set parameters(FormalParameterList? parameters) {
@@ -4949,7 +4949,7 @@
   Precedence get precedence => Precedence.primary;
 
   @override
-  TypeParameterList? get typeParameters => _typeParameters;
+  TypeParameterListImpl? get typeParameters => _typeParameters;
 
   @override
   set typeParameters(TypeParameterList? typeParameters) {
@@ -5004,7 +5004,7 @@
   Token get endToken => _argumentList.endToken;
 
   @override
-  Expression get function => _function;
+  ExpressionImpl get function => _function;
 
   @override
   set function(Expression expression) {
@@ -5089,7 +5089,7 @@
       _name.staticElement as FunctionTypeAliasElement?;
 
   @override
-  FormalParameterList get parameters => _parameters;
+  FormalParameterListImpl get parameters => _parameters;
 
   @override
   set parameters(FormalParameterList parameters) {
@@ -5097,7 +5097,7 @@
   }
 
   @override
-  TypeAnnotation? get returnType => _returnType;
+  TypeAnnotationImpl? get returnType => _returnType;
 
   @override
   set returnType(TypeAnnotation? type) {
@@ -5105,7 +5105,7 @@
   }
 
   @override
-  TypeParameterList? get typeParameters => _typeParameters;
+  TypeParameterListImpl? get typeParameters => _typeParameters;
 
   @override
   set typeParameters(TypeParameterList? typeParameters) {
@@ -5169,7 +5169,7 @@
 
   @override
   Token get beginToken {
-    NodeList<Annotation> metadata = this.metadata;
+    NodeListImpl<Annotation> metadata = this.metadata;
     if (metadata.isNotEmpty) {
       return metadata.beginToken!;
     } else if (requiredKeyword != null) {
@@ -5190,7 +5190,7 @@
   Token get endToken => question ?? _parameters.endToken;
 
   @override
-  SimpleIdentifier get identifier => super.identifier!;
+  SimpleIdentifierImpl get identifier => super.identifier!;
 
   @override
   bool get isConst => false;
@@ -5199,7 +5199,7 @@
   bool get isFinal => false;
 
   @override
-  FormalParameterList get parameters => _parameters;
+  FormalParameterListImpl get parameters => _parameters;
 
   @override
   set parameters(FormalParameterList parameters) {
@@ -5207,7 +5207,7 @@
   }
 
   @override
-  TypeAnnotation? get returnType => _returnType;
+  TypeAnnotationImpl? get returnType => _returnType;
 
   @override
   set returnType(TypeAnnotation? type) {
@@ -5215,7 +5215,7 @@
   }
 
   @override
-  TypeParameterList? get typeParameters => _typeParameters;
+  TypeParameterListImpl? get typeParameters => _typeParameters;
 
   @override
   set typeParameters(TypeParameterList? typeParameters) {
@@ -5314,7 +5314,7 @@
   Token get endToken => question ?? _parameters.endToken;
 
   @override
-  FormalParameterList get parameters => _parameters;
+  FormalParameterListImpl get parameters => _parameters;
 
   @override
   set parameters(FormalParameterList parameters) {
@@ -5322,7 +5322,7 @@
   }
 
   @override
-  TypeAnnotation? get returnType => _returnType;
+  TypeAnnotationImpl? get returnType => _returnType;
 
   @override
   set returnType(TypeAnnotation? type) {
@@ -5332,7 +5332,7 @@
   /// Return the type parameters for the function type, or `null` if the
   /// function type does not have any type parameters.
   @override
-  TypeParameterList? get typeParameters => _typeParameters;
+  TypeParameterListImpl? get typeParameters => _typeParameters;
 
   /// Set the type parameters for the function type to the given list of
   /// [typeParameters].
@@ -5419,7 +5419,7 @@
   }
 
   @override
-  TypeAnnotation get type => _type;
+  TypeAnnotationImpl get type => _type;
 
   /// Set the type being defined by the alias to the given [TypeAnnotation].
   set type(TypeAnnotation typeAnnotation) {
@@ -5427,7 +5427,7 @@
   }
 
   @override
-  TypeParameterList? get typeParameters => _typeParameters;
+  TypeParameterListImpl? get typeParameters => _typeParameters;
 
   @override
   set typeParameters(TypeParameterList? typeParameters) {
@@ -5476,7 +5476,7 @@
   Token get endToken => _hiddenNames.endToken!;
 
   @override
-  NodeList<SimpleIdentifier> get hiddenNames => _hiddenNames;
+  NodeListImpl<SimpleIdentifier> get hiddenNames => _hiddenNames;
 
   @override
   E? accept<E>(AstVisitor<E> visitor) => visitor.visitHideCombinator(this);
@@ -5548,7 +5548,7 @@
     ..add(_elseElement);
 
   @override
-  Expression get condition => _condition;
+  ExpressionImpl get condition => _condition;
 
   set condition(Expression condition) {
     _condition = _becomeParentOf(condition as ExpressionImpl);
@@ -5565,7 +5565,7 @@
   Token get endToken => _elseElement?.endToken ?? _thenElement.endToken;
 
   @override
-  CollectionElement get thenElement => _thenElement;
+  CollectionElementImpl get thenElement => _thenElement;
 
   set thenElement(CollectionElement element) {
     _thenElement = _becomeParentOf(element as CollectionElementImpl);
@@ -5638,7 +5638,7 @@
     ..add(_elseStatement);
 
   @override
-  Expression get condition => _condition;
+  ExpressionImpl get condition => _condition;
 
   @override
   set condition(Expression condition) {
@@ -5646,7 +5646,7 @@
   }
 
   @override
-  Statement? get elseStatement => _elseStatement;
+  StatementImpl? get elseStatement => _elseStatement;
 
   @override
   set elseStatement(Statement? statement) {
@@ -5662,7 +5662,7 @@
   }
 
   @override
-  Statement get thenStatement => _thenStatement;
+  StatementImpl get thenStatement => _thenStatement;
 
   @override
   set thenStatement(Statement statement) {
@@ -5710,7 +5710,7 @@
   Token get endToken => _interfaces.endToken!;
 
   @override
-  NodeList<TypeName> get interfaces => _interfaces;
+  NodeListImpl<TypeName> get interfaces => _interfaces;
 
   @override
   E? accept<E>(AstVisitor<E> visitor) => visitor.visitImplementsClause(this);
@@ -5781,7 +5781,7 @@
   ImportElement? get element => super.element as ImportElement?;
 
   @override
-  SimpleIdentifier? get prefix => _prefix;
+  SimpleIdentifierImpl? get prefix => _prefix;
 
   @override
   set prefix(SimpleIdentifier? identifier) {
@@ -5872,7 +5872,7 @@
   Token get endToken => rightBracket;
 
   @override
-  Expression get index => _index;
+  ExpressionImpl get index => _index;
 
   @override
   set index(Expression expression) {
@@ -5900,7 +5900,7 @@
   Precedence get precedence => Precedence.postfix;
 
   @override
-  Expression get realTarget {
+  ExpressionImpl get realTarget {
     if (isCascaded) {
       return _ancestorCascade.target;
     }
@@ -5908,7 +5908,7 @@
   }
 
   @override
-  Expression? get target => _target;
+  ExpressionImpl? get target => _target;
 
   @override
   set target(Expression? expression) {
@@ -5918,10 +5918,10 @@
   /// Return the cascade that contains this [IndexExpression].
   ///
   /// We expect that [isCascaded] is `true`.
-  CascadeExpression get _ancestorCascade {
+  CascadeExpressionImpl get _ancestorCascade {
     assert(isCascaded);
     for (var ancestor = parent!;; ancestor = ancestor.parent!) {
-      if (ancestor is CascadeExpression) {
+      if (ancestor is CascadeExpressionImpl) {
         return ancestor;
       }
     }
@@ -6033,7 +6033,7 @@
   }
 
   @override
-  ArgumentList get argumentList => _argumentList;
+  ArgumentListImpl get argumentList => _argumentList;
 
   @override
   set argumentList(ArgumentList argumentList) {
@@ -6051,7 +6051,7 @@
     ..add(_argumentList);
 
   @override
-  ConstructorName get constructorName => _constructorName;
+  ConstructorNameImpl get constructorName => _constructorName;
 
   @override
   set constructorName(ConstructorName name) {
@@ -6080,7 +6080,7 @@
   /// with the class in which the constructor is defined. It is always an error
   /// if there are type arguments because Dart doesn't currently support generic
   /// constructors, but we capture them in the AST in order to recover better.
-  TypeArgumentList? get typeArguments => _typeArguments;
+  TypeArgumentListImpl? get typeArguments => _typeArguments;
 
   /// Return the type arguments associated with the constructor, rather than
   /// with the class in which the constructor is defined. It is always an error
@@ -6255,7 +6255,7 @@
   Token get endToken => rightBracket ?? _expression.endToken;
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   @override
   set expression(Expression expression) {
@@ -6345,14 +6345,14 @@
   }
 
   @override
-  ArgumentList get argumentList => _argumentList;
+  ArgumentListImpl get argumentList => _argumentList;
 
   set argumentList(ArgumentList argumentList) {
     _argumentList = _becomeParentOf(argumentList as ArgumentListImpl);
   }
 
   @override
-  TypeArgumentList? get typeArguments => _typeArguments;
+  TypeArgumentListImpl? get typeArguments => _typeArguments;
 
   set typeArguments(TypeArgumentList? typeArguments) {
     _typeArguments = _becomeParentOf(typeArguments as TypeArgumentListImpl?);
@@ -6400,7 +6400,7 @@
   Token get endToken => _type.endToken;
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   @override
   set expression(Expression expression) {
@@ -6411,7 +6411,7 @@
   Precedence get precedence => Precedence.relational;
 
   @override
-  TypeAnnotation get type => _type;
+  TypeAnnotationImpl get type => _type;
 
   @override
   set type(TypeAnnotation type) {
@@ -6462,10 +6462,10 @@
   Token get endToken => _statement.endToken;
 
   @override
-  NodeList<Label> get labels => _labels;
+  NodeListImpl<Label> get labels => _labels;
 
   @override
-  Statement get statement => _statement;
+  StatementImpl get statement => _statement;
 
   @override
   set statement(Statement statement) {
@@ -6473,7 +6473,7 @@
   }
 
   @override
-  Statement get unlabeled => _statement.unlabeled;
+  StatementImpl get unlabeled => _statement.unlabeled;
 
   @override
   E? accept<E>(AstVisitor<E> visitor) => visitor.visitLabeledStatement(this);
@@ -6513,7 +6513,7 @@
   Token get endToken => colon;
 
   @override
-  SimpleIdentifier get label => _label;
+  SimpleIdentifierImpl get label => _label;
 
   @override
   set label(SimpleIdentifier label) {
@@ -6573,7 +6573,7 @@
   Token get keyword => libraryKeyword;
 
   @override
-  LibraryIdentifier get name => _name;
+  LibraryIdentifierImpl get name => _name;
 
   @override
   set name(LibraryIdentifier name) {
@@ -6613,7 +6613,7 @@
       ChildEntities()..addAll(_components);
 
   @override
-  NodeList<SimpleIdentifier> get components => _components;
+  NodeListImpl<SimpleIdentifier> get components => _components;
 
   @override
   Token get endToken => _components.endToken!;
@@ -6707,7 +6707,7 @@
     ..add(rightBracket);
 
   @override
-  NodeList<CollectionElement> get elements => _elements;
+  NodeListImpl<CollectionElement> get elements => _elements;
 
   @override
   Token get endToken => rightBracket;
@@ -6783,7 +6783,7 @@
   Token get endToken => _value.endToken;
 
   @override
-  Expression get key => _key;
+  ExpressionImpl get key => _key;
 
   @override
   set key(Expression string) {
@@ -6791,7 +6791,7 @@
   }
 
   @override
-  Expression get value => _value;
+  ExpressionImpl get value => _value;
 
   @override
   set value(Expression expression) {
@@ -6890,7 +6890,7 @@
   }
 
   @override
-  FunctionBody get body => _body;
+  FunctionBodyImpl get body => _body;
 
   @override
   set body(FunctionBody functionBody) {
@@ -6956,7 +6956,7 @@
   bool get isStatic => modifierKeyword?.keyword == Keyword.STATIC;
 
   @override
-  SimpleIdentifier get name => _name;
+  SimpleIdentifierImpl get name => _name;
 
   @override
   set name(SimpleIdentifier identifier) {
@@ -6964,7 +6964,7 @@
   }
 
   @override
-  FormalParameterList? get parameters => _parameters;
+  FormalParameterListImpl? get parameters => _parameters;
 
   @override
   set parameters(FormalParameterList? parameters) {
@@ -6972,7 +6972,7 @@
   }
 
   @override
-  TypeAnnotation? get returnType => _returnType;
+  TypeAnnotationImpl? get returnType => _returnType;
 
   @override
   set returnType(TypeAnnotation? type) {
@@ -6980,7 +6980,7 @@
   }
 
   @override
-  TypeParameterList? get typeParameters => _typeParameters;
+  TypeParameterListImpl? get typeParameters => _typeParameters;
 
   @override
   set typeParameters(TypeParameterList? typeParameters) {
@@ -7060,7 +7060,7 @@
   Token get endToken => _argumentList.endToken;
 
   @override
-  Expression get function => methodName;
+  ExpressionImpl get function => methodName;
 
   @override
   bool get isCascaded =>
@@ -7079,7 +7079,7 @@
   }
 
   @override
-  SimpleIdentifier get methodName => _methodName;
+  SimpleIdentifierImpl get methodName => _methodName;
 
   @override
   set methodName(SimpleIdentifier identifier) {
@@ -7106,7 +7106,7 @@
   Precedence get precedence => Precedence.postfix;
 
   @override
-  Expression? get realTarget {
+  ExpressionImpl? get realTarget {
     if (isCascaded) {
       return _ancestorCascade.target;
     }
@@ -7114,7 +7114,7 @@
   }
 
   @override
-  Expression? get target => _target;
+  ExpressionImpl? get target => _target;
 
   @override
   set target(Expression? expression) {
@@ -7124,10 +7124,10 @@
   /// Return the cascade that contains this [IndexExpression].
   ///
   /// We expect that [isCascaded] is `true`.
-  CascadeExpression get _ancestorCascade {
+  CascadeExpressionImpl get _ancestorCascade {
     assert(isCascaded);
     for (var ancestor = parent!;; ancestor = ancestor.parent!) {
-      if (ancestor is CascadeExpression) {
+      if (ancestor is CascadeExpressionImpl) {
         return ancestor;
       }
     }
@@ -7209,7 +7209,7 @@
   }
 
   @override
-  ImplementsClause? get implementsClause => _implementsClause;
+  ImplementsClauseImpl? get implementsClause => _implementsClause;
 
   @override
   set implementsClause(ImplementsClause? implementsClause) {
@@ -7218,7 +7218,7 @@
   }
 
   @override
-  NodeList<ClassMember> get members => _members;
+  NodeListImpl<ClassMember> get members => _members;
 
   @override
   OnClause? get onClause => _onClause;
@@ -7228,7 +7228,7 @@
   }
 
   @override
-  TypeParameterList? get typeParameters => _typeParameters;
+  TypeParameterListImpl? get typeParameters => _typeParameters;
 
   @override
   set typeParameters(TypeParameterList? typeParameters) {
@@ -7265,7 +7265,7 @@
   }
 
   @override
-  SimpleIdentifier get name => _name;
+  SimpleIdentifierImpl get name => _name;
 
   @override
   set name(SimpleIdentifier identifier) {
@@ -7311,7 +7311,7 @@
   Token get endToken => _expression.endToken;
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   @override
   set expression(Expression expression) {
@@ -7319,7 +7319,7 @@
   }
 
   @override
-  Label get name => _name;
+  LabelImpl get name => _name;
 
   @override
   set name(Label identifier) {
@@ -7385,10 +7385,10 @@
   }
 
   @override
-  NodeList<Combinator> get combinators => _combinators;
+  NodeListImpl<Combinator> get combinators => _combinators;
 
   @override
-  NodeList<Configuration> get configurations => _configurations;
+  NodeListImpl<Configuration> get configurations => _configurations;
 
   @override
   Token get endToken => semicolon;
@@ -7430,7 +7430,7 @@
   }
 
   @override
-  StringLiteral? get name => _name;
+  StringLiteralImpl? get name => _name;
 
   @override
   set name(StringLiteral? name) {
@@ -7483,7 +7483,7 @@
   Token get endToken => semicolon;
 
   @override
-  StringLiteral? get stringLiteral => _stringLiteral;
+  StringLiteralImpl? get stringLiteral => _stringLiteral;
 
   @override
   set stringLiteral(StringLiteral? stringLiteral) {
@@ -7540,7 +7540,7 @@
   }
 
   @override
-  AstNode get owner => _owner;
+  AstNodeImpl get owner => _owner;
 
   @override
   E operator [](int index) {
@@ -7650,7 +7650,7 @@
   }
 
   @override
-  Comment? get documentationComment => _comment;
+  CommentImpl? get documentationComment => _comment;
 
   @override
   set documentationComment(Comment? comment) {
@@ -7658,7 +7658,7 @@
   }
 
   @override
-  SimpleIdentifier? get identifier => _identifier;
+  SimpleIdentifierImpl? get identifier => _identifier;
 
   @override
   set identifier(SimpleIdentifier? identifier) {
@@ -7675,7 +7675,7 @@
   }
 
   @override
-  NodeList<Annotation> get metadata => _metadata;
+  NodeListImpl<Annotation> get metadata => _metadata;
 
   @override
   set metadata(List<Annotation> metadata) {
@@ -7818,7 +7818,7 @@
   Token get endToken => _superclassConstraints.endToken!;
 
   @override
-  NodeList<TypeName> get superclassConstraints => _superclassConstraints;
+  NodeListImpl<TypeName> get superclassConstraints => _superclassConstraints;
 
   @override
   E? accept<E>(AstVisitor<E> visitor) => visitor.visitOnClause(this);
@@ -7865,7 +7865,7 @@
   Token get endToken => rightParenthesis;
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   @override
   set expression(Expression expression) {
@@ -7876,10 +7876,10 @@
   Precedence get precedence => Precedence.primary;
 
   @override
-  Expression get unParenthesized {
+  ExpressionImpl get unParenthesized {
     // This is somewhat inefficient, but it avoids a stack overflow in the
     // degenerate case.
-    Expression expression = _expression;
+    var expression = _expression;
     while (expression is ParenthesizedExpressionImpl) {
       expression = expression._expression;
     }
@@ -7995,7 +7995,7 @@
   Token get keyword => partKeyword;
 
   @override
-  LibraryIdentifier? get libraryName => _libraryName;
+  LibraryIdentifierImpl? get libraryName => _libraryName;
 
   @override
   set libraryName(LibraryIdentifier? libraryName) {
@@ -8003,7 +8003,7 @@
   }
 
   @override
-  StringLiteral? get uri => _uri;
+  StringLiteralImpl? get uri => _uri;
 
   @override
   set uri(StringLiteral? uri) {
@@ -8057,7 +8057,7 @@
   Token get endToken => operator;
 
   @override
-  Expression get operand => _operand;
+  ExpressionImpl get operand => _operand;
 
   @override
   set operand(Expression expression) {
@@ -8131,7 +8131,7 @@
   Token get endToken => _identifier.endToken;
 
   @override
-  SimpleIdentifier get identifier => _identifier;
+  SimpleIdentifierImpl get identifier => _identifier;
 
   @override
   set identifier(SimpleIdentifier identifier) {
@@ -8159,7 +8159,7 @@
   Precedence get precedence => Precedence.postfix;
 
   @override
-  SimpleIdentifier get prefix => _prefix;
+  SimpleIdentifierImpl get prefix => _prefix;
 
   @override
   set prefix(SimpleIdentifier identifier) {
@@ -8217,7 +8217,7 @@
   Token get endToken => _operand.endToken;
 
   @override
-  Expression get operand => _operand;
+  ExpressionImpl get operand => _operand;
 
   @override
   set operand(Expression expression) {
@@ -8321,7 +8321,7 @@
   Precedence get precedence => Precedence.postfix;
 
   @override
-  SimpleIdentifier get propertyName => _propertyName;
+  SimpleIdentifierImpl get propertyName => _propertyName;
 
   @override
   set propertyName(SimpleIdentifier identifier) {
@@ -8329,7 +8329,7 @@
   }
 
   @override
-  Expression get realTarget {
+  ExpressionImpl get realTarget {
     if (isCascaded) {
       return _ancestorCascade.target;
     }
@@ -8337,7 +8337,7 @@
   }
 
   @override
-  Expression? get target => _target;
+  ExpressionImpl? get target => _target;
 
   @override
   set target(Expression? expression) {
@@ -8347,10 +8347,10 @@
   /// Return the cascade that contains this [IndexExpression].
   ///
   /// We expect that [isCascaded] is `true`.
-  CascadeExpression get _ancestorCascade {
+  CascadeExpressionImpl get _ancestorCascade {
     assert(isCascaded);
     for (var ancestor = parent!;; ancestor = ancestor.parent!) {
-      if (ancestor is CascadeExpression) {
+      if (ancestor is CascadeExpressionImpl) {
         return ancestor;
       }
     }
@@ -8412,7 +8412,7 @@
   }
 
   @override
-  ArgumentList get argumentList => _argumentList;
+  ArgumentListImpl get argumentList => _argumentList;
 
   @override
   set argumentList(ArgumentList argumentList) {
@@ -8430,7 +8430,7 @@
     ..add(_argumentList);
 
   @override
-  SimpleIdentifier? get constructorName => _constructorName;
+  SimpleIdentifierImpl? get constructorName => _constructorName;
 
   @override
   set constructorName(SimpleIdentifier? identifier) {
@@ -8520,7 +8520,7 @@
   Token get endToken => semicolon;
 
   @override
-  Expression? get expression => _expression;
+  ExpressionImpl? get expression => _expression;
 
   @override
   set expression(Expression? expression) {
@@ -8625,7 +8625,7 @@
     ..add(rightBracket);
 
   @override
-  NodeList<CollectionElement> get elements => _elements;
+  NodeListImpl<CollectionElement> get elements => _elements;
 
   @override
   Token get endToken => rightBracket;
@@ -8688,7 +8688,7 @@
   Token get endToken => _shownNames.endToken!;
 
   @override
-  NodeList<SimpleIdentifier> get shownNames => _shownNames;
+  NodeListImpl<SimpleIdentifier> get shownNames => _shownNames;
 
   @override
   E? accept<E>(AstVisitor<E> visitor) => visitor.visitShowCombinator(this);
@@ -8739,7 +8739,7 @@
 
   @override
   Token get beginToken {
-    NodeList<Annotation> metadata = this.metadata;
+    NodeListImpl<Annotation> metadata = this.metadata;
     if (metadata.isNotEmpty) {
       return metadata.beginToken!;
     } else if (requiredKeyword != null) {
@@ -8768,7 +8768,7 @@
   bool get isFinal => keyword?.keyword == Keyword.FINAL;
 
   @override
-  TypeAnnotation? get type => _type;
+  TypeAnnotationImpl? get type => _type;
 
   @override
   set type(TypeAnnotation? type) {
@@ -9097,7 +9097,7 @@
   Token get endToken => _expression.endToken;
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   set expression(Expression expression) {
     _expression = _becomeParentOf(expression as ExpressionImpl);
@@ -9137,7 +9137,7 @@
 ///      | [FunctionDeclarationStatement]
 abstract class StatementImpl extends AstNodeImpl implements Statement {
   @override
-  Statement get unlabeled => this;
+  StatementImpl get unlabeled => this;
 }
 
 /// A string interpolation literal.
@@ -9176,7 +9176,7 @@
 
   /// Return the elements that will be composed to produce the resulting string.
   @override
-  NodeList<InterpolationElement> get elements => _elements;
+  NodeListImpl<InterpolationElement> get elements => _elements;
 
   @override
   Token get endToken => _elements.endToken!;
@@ -9365,7 +9365,7 @@
   }
 
   @override
-  ArgumentList get argumentList => _argumentList;
+  ArgumentListImpl get argumentList => _argumentList;
 
   @override
   set argumentList(ArgumentList argumentList) {
@@ -9383,7 +9383,7 @@
     ..add(_argumentList);
 
   @override
-  SimpleIdentifier? get constructorName => _constructorName;
+  SimpleIdentifierImpl? get constructorName => _constructorName;
 
   @override
   set constructorName(SimpleIdentifier? identifier) {
@@ -9463,7 +9463,7 @@
     ..addAll(statements);
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   @override
   set expression(Expression expression) {
@@ -9554,10 +9554,10 @@
   }
 
   @override
-  NodeList<Label> get labels => _labels;
+  NodeListImpl<Label> get labels => _labels;
 
   @override
-  NodeList<Statement> get statements => _statements;
+  NodeListImpl<Statement> get statements => _statements;
 }
 
 /// A switch statement.
@@ -9623,7 +9623,7 @@
   Token get endToken => rightBracket;
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   @override
   set expression(Expression expression) {
@@ -9631,7 +9631,7 @@
   }
 
   @override
-  NodeList<SwitchMember> get members => _members;
+  NodeListImpl<SwitchMember> get members => _members;
 
   @override
   E? accept<E>(AstVisitor<E> visitor) => visitor.visitSwitchStatement(this);
@@ -9744,7 +9744,7 @@
   }
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   @override
   set expression(Expression expression) {
@@ -9809,7 +9809,7 @@
       externalKeyword ?? _variableList.beginToken;
 
   @override
-  VariableDeclarationList get variables => _variableList;
+  VariableDeclarationListImpl get variables => _variableList;
 
   @override
   set variables(VariableDeclarationList variables) {
@@ -9868,7 +9868,7 @@
   Token get beginToken => tryKeyword;
 
   @override
-  Block get body => _body;
+  BlockImpl get body => _body;
 
   @override
   set body(Block block) {
@@ -9876,7 +9876,7 @@
   }
 
   @override
-  NodeList<CatchClause> get catchClauses => _catchClauses;
+  NodeListImpl<CatchClause> get catchClauses => _catchClauses;
 
   @override
   Iterable<SyntacticEntity> get childEntities => ChildEntities()
@@ -9980,7 +9980,7 @@
   }
 
   @override
-  NodeList<TypeAnnotation> get arguments => _arguments;
+  NodeListImpl<TypeAnnotation> get arguments => _arguments;
 
   @override
   Token get beginToken => leftBracket;
@@ -10032,7 +10032,7 @@
   }
 
   @override
-  TypeArgumentList? get typeArguments => _typeArguments;
+  TypeArgumentListImpl? get typeArguments => _typeArguments;
 
   @override
   set typeArguments(TypeArgumentList? typeArguments) {
@@ -10098,7 +10098,7 @@
   bool get isSynthetic => _name.isSynthetic && _typeArguments == null;
 
   @override
-  Identifier get name => _name;
+  IdentifierImpl get name => _name;
 
   @override
   set name(Identifier identifier) {
@@ -10106,7 +10106,7 @@
   }
 
   @override
-  TypeArgumentList? get typeArguments => _typeArguments;
+  TypeArgumentListImpl? get typeArguments => _typeArguments;
 
   @override
   set typeArguments(TypeArgumentList? typeArguments) {
@@ -10163,7 +10163,7 @@
   }
 
   @override
-  TypeAnnotation? get bound => _bound;
+  TypeAnnotationImpl? get bound => _bound;
 
   @override
   set bound(TypeAnnotation? type) {
@@ -10190,7 +10190,7 @@
   Token get firstTokenAfterCommentAndMetadata => _name.beginToken;
 
   @override
-  SimpleIdentifier get name => _name;
+  SimpleIdentifierImpl get name => _name;
 
   @override
   set name(SimpleIdentifier identifier) {
@@ -10243,7 +10243,7 @@
   Token get endToken => rightBracket;
 
   @override
-  NodeList<TypeParameter> get typeParameters => _typeParameters;
+  NodeListImpl<TypeParameter> get typeParameters => _typeParameters;
 
   @override
   E? accept<E>(AstVisitor<E> visitor) => visitor.visitTypeParameterList(this);
@@ -10285,7 +10285,7 @@
   }
 
   @override
-  StringLiteral get uri => _uri;
+  StringLiteralImpl get uri => _uri;
 
   @override
   set uri(StringLiteral uri) {
@@ -10401,11 +10401,11 @@
   /// grandparent node for Dartdoc comments if no documentation is specifically
   /// available on the node.
   @override
-  Comment? get documentationComment {
-    Comment? comment = super.documentationComment;
+  CommentImpl? get documentationComment {
+    var comment = super.documentationComment;
     if (comment == null) {
       var node = parent?.parent;
-      if (node is AnnotatedNode) {
+      if (node is AnnotatedNodeImpl) {
         return node.documentationComment;
       }
     }
@@ -10424,7 +10424,7 @@
   Token get firstTokenAfterCommentAndMetadata => _name.beginToken;
 
   @override
-  Expression? get initializer => _initializer;
+  ExpressionImpl? get initializer => _initializer;
 
   @override
   set initializer(Expression? expression) {
@@ -10450,7 +10450,7 @@
   }
 
   @override
-  SimpleIdentifier get name => _name;
+  SimpleIdentifierImpl get name => _name;
 
   @override
   set name(SimpleIdentifier identifier) {
@@ -10546,7 +10546,7 @@
   bool get isLate => lateKeyword != null;
 
   @override
-  TypeAnnotation? get type => _type;
+  TypeAnnotationImpl? get type => _type;
 
   @override
   set type(TypeAnnotation? type) {
@@ -10554,7 +10554,7 @@
   }
 
   @override
-  NodeList<VariableDeclaration> get variables => _variables;
+  NodeListImpl<VariableDeclaration> get variables => _variables;
 
   @override
   E? accept<E>(AstVisitor<E> visitor) =>
@@ -10598,7 +10598,7 @@
   Token get endToken => semicolon;
 
   @override
-  VariableDeclarationList get variables => _variableList;
+  VariableDeclarationListImpl get variables => _variableList;
 
   @override
   set variables(VariableDeclarationList variables) {
@@ -10649,7 +10649,7 @@
   Token get beginToken => whileKeyword;
 
   @override
-  Statement get body => _body;
+  StatementImpl get body => _body;
 
   @override
   set body(Statement statement) {
@@ -10665,7 +10665,7 @@
     ..add(_body);
 
   @override
-  Expression get condition => _condition;
+  ExpressionImpl get condition => _condition;
 
   @override
   set condition(Expression expression) {
@@ -10715,7 +10715,7 @@
   Token get endToken => _mixinTypes.endToken!;
 
   @override
-  NodeList<TypeName> get mixinTypes => _mixinTypes;
+  NodeListImpl<TypeName> get mixinTypes => _mixinTypes;
 
   @override
   E? accept<E>(AstVisitor<E> visitor) => visitor.visitWithClause(this);
@@ -10771,7 +10771,7 @@
   }
 
   @override
-  Expression get expression => _expression;
+  ExpressionImpl get expression => _expression;
 
   @override
   set expression(Expression expression) {
diff --git a/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
index 7565747..ecc92f7 100644
--- a/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
@@ -332,7 +332,7 @@
     var leftOperand = node.leftOperand;
 
     DartType leftType;
-    if (leftOperand is ExtensionOverride) {
+    if (leftOperand is ExtensionOverrideImpl) {
       leftType = leftOperand.extendedType!;
     } else {
       leftType = leftOperand.typeOrThrow;
diff --git a/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart
index 824e166..7e600a4 100644
--- a/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart
@@ -23,9 +23,9 @@
 
   void resolveElement(ForElementImpl node) {
     var forLoopParts = node.forLoopParts;
-    if (forLoopParts is ForParts) {
+    if (forLoopParts is ForPartsImpl) {
       _forParts(node, forLoopParts, node.body);
-    } else if (forLoopParts is ForEachParts) {
+    } else if (forLoopParts is ForEachPartsImpl) {
       _forEachParts(node, node.awaitKeyword != null, forLoopParts, node.body);
     }
   }
@@ -34,9 +34,9 @@
     _resolver.checkUnreachableNode(node);
 
     var forLoopParts = node.forLoopParts;
-    if (forLoopParts is ForParts) {
+    if (forLoopParts is ForPartsImpl) {
       _forParts(node, forLoopParts, node.body);
-    } else if (forLoopParts is ForEachParts) {
+    } else if (forLoopParts is ForEachPartsImpl) {
       _forEachParts(node, node.awaitKeyword != null, forLoopParts, node.body);
     }
   }
diff --git a/pkg/analyzer/lib/src/dart/resolver/function_expression_invocation_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/function_expression_invocation_resolver.dart
index c69fc95..4dfeb7d 100644
--- a/pkg/analyzer/lib/src/dart/resolver/function_expression_invocation_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/function_expression_invocation_resolver.dart
@@ -37,7 +37,7 @@
   void resolve(FunctionExpressionInvocationImpl node) {
     var function = node.function;
 
-    if (function is ExtensionOverride) {
+    if (function is ExtensionOverrideImpl) {
       _resolveReceiverExtensionOverride(node, function);
       return;
     }
diff --git a/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
index 816af4c..b0d3816 100644
--- a/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
@@ -94,7 +94,7 @@
       return;
     }
 
-    if (receiver is SimpleIdentifier) {
+    if (receiver is SimpleIdentifierImpl) {
       var receiverElement = receiver.staticElement;
       if (receiverElement is PrefixElement) {
         _resolveReceiverPrefix(node, receiverElement, nameNode, name);
@@ -102,7 +102,7 @@
       }
     }
 
-    if (receiver is Identifier) {
+    if (receiver is IdentifierImpl) {
       var receiverElement = receiver.staticElement;
       if (receiverElement is ExtensionElement) {
         _resolveExtensionMember(
@@ -111,17 +111,17 @@
       }
     }
 
-    if (receiver is SuperExpression) {
+    if (receiver is SuperExpressionImpl) {
       _resolveReceiverSuper(node, receiver, nameNode, name);
       return;
     }
 
-    if (receiver is ExtensionOverride) {
+    if (receiver is ExtensionOverrideImpl) {
       _resolveExtensionOverride(node, receiver, nameNode, name);
       return;
     }
 
-    if (receiver is Identifier) {
+    if (receiver is IdentifierImpl) {
       var element = receiver.staticElement;
       if (element is ClassElement) {
         _resolveReceiverTypeLiteral(node, element, nameNode, name);
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
index cbee429..be8cfa6 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
@@ -19,6 +19,7 @@
 import 'package:analyzer/src/summary2/data_writer.dart';
 import 'package:analyzer/src/summary2/tokens_writer.dart';
 import 'package:analyzer/src/task/inference_error.dart';
+import 'package:analyzer/src/util/either.dart';
 
 /// Serializer of fully resolved ASTs.
 class AstBinaryWriter extends ThrowingAstVisitor<void> {
@@ -261,7 +262,7 @@
       _UnitMemberIndexItem(
         offset: classOffset,
         tag: Tag.Class,
-        name: node.name.name,
+        name: Either2.t1(node.name.name),
         classIndexOffset: classIndexOffset,
       ),
     );
@@ -273,7 +274,7 @@
       _UnitMemberIndexItem(
         offset: _sink.offset,
         tag: Tag.ClassTypeAlias,
-        name: node.name.name,
+        name: Either2.t1(node.name.name),
       ),
     );
 
@@ -551,7 +552,7 @@
       _UnitMemberIndexItem(
         offset: _sink.offset,
         tag: Tag.EnumDeclaration,
-        name: node.name.name,
+        name: Either2.t1(node.name.name),
       ),
     );
 
@@ -639,7 +640,7 @@
       _UnitMemberIndexItem(
         offset: classOffset,
         tag: Tag.ExtensionDeclaration,
-        name: indexName,
+        name: Either2.t1(indexName),
         classIndexOffset: classIndexOffset,
       ),
     );
@@ -810,8 +811,7 @@
       _UnitMemberIndexItem(
         offset: _sink.offset,
         tag: indexTag,
-        name: node.name.name,
-        variableNames: null,
+        name: Either2.t1(node.name.name),
       ),
     );
 
@@ -896,8 +896,7 @@
       _UnitMemberIndexItem(
         offset: _sink.offset,
         tag: Tag.FunctionTypeAlias,
-        name: node.name.name,
-        variableNames: null,
+        name: Either2.t1(node.name.name),
       ),
     );
 
@@ -996,7 +995,7 @@
       _UnitMemberIndexItem(
         offset: _sink.offset,
         tag: Tag.GenericTypeAlias,
-        name: node.name.name,
+        name: Either2.t1(node.name.name),
       ),
     );
 
@@ -1405,7 +1404,7 @@
       _UnitMemberIndexItem(
         offset: classOffset,
         tag: Tag.MixinDeclaration,
-        name: node.name.name,
+        name: Either2.t1(node.name.name),
         classIndexOffset: classIndexOffset,
       ),
     );
@@ -1758,9 +1757,11 @@
       _UnitMemberIndexItem(
         offset: _sink.offset,
         tag: Tag.TopLevelVariableDeclaration,
-        variableNames: node.variables.variables
-            .map((variable) => variable.name.name)
-            .toList(),
+        name: Either2.t2(
+          node.variables.variables
+              .map((variable) => variable.name.name)
+              .toList(),
+        ),
       ),
     );
 
@@ -2324,8 +2325,7 @@
 class _UnitMemberIndexItem {
   final int offset;
   final int tag;
-  final String? name;
-  final List<String>? variableNames;
+  final Either2<String, List<String>> name;
 
   /// The absolute offset of the index of class members, `0` if not a class.
   final int classIndexOffset;
@@ -2333,8 +2333,7 @@
   _UnitMemberIndexItem({
     required this.offset,
     required this.tag,
-    this.name,
-    this.variableNames,
+    required this.name,
     this.classIndexOffset = 0,
   });
 }
diff --git a/pkg/analyzer/lib/src/summary2/bundle_writer.dart b/pkg/analyzer/lib/src/summary2/bundle_writer.dart
index c7337c8..687b4f2 100644
--- a/pkg/analyzer/lib/src/summary2/bundle_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/bundle_writer.dart
@@ -43,11 +43,11 @@
   for (var declaration in unitWriter.unitMemberIndexItems) {
     sink.writeUInt30(declaration.offset);
     sink.writeByte(declaration.tag);
-    if (declaration.name != null) {
-      _writeStringReference(declaration.name!);
-    } else {
-      sink.writeList(declaration.variableNames!, _writeStringReference);
-    }
+    declaration.name.map((name) {
+      _writeStringReference(name);
+    }, (variableNames) {
+      sink.writeList(variableNames, _writeStringReference);
+    });
     if (declaration.classIndexOffset != 0) {
       sink.writeUInt30(declaration.classIndexOffset);
     }
@@ -199,6 +199,8 @@
   /// Write the [node] into the [sink].
   ///
   /// Return the pointer at [AstUnitFormat.headerOffset].
+  ///
+  /// TODO(scheglov) looks very similar to [writeUnitToBytes]
   int writeUnit(CompilationUnit node) {
     var headerOffset = sink.offset;
 
@@ -219,11 +221,11 @@
     for (var declaration in unitWriter.unitMemberIndexItems) {
       sink.writeUInt30(declaration.offset);
       sink.writeByte(declaration.tag);
-      if (declaration.name != null) {
-        _writeStringReference(declaration.name!);
-      } else {
-        sink.writeList(declaration.variableNames!, _writeStringReference);
-      }
+      declaration.name.map((name) {
+        _writeStringReference(name);
+      }, (variableNames) {
+        sink.writeList(variableNames, _writeStringReference);
+      });
       if (declaration.classIndexOffset != 0) {
         sink.writeUInt30(declaration.classIndexOffset);
       }
@@ -760,15 +762,18 @@
   int _indexOfReference(Reference? reference) {
     if (reference == null) return 0;
     if (reference.parent == null) return 0;
-    if (reference.index != null) return reference.index!;
+
+    var index = reference.index;
+    if (index != null) return index;
 
     var parentIndex = _indexOfReference(reference.parent);
     _referenceParents.add(parentIndex);
     _referenceNames.add(reference.name);
 
-    reference.index = references.length;
+    index = references.length;
+    reference.index = index;
     references.add(reference);
-    return reference.index!;
+    return index;
   }
 }
 
diff --git a/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart b/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart
index aca12f3..d8cde36 100644
--- a/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart
+++ b/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart
@@ -49,7 +49,7 @@
 
     _astResolver = AstResolver(_linker, _unitElement, initializerScope);
 
-    var body = _constructorNode.body as FunctionBodyImpl;
+    var body = _constructorNode.body;
     body.localVariableInfo = LocalVariableInfo();
 
     _initializers();
diff --git a/tools/VERSION b/tools/VERSION
index e4658d7..f8c4e7f 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 13
 PATCH 0
-PRERELEASE 113
+PRERELEASE 114
 PRERELEASE_PATCH 0
\ No newline at end of file