Make most Token fields in AST final.

Change-Id: If3eb33ed2e0d92f94e9152524231975ab6c47a11
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265440
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart
index 80929bc7..51af1bc 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast.dart
@@ -183,7 +183,7 @@
 class AnnotationImpl extends AstNodeImpl implements Annotation {
   /// The at sign that introduced the annotation.
   @override
-  Token atSign;
+  final Token atSign;
 
   /// The name of the class defining the constructor that is being invoked or
   /// the name of the field that is being referenced.
@@ -200,7 +200,7 @@
   /// The period before the constructor name, or `null` if this annotation is
   /// not the invocation of a named constructor.
   @override
-  Token? period;
+  final Token? period;
 
   /// The name of the constructor being invoked, or `null` if this annotation is
   /// not the invocation of a named constructor.
@@ -338,14 +338,14 @@
 class ArgumentListImpl extends AstNodeImpl implements ArgumentList {
   /// The left parenthesis.
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   /// The expressions producing the values of the arguments.
   final NodeListImpl<ExpressionImpl> _arguments = NodeListImpl._();
 
   /// The right parenthesis.
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   /// A list containing the elements representing the parameters corresponding
   /// to each of the arguments in this list, or `null` if the AST has not been
@@ -436,7 +436,7 @@
 
   /// The 'as' operator.
   @override
-  Token asOperator;
+  final Token asOperator;
 
   /// The type being cast to.
   TypeAnnotationImpl _type;
@@ -503,23 +503,23 @@
 class AssertInitializerImpl extends ConstructorInitializerImpl
     implements AssertInitializer {
   @override
-  Token assertKeyword;
+  final Token assertKeyword;
 
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   /// The condition that is being asserted to be `true`.
   ExpressionImpl _condition;
 
   @override
-  Token? comma;
+  final Token? comma;
 
   /// The message to report if the assertion fails, or `null` if no message was
   /// supplied.
   ExpressionImpl? _message;
 
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   /// Initialize a newly created assert initializer.
   AssertInitializerImpl({
@@ -580,26 +580,26 @@
 ///        'assert' '(' [Expression] ')' ';'
 class AssertStatementImpl extends StatementImpl implements AssertStatement {
   @override
-  Token assertKeyword;
+  final Token assertKeyword;
 
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   /// The condition that is being asserted to be `true`.
   ExpressionImpl _condition;
 
   @override
-  Token? comma;
+  final Token? comma;
 
   /// The message to report if the assertion fails, or `null` if no message was
   /// supplied.
   ExpressionImpl? _message;
 
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created assert statement.
   AssertStatementImpl({
@@ -668,7 +668,7 @@
 
   /// The assignment operator being applied.
   @override
-  Token operator;
+  final Token operator;
 
   /// The expression used to compute the right hand side.
   ExpressionImpl _rightHandSide;
@@ -896,13 +896,13 @@
 class AugmentationImportDirectiveImpl extends UriBasedDirectiveImpl
     implements AugmentationImportDirective {
   @override
-  Token importKeyword;
+  final Token importKeyword;
 
   @override
-  Token augmentKeyword;
+  final Token augmentKeyword;
 
   @override
-  Token semicolon;
+  final Token semicolon;
 
   AugmentationImportDirectiveImpl({
     required super.comment,
@@ -950,7 +950,7 @@
 class AwaitExpressionImpl extends ExpressionImpl implements AwaitExpression {
   /// The 'await' keyword.
   @override
-  Token awaitKeyword;
+  final Token awaitKeyword;
 
   /// The expression whose value is being waited on.
   ExpressionImpl _expression;
@@ -1010,7 +1010,7 @@
 
   /// The binary operator being applied.
   @override
-  Token operator;
+  final Token operator;
 
   /// The expression used to compute the right operand.
   ExpressionImpl _rightOperand;
@@ -1149,12 +1149,12 @@
   /// The token representing the 'async' or 'sync' keyword, or `null` if there
   /// is no such keyword.
   @override
-  Token? keyword;
+  final Token? keyword;
 
   /// The star optionally following the 'async' or 'sync' keyword, or `null` if
   /// there is wither no such keyword or no star.
   @override
-  Token? star;
+  final Token? star;
 
   /// The block representing the body of the function.
   BlockImpl _block;
@@ -1224,14 +1224,14 @@
 class BlockImpl extends StatementImpl implements Block {
   /// The left curly bracket.
   @override
-  Token leftBracket;
+  final Token leftBracket;
 
   /// The statements contained in the block.
   final NodeListImpl<StatementImpl> _statements = NodeListImpl._();
 
   /// The right curly bracket.
   @override
-  Token rightBracket;
+  final Token rightBracket;
 
   /// Initialize a newly created block of code.
   BlockImpl({
@@ -1273,11 +1273,11 @@
 class BooleanLiteralImpl extends LiteralImpl implements BooleanLiteral {
   /// The token representing the literal.
   @override
-  Token literal;
+  final Token literal;
 
   /// The value of the literal.
   @override
-  bool value = false;
+  final bool value;
 
   /// Initialize a newly created boolean literal.
   BooleanLiteralImpl({
@@ -1319,14 +1319,14 @@
 class BreakStatementImpl extends StatementImpl implements BreakStatement {
   /// The token representing the 'break' keyword.
   @override
-  Token breakKeyword;
+  final Token breakKeyword;
 
   /// The label associated with the statement, or `null` if there is no label.
   SimpleIdentifierImpl? _label;
 
   /// The semicolon terminating the statement.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// The AstNode which this break statement is breaking from.  This will be
   /// either a [Statement] (in the case of breaking out of a loop), a
@@ -1582,7 +1582,7 @@
   /// The token representing the 'on' keyword, or `null` if there is no 'on'
   /// keyword.
   @override
-  Token? onKeyword;
+  final Token? onKeyword;
 
   /// The type of exceptions caught by this catch clause, or `null` if this
   /// catch clause catches every type of exception.
@@ -1591,11 +1591,11 @@
   /// The token representing the 'catch' keyword, or `null` if there is no
   /// 'catch' keyword.
   @override
-  Token? catchKeyword;
+  final Token? catchKeyword;
 
   /// The left parenthesis, or `null` if there is no 'catch' keyword.
   @override
-  Token? leftParenthesis;
+  final Token? leftParenthesis;
 
   /// The parameter whose value will be the exception that was thrown, or `null`
   /// if there is no 'catch' keyword.
@@ -1604,7 +1604,7 @@
   /// The comma separating the exception parameter from the stack trace
   /// parameter, or `null` if there is no stack trace parameter.
   @override
-  Token? comma;
+  final Token? comma;
 
   /// The parameter whose value will be the stack trace associated with the
   /// exception, or `null` if there is no stack trace parameter.
@@ -1612,7 +1612,7 @@
 
   /// The right parenthesis, or `null` if there is no 'catch' keyword.
   @override
-  Token? rightParenthesis;
+  final Token? rightParenthesis;
 
   /// The body of the catch block.
   BlockImpl _body;
@@ -1839,17 +1839,17 @@
     implements ClassDeclaration {
   /// The 'abstract' keyword, or `null` if the keyword was absent.
   @override
-  Token? abstractKeyword;
+  final Token? abstractKeyword;
 
   /// The 'macro' keyword, or `null` if the keyword was absent.
-  Token? macroKeyword;
+  final Token? macroKeyword;
 
   /// The 'augment' keyword, or `null` if the keyword was absent.
-  Token? augmentKeyword;
+  final Token? augmentKeyword;
 
   /// The token representing the 'class' keyword.
   @override
-  Token classKeyword;
+  final Token classKeyword;
 
   /// The extends clause for the class, or `null` if the class does not extend
   /// any other class.
@@ -1876,14 +1876,14 @@
 
   /// The left curly bracket.
   @override
-  Token leftBracket;
+  final Token leftBracket;
 
   /// The members defined by the class or mixin.
   final NodeListImpl<ClassMemberImpl> _members = NodeListImpl._();
 
   /// The right curly bracket.
   @override
-  Token rightBracket;
+  final Token rightBracket;
 
   /// Initialize a newly created class declaration. Either or both of the
   /// [comment] and [metadata] can be `null` if the class does not have the
@@ -2029,20 +2029,20 @@
 
   /// The token for the '=' separating the name from the definition.
   @override
-  Token equals;
+  final Token equals;
 
   /// The token for the 'abstract' keyword, or `null` if this is not defining an
   /// abstract class.
   @override
-  Token? abstractKeyword;
+  final Token? abstractKeyword;
 
   /// The token for the 'macro' keyword, or `null` if this is not defining a
   /// macro class.
-  Token? macroKeyword;
+  final Token? macroKeyword;
 
   /// The token for the 'augment' keyword, or `null` if this is not defining an
   /// augmentation class.
-  Token? augmentKeyword;
+  final Token? augmentKeyword;
 
   /// The name of the superclass of the class being declared.
   NamedTypeImpl _superclass;
@@ -2168,7 +2168,7 @@
   /// The 'hide' or 'show' keyword specifying what kind of processing is to be
   /// done on the names.
   @override
-  Token keyword;
+  final Token keyword;
 
   /// Initialize a newly created combinator.
   CombinatorImpl({
@@ -2263,7 +2263,7 @@
   /// The token representing the 'new' keyword, or `null` if there was no 'new'
   /// keyword.
   @override
-  Token? newKeyword;
+  final Token? newKeyword;
 
   /// The expression being referenced.
   CommentReferableExpressionImpl _expression;
@@ -2365,7 +2365,7 @@
   /// The last token in the token stream that was parsed to form this
   /// compilation unit. This token should always have a type of [TokenType.EOF].
   @override
-  Token endToken;
+  final Token endToken;
 
   /// The element associated with this compilation unit, or `null` if the AST
   /// structure has not been resolved.
@@ -2538,14 +2538,14 @@
 
   /// The token used to separate the condition from the then expression.
   @override
-  Token question;
+  final Token question;
 
   /// The expression that is executed if the condition evaluates to `true`.
   ExpressionImpl _thenExpression;
 
   /// The token used to separate the then expression from the else expression.
   @override
-  Token colon;
+  final Token colon;
 
   /// The expression that is executed if the condition evaluates to `false`.
   ExpressionImpl _elseExpression;
@@ -2632,20 +2632,20 @@
 ///         identifier ('.' identifier)*
 class ConfigurationImpl extends AstNodeImpl implements Configuration {
   @override
-  Token ifKeyword;
+  final Token ifKeyword;
 
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   DottedNameImpl _name;
 
   @override
-  Token? equalToken;
+  final Token? equalToken;
 
   StringLiteralImpl? _value;
 
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   StringLiteralImpl _uri;
 
@@ -2823,7 +2823,7 @@
   /// The token for the 'external' keyword, or `null` if the constructor is not
   /// external.
   @override
-  Token? externalKeyword;
+  final Token? externalKeyword;
 
   /// The token for the 'const' keyword, or `null` if the constructor is not a
   /// const constructor.
@@ -2833,7 +2833,7 @@
   /// The token for the 'factory' keyword, or `null` if the constructor is not a
   /// factory constructor.
   @override
-  Token? factoryKeyword;
+  final Token? factoryKeyword;
 
   /// The type of object being created. This can be different than the type in
   /// which the constructor is being declared if the constructor is the
@@ -2843,12 +2843,12 @@
   /// The token for the period before the constructor name, or `null` if the
   /// constructor being declared is unnamed.
   @override
-  Token? period;
+  final Token? period;
 
   /// The name of the constructor, or `null` if the constructor being declared
   /// is unnamed.
   @override
-  Token? name;
+  final Token? name;
 
   /// The parameters associated with the constructor.
   FormalParameterListImpl _parameters;
@@ -3001,19 +3001,19 @@
     implements ConstructorFieldInitializer {
   /// The token for the 'this' keyword, or `null` if there is no 'this' keyword.
   @override
-  Token? thisKeyword;
+  final Token? thisKeyword;
 
   /// The token for the period after the 'this' keyword, or `null` if there is
   /// no 'this' keyword.
   @override
-  Token? period;
+  final Token? period;
 
   /// The name of the field being initialized.
   SimpleIdentifierImpl _fieldName;
 
   /// The token for the equal sign between the field name and the expression.
   @override
-  Token equals;
+  final Token equals;
 
   /// The expression computing the value to which the field will be initialized.
   ExpressionImpl _expression;
@@ -3255,14 +3255,14 @@
 class ContinueStatementImpl extends StatementImpl implements ContinueStatement {
   /// The token representing the 'continue' keyword.
   @override
-  Token continueKeyword;
+  final Token continueKeyword;
 
   /// The label associated with the statement, or `null` if there is no label.
   SimpleIdentifierImpl? _label;
 
   /// The semicolon terminating the statement.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// The AstNode which this continue statement is continuing to.  This will be
   /// either a Statement (in the case of continuing a loop) or a SwitchMember
@@ -3368,14 +3368,14 @@
   /// The token representing either the 'final', 'const' or 'var' keyword, or
   /// `null` if no keyword was used.
   @override
-  Token? keyword;
+  final Token? keyword;
 
   /// The name of the declared type of the parameter, or `null` if the parameter
   /// does not have a declared type.
   TypeAnnotationImpl? _type;
 
   @override
-  Token name;
+  final Token name;
 
   @override
   LocalVariableElement? declaredElement;
@@ -3472,7 +3472,7 @@
   /// The token separating the parameter from the default value, or `null` if
   /// there is no default value.
   @override
-  Token? separator;
+  final Token? separator;
 
   /// The expression computing the default value for the parameter, or `null` if
   /// there is no default value.
@@ -3599,29 +3599,29 @@
 class DoStatementImpl extends StatementImpl implements DoStatement {
   /// The token representing the 'do' keyword.
   @override
-  Token doKeyword;
+  final Token doKeyword;
 
   /// The body of the loop.
   StatementImpl _body;
 
   /// The token representing the 'while' keyword.
   @override
-  Token whileKeyword;
+  final Token whileKeyword;
 
   /// The left parenthesis.
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   /// The condition that determines when the loop will terminate.
   ExpressionImpl _condition;
 
   /// The right parenthesis.
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   /// The semicolon terminating the statement.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created do loop.
   DoStatementImpl({
@@ -3727,7 +3727,7 @@
 class DoubleLiteralImpl extends LiteralImpl implements DoubleLiteral {
   /// The token representing the literal.
   @override
-  Token literal;
+  final Token literal;
 
   /// The value of the literal.
   @override
@@ -3773,7 +3773,7 @@
   /// The token representing the semicolon that marks the end of the function
   /// body.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created function body.
   EmptyFunctionBodyImpl({
@@ -3810,7 +3810,7 @@
 class EmptyStatementImpl extends StatementImpl implements EmptyStatement {
   /// The semicolon terminating the statement.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created empty statement.
   EmptyStatementImpl({
@@ -3953,7 +3953,7 @@
     implements EnumDeclaration {
   /// The 'enum' keyword.
   @override
-  Token enumKeyword;
+  final Token enumKeyword;
 
   /// The type parameters, or `null` if the enumeration does not have any
   /// type parameters.
@@ -3969,20 +3969,20 @@
 
   /// The left curly bracket.
   @override
-  Token leftBracket;
+  final Token leftBracket;
 
   /// The enumeration constants being declared.
   final NodeListImpl<EnumConstantDeclaration> _constants = NodeListImpl._();
 
   @override
-  Token? semicolon;
+  final Token? semicolon;
 
   /// The members defined by the enum.
   final NodeListImpl<ClassMember> _members = NodeListImpl._();
 
   /// The right curly bracket.
   @override
-  Token rightBracket;
+  final Token rightBracket;
 
   @override
   EnumElement? declaredElement;
@@ -4086,7 +4086,7 @@
 class ExportDirectiveImpl extends NamespaceDirectiveImpl
     implements ExportDirective {
   @override
-  Token exportKeyword;
+  final Token exportKeyword;
 
   /// Initialize a newly created export directive. Either or both of the
   /// [comment] and [metadata] can be `null` if the directive does not have the
@@ -4142,7 +4142,7 @@
   /// The token representing the 'async' keyword, or `null` if there is no such
   /// keyword.
   @override
-  Token? keyword;
+  final Token? keyword;
 
   /// The star optionally following the 'async' or 'sync' keyword, or `null` if
   /// there is wither no such keyword or no star.
@@ -4150,19 +4150,19 @@
   /// It is an error for an expression function body to feature the star, but
   /// the parser will accept it.
   @override
-  Token? star;
+  final Token? star;
 
   /// The token introducing the expression that represents the body of the
   /// function.
   @override
-  Token functionDefinition;
+  final Token functionDefinition;
 
   /// The expression representing the body of the function.
   ExpressionImpl _expression;
 
   /// The semicolon terminating the statement.
   @override
-  Token? semicolon;
+  final Token? semicolon;
 
   /// Initialize a newly created function body consisting of a block of
   /// statements. The [keyword] can be `null` if the function body is not an
@@ -4353,7 +4353,7 @@
   /// The semicolon terminating the statement, or `null` if the expression is a
   /// function expression and therefore isn't followed by a semicolon.
   @override
-  Token? semicolon;
+  final Token? semicolon;
 
   /// Initialize a newly created expression statement.
   ExpressionStatementImpl({
@@ -4406,7 +4406,7 @@
 class ExtendsClauseImpl extends AstNodeImpl implements ExtendsClause {
   /// The token representing the 'extends' keyword.
   @override
-  Token extendsKeyword;
+  final Token extendsKeyword;
 
   /// The name of the class that is being extended.
   NamedTypeImpl _superclass;
@@ -4456,17 +4456,17 @@
 class ExtensionDeclarationImpl extends CompilationUnitMemberImpl
     implements ExtensionDeclaration {
   @override
-  Token extensionKeyword;
+  final Token extensionKeyword;
 
   @override
-  Token? typeKeyword;
+  final Token? typeKeyword;
 
   /// The hide clause for the extension or `null` if the declaration does not
   /// hide any elements.
   HideClauseImpl? _hideClause;
 
   @override
-  Token? name;
+  final Token? name;
 
   /// The show clause for the extension or `null` if the declaration does not
   /// show any elements.
@@ -4477,19 +4477,19 @@
   TypeParameterListImpl? _typeParameters;
 
   @override
-  Token onKeyword;
+  final Token onKeyword;
 
   /// The type that is being extended.
   TypeAnnotationImpl _extendedType;
 
   @override
-  Token leftBracket;
+  final Token leftBracket;
 
   /// The members being added to the extended class.
   final NodeListImpl<ClassMember> _members = NodeListImpl._();
 
   @override
-  Token rightBracket;
+  final Token rightBracket;
 
   @override
   ExtensionElement? declaredElement;
@@ -4766,29 +4766,29 @@
 ///        'static'? [VariableDeclarationList] ';'
 class FieldDeclarationImpl extends ClassMemberImpl implements FieldDeclaration {
   @override
-  Token? abstractKeyword;
+  final Token? abstractKeyword;
 
   /// The 'augment' keyword, or `null` if the keyword was not used.
-  Token? augmentKeyword;
+  final Token? augmentKeyword;
 
   /// The 'covariant' keyword, or `null` if the keyword was not used.
   @override
-  Token? covariantKeyword;
+  final Token? covariantKeyword;
 
   @override
-  Token? externalKeyword;
+  final Token? externalKeyword;
 
   /// The token representing the 'static' keyword, or `null` if the fields are
   /// not static.
   @override
-  Token? staticKeyword;
+  final Token? staticKeyword;
 
   /// The fields being declared.
   VariableDeclarationListImpl _fieldList;
 
   /// The semicolon terminating the declaration.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created field declaration. Either or both of the
   /// [comment] and [metadata] can be `null` if the declaration does not have
@@ -4862,7 +4862,7 @@
   /// The token representing either the 'final', 'const' or 'var' keyword, or
   /// `null` if no keyword was used.
   @override
-  Token? keyword;
+  final Token? keyword;
 
   /// The name of the declared type of the parameter, or `null` if the parameter
   /// does not have a declared type.
@@ -4870,11 +4870,11 @@
 
   /// The token representing the 'this' keyword.
   @override
-  Token thisKeyword;
+  final Token thisKeyword;
 
   /// The token representing the period.
   @override
-  Token period;
+  final Token period;
 
   /// The type parameters associated with the method, or `null` if the method is
   /// not a generic method.
@@ -4885,7 +4885,7 @@
   FormalParameterListImpl? _parameters;
 
   @override
-  Token? question;
+  final Token? question;
 
   /// Initialize a newly created formal parameter. Either or both of the
   /// [comment] and [metadata] can be `null` if the parameter does not have the
@@ -4995,7 +4995,7 @@
 abstract class ForEachPartsImpl extends ForLoopPartsImpl
     implements ForEachParts {
   @override
-  Token inKeyword;
+  final Token inKeyword;
 
   /// The expression evaluated to produce the iterator.
   ExpressionImpl _iterable;
@@ -5159,18 +5159,18 @@
 
 class ForElementImpl extends CollectionElementImpl implements ForElement {
   @override
-  Token? awaitKeyword;
+  final Token? awaitKeyword;
 
   @override
-  Token forKeyword;
+  final Token forKeyword;
 
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   ForLoopPartsImpl _forLoopParts;
 
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   /// The body of the loop.
   CollectionElementImpl _body;
@@ -5317,7 +5317,7 @@
     implements FormalParameterList {
   /// The left parenthesis.
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   /// The parameters associated with the method.
   final NodeListImpl<FormalParameter> _parameters = NodeListImpl._();
@@ -5325,16 +5325,16 @@
   /// The left square bracket ('[') or left curly brace ('{') introducing the
   /// optional parameters, or `null` if there are no optional parameters.
   @override
-  Token? leftDelimiter;
+  final Token? leftDelimiter;
 
   /// The right square bracket (']') or right curly brace ('}') terminating the
   /// optional parameters, or `null` if there are no optional parameters.
   @override
-  Token? rightDelimiter;
+  final Token? rightDelimiter;
 
   /// The right parenthesis.
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   /// Initialize a newly created parameter list. The list of [parameters] can be
   /// `null` if there are no parameters. The [leftDelimiter] and
@@ -5398,14 +5398,14 @@
 
 abstract class ForPartsImpl extends ForLoopPartsImpl implements ForParts {
   @override
-  Token leftSeparator;
+  final Token leftSeparator;
 
   /// The condition used to determine when to terminate the loop, or `null` if
   /// there is no condition.
   ExpressionImpl? _condition;
 
   @override
-  Token rightSeparator;
+  final Token rightSeparator;
 
   /// The list of expressions run after each execution of the loop body.
   final NodeListImpl<Expression> _updaters = NodeListImpl._();
@@ -5586,18 +5586,18 @@
 
 class ForStatementImpl extends StatementImpl implements ForStatement {
   @override
-  Token? awaitKeyword;
+  final Token? awaitKeyword;
 
   @override
-  Token forKeyword;
+  final Token forKeyword;
 
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   ForLoopPartsImpl _forLoopParts;
 
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   /// The body of the loop.
   StatementImpl _body;
@@ -5727,12 +5727,12 @@
     implements FunctionDeclaration {
   /// The token representing the 'augment' keyword, or `null` if this is not an
   /// function augmentation.
-  Token? augmentKeyword;
+  final Token? augmentKeyword;
 
   /// The token representing the 'external' keyword, or `null` if this is not an
   /// external function.
   @override
-  Token? externalKeyword;
+  final Token? externalKeyword;
 
   /// The return type of the function, or `null` if no return type was declared.
   TypeAnnotationImpl? _returnType;
@@ -5740,7 +5740,7 @@
   /// The token representing the 'get' or 'set' keyword, or `null` if this is a
   /// function declaration rather than a property declaration.
   @override
-  Token? propertyKeyword;
+  final Token? propertyKeyword;
 
   /// The function expression being wrapped.
   FunctionExpressionImpl _functionExpression;
@@ -6211,7 +6211,7 @@
   FormalParameterListImpl _parameters;
 
   @override
-  Token? question;
+  final Token? question;
 
   /// Initialize a newly created formal parameter. Either or both of the
   /// [comment] and [metadata] can be `null` if the parameter does not have the
@@ -6340,7 +6340,7 @@
   TypeAnnotationImpl? _returnType;
 
   @override
-  Token functionKeyword;
+  final Token functionKeyword;
 
   /// The type parameters for the function type, or `null` if the function type
   /// does not have any type parameters.
@@ -6350,7 +6350,7 @@
   FormalParameterListImpl _parameters;
 
   @override
-  Token? question;
+  final Token? question;
 
   @override
   DartType? type;
@@ -6440,7 +6440,7 @@
   TypeParameterListImpl? _typeParameters;
 
   @override
-  Token equals;
+  final Token equals;
 
   @override
   Element? declaredElement;
@@ -6527,7 +6527,7 @@
 class HideClauseImpl extends AstNodeImpl implements HideClause {
   /// The token representing the 'hide' keyword.
   @override
-  Token hideKeyword;
+  final Token hideKeyword;
 
   /// The elements that are being shown.
   final NodeListImpl<ShowHideClauseElement> _elements = NodeListImpl._();
@@ -6613,10 +6613,10 @@
 
 class IfElementImpl extends CollectionElementImpl implements IfElement {
   @override
-  Token ifKeyword;
+  final Token ifKeyword;
 
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   ExpressionImpl _condition;
 
@@ -6624,10 +6624,10 @@
   final CaseClauseImpl? caseClause;
 
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   @override
-  Token? elseKeyword;
+  final Token? elseKeyword;
 
   /// The element to be executed if the condition is `true`.
   CollectionElementImpl _thenElement;
@@ -6722,10 +6722,10 @@
 ///        ('else' [Statement])?
 class IfStatementImpl extends StatementImpl implements IfStatement {
   @override
-  Token ifKeyword;
+  final Token ifKeyword;
 
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   /// The condition used to determine which of the branches is executed next.
   ExpressionImpl _condition;
@@ -6734,10 +6734,10 @@
   final CaseClauseImpl? caseClause;
 
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   @override
-  Token? elseKeyword;
+  final Token? elseKeyword;
 
   /// The statement that is executed if the condition evaluates to `true`.
   StatementImpl _thenStatement;
@@ -6831,7 +6831,7 @@
 class ImplementsClauseImpl extends AstNodeImpl implements ImplementsClause {
   /// The token representing the 'implements' keyword.
   @override
-  Token implementsKeyword;
+  final Token implementsKeyword;
 
   /// The interfaces that are being implemented.
   final NodeListImpl<NamedType> _interfaces = NodeListImpl._();
@@ -6947,17 +6947,17 @@
 class ImportDirectiveImpl extends NamespaceDirectiveImpl
     implements ImportDirective {
   @override
-  Token importKeyword;
+  final Token importKeyword;
 
   /// The token representing the 'deferred' keyword, or `null` if the imported
   /// is not deferred.
   @override
-  Token? deferredKeyword;
+  final Token? deferredKeyword;
 
   /// The token representing the 'as' keyword, or `null` if the imported names
   /// are not prefixed.
   @override
-  Token? asKeyword;
+  final Token? asKeyword;
 
   /// The prefix to be used with the imported names, or `null` if the imported
   /// names are not prefixed.
@@ -7093,16 +7093,16 @@
   ExpressionImpl? _target;
 
   @override
-  Token? question;
+  final Token? question;
 
   @override
-  Token leftBracket;
+  final Token leftBracket;
 
   /// The expression used to compute the index.
   ExpressionImpl _index;
 
   @override
-  Token rightBracket;
+  final Token rightBracket;
 
   /// The element associated with the operator based on the static type of the
   /// target, or `null` if the AST structure has not been resolved or if the
@@ -7411,7 +7411,7 @@
 class IntegerLiteralImpl extends LiteralImpl implements IntegerLiteral {
   /// The token representing the literal.
   @override
-  Token literal;
+  final Token literal;
 
   /// The value of the literal.
   @override
@@ -7530,7 +7530,7 @@
   /// the expression is a simple identifier or '${' if the expression is a full
   /// expression.
   @override
-  Token leftBracket;
+  final Token leftBracket;
 
   /// The expression to be evaluated for the value to be converted into a
   /// string.
@@ -7539,7 +7539,7 @@
   /// The right curly bracket, or `null` if the expression is an identifier
   /// without brackets.
   @override
-  Token? rightBracket;
+  final Token? rightBracket;
 
   /// Initialize a newly created interpolation expression.
   InterpolationExpressionImpl({
@@ -7587,7 +7587,7 @@
     implements InterpolationString {
   /// The characters that will be added to the string.
   @override
-  Token contents;
+  final Token contents;
 
   /// The value of the literal.
   @override
@@ -7684,11 +7684,11 @@
 
   /// The is operator.
   @override
-  Token isOperator;
+  final Token isOperator;
 
   /// The not operator, or `null` if the sense of the test is not negated.
   @override
-  Token? notOperator;
+  final Token? notOperator;
 
   /// The name of the type being tested for.
   TypeAnnotationImpl _type;
@@ -7820,7 +7820,7 @@
 
   /// The colon that separates the label from the statement.
   @override
-  Token colon;
+  final Token colon;
 
   /// Initialize a newly created label.
   LabelImpl({
@@ -7865,13 +7865,13 @@
 class LibraryAugmentationDirectiveImpl extends UriBasedDirectiveImpl
     implements LibraryAugmentationDirective {
   @override
-  Token libraryKeyword;
+  final Token libraryKeyword;
 
   @override
-  Token augmentKeyword;
+  final Token augmentKeyword;
 
   @override
-  Token semicolon;
+  final Token semicolon;
 
   LibraryAugmentationDirectiveImpl({
     required super.comment,
@@ -7908,14 +7908,14 @@
 class LibraryDirectiveImpl extends DirectiveImpl implements LibraryDirective {
   /// The token representing the 'library' keyword.
   @override
-  Token libraryKeyword;
+  final Token libraryKeyword;
 
   /// The name of the library being defined.
   LibraryIdentifierImpl? _name;
 
   /// The semicolon terminating the directive.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created library directive. Either or both of the
   /// [comment] and [metadata] can be `null` if the directive does not have the
@@ -8033,14 +8033,14 @@
 class ListLiteralImpl extends TypedLiteralImpl implements ListLiteral {
   /// The left square bracket.
   @override
-  Token leftBracket;
+  final Token leftBracket;
 
   /// The expressions used to compute the elements of the list.
   final NodeListImpl<CollectionElement> _elements = NodeListImpl._();
 
   /// The right square bracket.
   @override
-  Token rightBracket;
+  final Token rightBracket;
 
   /// Initialize a newly created list literal. The [constKeyword] can be `null`
   /// if the literal is not a constant. The [typeArguments] can be `null` if no
@@ -8209,7 +8209,7 @@
 
   /// The colon that separates the key from the value.
   @override
-  Token separator;
+  final Token separator;
 
   /// The expression computing the value that will be associated with the key.
   ExpressionImpl _value;
@@ -8398,12 +8398,12 @@
   /// The token for the 'external' keyword, or `null` if the constructor is not
   /// external.
   @override
-  Token? externalKeyword;
+  final Token? externalKeyword;
 
   /// The token representing the 'abstract' or 'static' keyword, or `null` if
   /// neither modifier was specified.
   @override
-  Token? modifierKeyword;
+  final Token? modifierKeyword;
 
   /// The return type of the method, or `null` if no return type was declared.
   TypeAnnotationImpl? _returnType;
@@ -8411,15 +8411,15 @@
   /// The token representing the 'get' or 'set' keyword, or `null` if this is a
   /// method declaration rather than a property declaration.
   @override
-  Token? propertyKeyword;
+  final Token? propertyKeyword;
 
   /// The token representing the 'operator' keyword, or `null` if this method
   /// does not declare an operator.
   @override
-  Token? operatorKeyword;
+  final Token? operatorKeyword;
 
   @override
-  Token name;
+  final Token name;
 
   /// The type parameters associated with the method, or `null` if the method is
   /// not a generic method.
@@ -8729,10 +8729,10 @@
 class MixinDeclarationImpl extends NamedCompilationUnitMemberImpl
     implements MixinDeclaration {
   /// Return the 'augment' keyword, or `null` if the keyword was absent.
-  Token? augmentKeyword;
+  final Token? augmentKeyword;
 
   @override
-  Token mixinKeyword;
+  final Token mixinKeyword;
 
   /// The type parameters for the class or mixin,
   /// or `null` if the declaration does not have any type parameters.
@@ -8751,14 +8751,14 @@
 
   /// The left curly bracket.
   @override
-  Token leftBracket;
+  final Token leftBracket;
 
   /// The members defined by the class or mixin.
   final NodeListImpl<ClassMember> _members = NodeListImpl._();
 
   /// The right curly bracket.
   @override
-  Token rightBracket;
+  final Token rightBracket;
 
   /// Initialize a newly created mixin declaration. Either or both of the
   /// [comment] and [metadata] can be `null` if the mixin does not have the
@@ -8853,7 +8853,7 @@
     implements NamedCompilationUnitMember {
   /// The name of the member being declared.
   @override
-  Token name;
+  final Token name;
 
   /// Initialize a newly created compilation unit member with the given [name].
   /// Either or both of the [comment] and [metadata] can be `null` if the member
@@ -8956,7 +8956,7 @@
   TypeArgumentListImpl? _typeArguments;
 
   @override
-  Token? question;
+  final Token? question;
 
   /// The type being named, or `null` if the AST structure has not been
   /// resolved, or if this is part of a [ConstructorReference].
@@ -9039,7 +9039,7 @@
 
   /// The semicolon terminating the directive.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created namespace directive. Either or both of the
   /// [comment] and [metadata] can be `null` if the directive does not have the
@@ -9117,7 +9117,7 @@
     implements NativeFunctionBody {
   /// The token representing 'native' that marks the start of the function body.
   @override
-  Token nativeKeyword;
+  final Token nativeKeyword;
 
   /// The string literal, after the 'native' token.
   StringLiteralImpl? _stringLiteral;
@@ -9125,7 +9125,7 @@
   /// The token representing the semicolon that marks the end of the function
   /// body.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created function body consisting of the 'native' token,
   /// a string literal, and a semicolon.
@@ -9301,14 +9301,14 @@
 
   /// The 'covariant' keyword, or `null` if the keyword was not used.
   @override
-  Token? covariantKeyword;
+  final Token? covariantKeyword;
 
   /// The 'required' keyword, or `null` if the keyword was not used.
   @override
-  Token? requiredKeyword;
+  final Token? requiredKeyword;
 
   @override
-  Token? name;
+  final Token? name;
 
   /// Initialize a newly created formal parameter. Either or both of the
   /// [comment] and [metadata] can be `null` if the parameter does not have the
@@ -9505,14 +9505,14 @@
     implements ParenthesizedExpression {
   /// The left parenthesis.
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   /// The expression within the parentheses.
   ExpressionImpl _expression;
 
   /// The right parenthesis.
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   /// Initialize a newly created parenthesized expression.
   ParenthesizedExpressionImpl({
@@ -9640,11 +9640,11 @@
 class PartDirectiveImpl extends UriBasedDirectiveImpl implements PartDirective {
   /// The token representing the 'part' keyword.
   @override
-  Token partKeyword;
+  final Token partKeyword;
 
   /// The semicolon terminating the directive.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created part directive. Either or both of the [comment]
   /// and [metadata] can be `null` if the directive does not have the
@@ -9689,11 +9689,11 @@
 class PartOfDirectiveImpl extends DirectiveImpl implements PartOfDirective {
   /// The token representing the 'part' keyword.
   @override
-  Token partKeyword;
+  final Token partKeyword;
 
   /// The token representing the 'of' keyword.
   @override
-  Token ofKeyword;
+  final Token ofKeyword;
 
   /// The URI of the library that the containing compilation unit is part of.
   StringLiteralImpl? _uri;
@@ -9705,7 +9705,7 @@
 
   /// The semicolon terminating the directive.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created part-of directive. Either or both of the
   /// [comment] and [metadata] can be `null` if the directive does not have the
@@ -9970,7 +9970,7 @@
 
   /// The postfix operator being applied to the operand.
   @override
-  Token operator;
+  final Token operator;
 
   /// The element associated with the operator based on the static type of the
   /// operand, or `null` if the AST structure has not been resolved, if the
@@ -10109,7 +10109,7 @@
 
   /// The period used to separate the prefix from the identifier.
   @override
-  Token period;
+  final Token period;
 
   /// The identifier being prefixed.
   SimpleIdentifierImpl _identifier;
@@ -10199,7 +10199,7 @@
     implements PrefixExpression {
   /// The prefix operator being applied to the operand.
   @override
-  Token operator;
+  final Token operator;
 
   /// The expression computing the operand for the operator.
   ExpressionImpl _operand;
@@ -10291,7 +10291,7 @@
 
   /// The property access operator.
   @override
-  Token operator;
+  final Token operator;
 
   /// The name of the property being accessed.
   SimpleIdentifierImpl _propertyName;
@@ -10402,16 +10402,16 @@
 
 class RecordLiteralImpl extends LiteralImpl implements RecordLiteral {
   @override
-  Token? constKeyword;
+  final Token? constKeyword;
 
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   /// The syntactic elements used to compute the fields of the record.
   final NodeListImpl<ExpressionImpl> _fields = NodeListImpl._();
 
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   /// Initialize a newly created record literal.
   RecordLiteralImpl({
@@ -10636,7 +10636,7 @@
 class RecordTypeAnnotationImpl extends TypeAnnotationImpl
     implements RecordTypeAnnotation {
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   @override
   final NodeListImpl<RecordTypeAnnotationPositionalField> positionalFields =
@@ -10646,7 +10646,7 @@
   final RecordTypeAnnotationNamedFieldsImpl? namedFields;
 
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   @override
   final Token? question;
@@ -10777,12 +10777,12 @@
     implements RedirectingConstructorInvocation {
   /// The token for the 'this' keyword.
   @override
-  Token thisKeyword;
+  final Token thisKeyword;
 
   /// The token for the period before the name of the constructor that is being
   /// invoked, or `null` if the unnamed constructor is being invoked.
   @override
-  Token? period;
+  final Token? period;
 
   /// The name of the constructor that is being invoked, or `null` if the
   /// unnamed constructor is being invoked.
@@ -10923,7 +10923,7 @@
     implements RethrowExpression {
   /// The token representing the 'rethrow' keyword.
   @override
-  Token rethrowKeyword;
+  final Token rethrowKeyword;
 
   /// Initialize a newly created rethrow expression.
   RethrowExpressionImpl({
@@ -10964,7 +10964,7 @@
 class ReturnStatementImpl extends StatementImpl implements ReturnStatement {
   /// The token representing the 'return' keyword.
   @override
-  Token returnKeyword;
+  final Token returnKeyword;
 
   /// The expression computing the value to be returned, or `null` if no
   /// explicit value was provided.
@@ -10972,7 +10972,7 @@
 
   /// The semicolon terminating the statement.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created return statement. The [expression] can be
   /// `null` if no explicit value was provided.
@@ -11020,7 +11020,7 @@
 class ScriptTagImpl extends AstNodeImpl implements ScriptTag {
   /// The token representing this script tag.
   @override
-  Token scriptTag;
+  final Token scriptTag;
 
   /// Initialize a newly created script tag.
   ScriptTagImpl({
@@ -11048,13 +11048,13 @@
 
 class SetOrMapLiteralImpl extends TypedLiteralImpl implements SetOrMapLiteral {
   @override
-  Token leftBracket;
+  final Token leftBracket;
 
   /// The syntactic elements in the set.
   final NodeListImpl<CollectionElement> _elements = NodeListImpl._();
 
   @override
-  Token rightBracket;
+  final Token rightBracket;
 
   /// A representation of whether this literal represents a map or a set, or
   /// whether the kind has not or cannot be determined.
@@ -11156,7 +11156,7 @@
 class ShowClauseImpl extends AstNodeImpl implements ShowClause {
   /// The token representing the 'show' keyword.
   @override
-  Token showKeyword;
+  final Token showKeyword;
 
   /// The elements that are being shown.
   final NodeListImpl<ShowHideClauseElement> _elements = NodeListImpl._();
@@ -11242,7 +11242,7 @@
 /// Clients may not extend, implement or mix-in this class.
 class ShowHideElementImpl extends AstNodeImpl implements ShowHideElement {
   @override
-  Token? modifier;
+  final Token? modifier;
 
   @override
   SimpleIdentifierImpl name;
@@ -11283,7 +11283,7 @@
   /// The token representing either the 'final', 'const' or 'var' keyword, or
   /// `null` if no keyword was used.
   @override
-  Token? keyword;
+  final Token? keyword;
 
   /// The name of the declared type of the parameter, or `null` if the parameter
   /// does not have a declared type.
@@ -11369,7 +11369,7 @@
 class SimpleIdentifierImpl extends IdentifierImpl implements SimpleIdentifier {
   /// The token representing the identifier.
   @override
-  Token token;
+  final Token token;
 
   /// The element associated with this identifier based on static type
   /// information, or `null` if the AST structure has not been resolved or if
@@ -11588,7 +11588,7 @@
     implements SimpleStringLiteral {
   /// The token representing the literal.
   @override
-  Token literal;
+  final Token literal;
 
   /// The value of the literal.
   @override
@@ -11662,7 +11662,7 @@
 class SpreadElementImpl extends AstNodeImpl
     implements CollectionElementImpl, SpreadElement {
   @override
-  Token spreadOperator;
+  final Token spreadOperator;
 
   ExpressionImpl _expression;
 
@@ -11956,12 +11956,12 @@
     implements SuperConstructorInvocation {
   /// The token for the 'super' keyword.
   @override
-  Token superKeyword;
+  final Token superKeyword;
 
   /// The token for the period before the name of the constructor that is being
   /// invoked, or `null` if the unnamed constructor is being invoked.
   @override
-  Token? period;
+  final Token? period;
 
   /// The name of the constructor that is being invoked, or `null` if the
   /// unnamed constructor is being invoked.
@@ -12036,7 +12036,7 @@
 class SuperExpressionImpl extends ExpressionImpl implements SuperExpression {
   /// The token representing the 'super' keyword.
   @override
-  Token superKeyword;
+  final Token superKeyword;
 
   /// Initialize a newly created super expression.
   SuperExpressionImpl({
@@ -12081,7 +12081,7 @@
   /// The token representing either the 'final', 'const' or 'var' keyword, or
   /// `null` if no keyword was used.
   @override
-  Token? keyword;
+  final Token? keyword;
 
   /// The name of the declared type of the parameter, or `null` if the parameter
   /// does not have a declared type.
@@ -12089,11 +12089,11 @@
 
   /// The token representing the 'super' keyword.
   @override
-  Token superKeyword;
+  final Token superKeyword;
 
   /// The token representing the period.
   @override
-  Token period;
+  final Token period;
 
   /// The type parameters associated with the method, or `null` if the method is
   /// not a generic method.
@@ -12104,7 +12104,7 @@
   FormalParameterListImpl? _parameters;
 
   @override
-  Token? question;
+  final Token? question;
 
   /// Initialize a newly created formal parameter. Either or both of the
   /// [comment] and [metadata] can be `null` if the parameter does not have the
@@ -12489,11 +12489,11 @@
 
   /// The token representing the 'case' or 'default' keyword.
   @override
-  Token keyword;
+  final Token keyword;
 
   /// The colon separating the keyword or the expression from the statements.
   @override
-  Token colon;
+  final Token colon;
 
   /// The statements that will be executed if this switch member is selected.
   final NodeListImpl<Statement> _statements = NodeListImpl._();
@@ -12586,11 +12586,11 @@
 class SwitchStatementImpl extends StatementImpl implements SwitchStatement {
   /// The token representing the 'switch' keyword.
   @override
-  Token switchKeyword;
+  final Token switchKeyword;
 
   /// The left parenthesis.
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   /// The expression used to determine which of the switch members will be
   /// selected.
@@ -12598,18 +12598,18 @@
 
   /// The right parenthesis.
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   /// The left curly bracket.
   @override
-  Token leftBracket;
+  final Token leftBracket;
 
   /// The switch members that can be selected by the expression.
   final NodeListImpl<SwitchMember> _members = NodeListImpl._();
 
   /// The right curly bracket.
   @override
-  Token rightBracket;
+  final Token rightBracket;
 
   /// Initialize a newly created switch statement. The list of [members] can be
   /// `null` if there are no switch members.
@@ -12669,7 +12669,7 @@
 class SymbolLiteralImpl extends LiteralImpl implements SymbolLiteral {
   /// The token introducing the literal.
   @override
-  Token poundSign;
+  final Token poundSign;
 
   /// The components of the literal.
   @override
@@ -12714,7 +12714,7 @@
 class ThisExpressionImpl extends ExpressionImpl implements ThisExpression {
   /// The token representing the 'this' keyword.
   @override
-  Token thisKeyword;
+  final Token thisKeyword;
 
   /// Initialize a newly created this expression.
   ThisExpressionImpl({
@@ -12755,7 +12755,7 @@
 class ThrowExpressionImpl extends ExpressionImpl implements ThrowExpression {
   /// The token representing the 'throw' keyword.
   @override
-  Token throwKeyword;
+  final Token throwKeyword;
 
   /// The expression computing the exception to be thrown.
   ExpressionImpl _expression;
@@ -12816,11 +12816,11 @@
   VariableDeclarationListImpl _variableList;
 
   @override
-  Token? externalKeyword;
+  final Token? externalKeyword;
 
   /// The semicolon terminating the declaration.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created top-level variable declaration. Either or both
   /// of the [comment] and [metadata] can be `null` if the variable does not
@@ -12882,7 +12882,7 @@
 class TryStatementImpl extends StatementImpl implements TryStatement {
   /// The token representing the 'try' keyword.
   @override
-  Token tryKeyword;
+  final Token tryKeyword;
 
   /// The body of the statement.
   BlockImpl _body;
@@ -12893,7 +12893,7 @@
   /// The token representing the 'finally' keyword, or `null` if the statement
   /// does not contain a finally clause.
   @override
-  Token? finallyKeyword;
+  final Token? finallyKeyword;
 
   /// The finally block contained in the try statement, or `null` if the
   /// statement does not contain a finally clause.
@@ -12978,11 +12978,11 @@
     implements TypeAlias {
   /// The token representing the 'typedef' keyword.
   @override
-  Token typedefKeyword;
+  final Token typedefKeyword;
 
   /// The semicolon terminating the declaration.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created type alias. Either or both of the [comment] and
   /// [metadata] can be `null` if the declaration does not have the
@@ -13017,14 +13017,14 @@
 class TypeArgumentListImpl extends AstNodeImpl implements TypeArgumentList {
   /// The left bracket.
   @override
-  Token leftBracket;
+  final Token leftBracket;
 
   /// The type arguments associated with the type.
   final NodeListImpl<TypeAnnotation> _arguments = NodeListImpl._();
 
   /// The right bracket.
   @override
-  Token rightBracket;
+  final Token rightBracket;
 
   /// Initialize a newly created list of type arguments.
   TypeArgumentListImpl({
@@ -13171,7 +13171,7 @@
 ///    typeParameterVariance ::= 'out' | 'inout' | 'in'
 class TypeParameterImpl extends DeclarationImpl implements TypeParameter {
   @override
-  Token name;
+  final Token name;
 
   /// The token representing the variance modifier keyword, or `null` if
   /// there is no explicit variance modifier, meaning legacy covariance.
@@ -13383,7 +13383,7 @@
 class VariableDeclarationImpl extends DeclarationImpl
     implements VariableDeclaration {
   @override
-  Token name;
+  final Token name;
 
   @override
   VariableElement? declaredElement;
@@ -13391,7 +13391,7 @@
   /// The equal sign separating the variable name from the initial value, or
   /// `null` if the initial value was not specified.
   @override
-  Token? equals;
+  final Token? equals;
 
   /// The expression used to compute the initial value for the variable, or
   /// `null` if the initial value was not specified.
@@ -13505,12 +13505,12 @@
   /// The token representing the 'final', 'const' or 'var' keyword, or `null` if
   /// no keyword was included.
   @override
-  Token? keyword;
+  final Token? keyword;
 
   /// The token representing the 'late' keyword, or `null` if the late modifier
   /// was not included.
   @override
-  Token? lateKeyword;
+  final Token? lateKeyword;
 
   /// The type of the variables being declared, or `null` if no type was
   /// provided.
@@ -13595,7 +13595,7 @@
 
   /// The semicolon terminating the statement.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created variable declaration statement.
   VariableDeclarationStatementImpl({
@@ -13751,18 +13751,18 @@
 class WhileStatementImpl extends StatementImpl implements WhileStatement {
   /// The token representing the 'while' keyword.
   @override
-  Token whileKeyword;
+  final Token whileKeyword;
 
   /// The left parenthesis.
   @override
-  Token leftParenthesis;
+  final Token leftParenthesis;
 
   /// The expression used to determine whether to execute the body of the loop.
   ExpressionImpl _condition;
 
   /// The right parenthesis.
   @override
-  Token rightParenthesis;
+  final Token rightParenthesis;
 
   /// The body of the loop.
   StatementImpl _body;
@@ -13825,7 +13825,7 @@
 class WithClauseImpl extends AstNodeImpl implements WithClause {
   /// The token representing the 'with' keyword.
   @override
-  Token withKeyword;
+  final Token withKeyword;
 
   /// The names of the mixins that were specified.
   final NodeListImpl<NamedType> _mixinTypes = NodeListImpl._();
@@ -13869,18 +13869,18 @@
 class YieldStatementImpl extends StatementImpl implements YieldStatement {
   /// The 'yield' keyword.
   @override
-  Token yieldKeyword;
+  final Token yieldKeyword;
 
   /// The star optionally following the 'yield' keyword.
   @override
-  Token? star;
+  final Token? star;
 
   /// The expression whose value will be yielded.
   ExpressionImpl _expression;
 
   /// The semicolon following the expression.
   @override
-  Token semicolon;
+  final Token semicolon;
 
   /// Initialize a newly created yield expression. The [star] can be `null` if
   /// no star was provided.