| Index: pkg/analyzer_experimental/lib/src/generated/ast.dart
 | 
| diff --git a/pkg/analyzer_experimental/lib/src/generated/ast.dart b/pkg/analyzer_experimental/lib/src/generated/ast.dart
 | 
| index e242155612ef960b7cb6c71cb194194eb2c31161..f18ed43053a97b011f3d9f27b7da5e974fa26171 100644
 | 
| --- a/pkg/analyzer_experimental/lib/src/generated/ast.dart
 | 
| +++ b/pkg/analyzer_experimental/lib/src/generated/ast.dart
 | 
| @@ -81,12 +81,12 @@ abstract class ASTNode {
 | 
|     * @return the number of characters in the node's source range
 | 
|     */
 | 
|    int get length {
 | 
| -    Token beginToken2 = beginToken;
 | 
| -    Token endToken2 = endToken;
 | 
| -    if (beginToken2 == null || endToken2 == null) {
 | 
| +    Token beginToken = this.beginToken;
 | 
| +    Token endToken = this.endToken;
 | 
| +    if (beginToken == null || endToken == null) {
 | 
|        return -1;
 | 
|      }
 | 
| -    return endToken2.offset + endToken2.length - beginToken2.offset;
 | 
| +    return endToken.offset + endToken.length - beginToken.offset;
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| @@ -96,8 +96,8 @@ abstract class ASTNode {
 | 
|     * range
 | 
|     */
 | 
|    int get offset {
 | 
| -    Token beginToken2 = beginToken;
 | 
| -    if (beginToken2 == null) {
 | 
| +    Token beginToken = this.beginToken;
 | 
| +    if (beginToken == null) {
 | 
|        return -1;
 | 
|      }
 | 
|      return beginToken.offset;
 | 
| @@ -131,10 +131,10 @@ abstract class ASTNode {
 | 
|     */
 | 
|    ASTNode get root {
 | 
|      ASTNode root = this;
 | 
| -    ASTNode parent2 = parent;
 | 
| -    while (parent2 != null) {
 | 
| -      root = parent2;
 | 
| -      parent2 = root.parent;
 | 
| +    ASTNode parent = this.parent;
 | 
| +    while (parent != null) {
 | 
| +      root = parent;
 | 
| +      parent = root.parent;
 | 
|      }
 | 
|      return root;
 | 
|    }
 | 
| @@ -1460,11 +1460,11 @@ class BinaryExpression extends Expression {
 | 
|      if (_propagatedElement == null) {
 | 
|        return null;
 | 
|      }
 | 
| -    List<ParameterElement> parameters2 = _propagatedElement.parameters;
 | 
| -    if (parameters2.length < 1) {
 | 
| +    List<ParameterElement> parameters = _propagatedElement.parameters;
 | 
| +    if (parameters.length < 1) {
 | 
|        return null;
 | 
|      }
 | 
| -    return parameters2[0];
 | 
| +    return parameters[0];
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| @@ -1480,11 +1480,11 @@ class BinaryExpression extends Expression {
 | 
|      if (_staticElement == null) {
 | 
|        return null;
 | 
|      }
 | 
| -    List<ParameterElement> parameters2 = _staticElement.parameters;
 | 
| -    if (parameters2.length < 1) {
 | 
| +    List<ParameterElement> parameters = _staticElement.parameters;
 | 
| +    if (parameters.length < 1) {
 | 
|        return null;
 | 
|      }
 | 
| -    return parameters2[0];
 | 
| +    return parameters[0];
 | 
|    }
 | 
|  }
 | 
|  /**
 | 
| @@ -2984,11 +2984,11 @@ class CompilationUnit extends ASTNode {
 | 
|      }
 | 
|    }
 | 
|    int get length {
 | 
| -    Token endToken2 = endToken;
 | 
| -    if (endToken2 == null) {
 | 
| +    Token endToken = this.endToken;
 | 
| +    if (endToken == null) {
 | 
|        return 0;
 | 
|      }
 | 
| -    return endToken2.offset + endToken2.length;
 | 
| +    return endToken.offset + endToken.length;
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| @@ -4084,11 +4084,11 @@ class DeclaredIdentifier extends Declaration {
 | 
|    DeclaredIdentifier({Comment comment, List<Annotation> metadata, Token keyword, TypeName type, SimpleIdentifier identifier}) : this.full(comment, metadata, keyword, type, identifier);
 | 
|    accept(ASTVisitor visitor) => visitor.visitDeclaredIdentifier(this);
 | 
|    LocalVariableElement get element {
 | 
| -    SimpleIdentifier identifier2 = identifier;
 | 
| -    if (identifier2 == null) {
 | 
| +    SimpleIdentifier identifier = this.identifier;
 | 
| +    if (identifier == null) {
 | 
|        return null;
 | 
|      }
 | 
| -    return identifier2.element as LocalVariableElement;
 | 
| +    return identifier.element as LocalVariableElement;
 | 
|    }
 | 
|    Token get endToken => _identifier.endToken;
 | 
|  
 | 
| @@ -4740,9 +4740,9 @@ class ExportDirective extends NamespaceDirective {
 | 
|    ExportDirective({Comment comment, List<Annotation> metadata, Token keyword, StringLiteral libraryUri, List<Combinator> combinators, Token semicolon}) : this.full(comment, metadata, keyword, libraryUri, combinators, semicolon);
 | 
|    accept(ASTVisitor visitor) => visitor.visitExportDirective(this);
 | 
|    LibraryElement get uriElement {
 | 
| -    Element element2 = element;
 | 
| -    if (element2 is ExportElement) {
 | 
| -      return ((element2 as ExportElement)).exportedLibrary;
 | 
| +    Element element = this.element;
 | 
| +    if (element is ExportElement) {
 | 
| +      return ((element as ExportElement)).exportedLibrary;
 | 
|      }
 | 
|      return null;
 | 
|    }
 | 
| @@ -4782,23 +4782,23 @@ abstract class Expression extends ASTNode {
 | 
|     * will be bound
 | 
|     */
 | 
|    ParameterElement get parameterElement {
 | 
| -    ASTNode parent2 = parent;
 | 
| -    if (parent2 is ArgumentList) {
 | 
| -      return ((parent2 as ArgumentList)).getPropagatedParameterElementFor(this);
 | 
| -    } else if (parent2 is IndexExpression) {
 | 
| -      IndexExpression indexExpression = parent2 as IndexExpression;
 | 
| +    ASTNode parent = this.parent;
 | 
| +    if (parent is ArgumentList) {
 | 
| +      return ((parent as ArgumentList)).getPropagatedParameterElementFor(this);
 | 
| +    } else if (parent is IndexExpression) {
 | 
| +      IndexExpression indexExpression = parent as IndexExpression;
 | 
|        if (identical(indexExpression.index, this)) {
 | 
|          return indexExpression.propagatedParameterElementForIndex;
 | 
|        }
 | 
| -    } else if (parent2 is BinaryExpression) {
 | 
| -      BinaryExpression binaryExpression = parent2 as BinaryExpression;
 | 
| +    } else if (parent is BinaryExpression) {
 | 
| +      BinaryExpression binaryExpression = parent as BinaryExpression;
 | 
|        if (identical(binaryExpression.rightOperand, this)) {
 | 
|          return binaryExpression.propagatedParameterElementForRightOperand;
 | 
|        }
 | 
| -    } else if (parent2 is PrefixExpression) {
 | 
| -      return ((parent2 as PrefixExpression)).propagatedParameterElementForOperand;
 | 
| -    } else if (parent2 is PostfixExpression) {
 | 
| -      return ((parent2 as PostfixExpression)).propagatedParameterElementForOperand;
 | 
| +    } else if (parent is PrefixExpression) {
 | 
| +      return ((parent as PrefixExpression)).propagatedParameterElementForOperand;
 | 
| +    } else if (parent is PostfixExpression) {
 | 
| +      return ((parent as PostfixExpression)).propagatedParameterElementForOperand;
 | 
|      }
 | 
|      return null;
 | 
|    }
 | 
| @@ -4820,23 +4820,23 @@ abstract class Expression extends ASTNode {
 | 
|     * will be bound
 | 
|     */
 | 
|    ParameterElement get staticParameterElement {
 | 
| -    ASTNode parent2 = parent;
 | 
| -    if (parent2 is ArgumentList) {
 | 
| -      return ((parent2 as ArgumentList)).getStaticParameterElementFor(this);
 | 
| -    } else if (parent2 is IndexExpression) {
 | 
| -      IndexExpression indexExpression = parent2 as IndexExpression;
 | 
| +    ASTNode parent = this.parent;
 | 
| +    if (parent is ArgumentList) {
 | 
| +      return ((parent as ArgumentList)).getStaticParameterElementFor(this);
 | 
| +    } else if (parent is IndexExpression) {
 | 
| +      IndexExpression indexExpression = parent as IndexExpression;
 | 
|        if (identical(indexExpression.index, this)) {
 | 
|          return indexExpression.staticParameterElementForIndex;
 | 
|        }
 | 
| -    } else if (parent2 is BinaryExpression) {
 | 
| -      BinaryExpression binaryExpression = parent2 as BinaryExpression;
 | 
| +    } else if (parent is BinaryExpression) {
 | 
| +      BinaryExpression binaryExpression = parent as BinaryExpression;
 | 
|        if (identical(binaryExpression.rightOperand, this)) {
 | 
|          return binaryExpression.staticParameterElementForRightOperand;
 | 
|        }
 | 
| -    } else if (parent2 is PrefixExpression) {
 | 
| -      return ((parent2 as PrefixExpression)).staticParameterElementForOperand;
 | 
| -    } else if (parent2 is PostfixExpression) {
 | 
| -      return ((parent2 as PostfixExpression)).staticParameterElementForOperand;
 | 
| +    } else if (parent is PrefixExpression) {
 | 
| +      return ((parent as PrefixExpression)).staticParameterElementForOperand;
 | 
| +    } else if (parent is PostfixExpression) {
 | 
| +      return ((parent as PostfixExpression)).staticParameterElementForOperand;
 | 
|      }
 | 
|      return null;
 | 
|    }
 | 
| @@ -5811,11 +5811,11 @@ abstract class FormalParameter extends ASTNode {
 | 
|     * @return the element representing this parameter
 | 
|     */
 | 
|    ParameterElement get element {
 | 
| -    SimpleIdentifier identifier2 = identifier;
 | 
| -    if (identifier2 == null) {
 | 
| +    SimpleIdentifier identifier = this.identifier;
 | 
| +    if (identifier == null) {
 | 
|        return null;
 | 
|      }
 | 
| -    return identifier2.element as ParameterElement;
 | 
| +    return identifier.element as ParameterElement;
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| @@ -7072,9 +7072,9 @@ class ImportDirective extends NamespaceDirective {
 | 
|     */
 | 
|    SimpleIdentifier get prefix => _prefix;
 | 
|    LibraryElement get uriElement {
 | 
| -    Element element2 = element;
 | 
| -    if (element2 is ImportElement) {
 | 
| -      return ((element2 as ImportElement)).importedLibrary;
 | 
| +    Element element = this.element;
 | 
| +    if (element is ImportElement) {
 | 
| +      return ((element as ImportElement)).importedLibrary;
 | 
|      }
 | 
|      return null;
 | 
|    }
 | 
| @@ -7287,9 +7287,9 @@ class IndexExpression extends Expression {
 | 
|     * @return {@code true} if this expression is in a context where the operator '\[\]' will be invoked
 | 
|     */
 | 
|    bool inGetterContext() {
 | 
| -    ASTNode parent2 = parent;
 | 
| -    if (parent2 is AssignmentExpression) {
 | 
| -      AssignmentExpression assignment = parent2 as AssignmentExpression;
 | 
| +    ASTNode parent = this.parent;
 | 
| +    if (parent is AssignmentExpression) {
 | 
| +      AssignmentExpression assignment = parent as AssignmentExpression;
 | 
|        if (identical(assignment.leftHandSide, this) && identical(assignment.operator.type, TokenType.EQ)) {
 | 
|          return false;
 | 
|        }
 | 
| @@ -7306,13 +7306,13 @@ class IndexExpression extends Expression {
 | 
|     * invoked
 | 
|     */
 | 
|    bool inSetterContext() {
 | 
| -    ASTNode parent2 = parent;
 | 
| -    if (parent2 is PrefixExpression) {
 | 
| -      return ((parent2 as PrefixExpression)).operator.type.isIncrementOperator();
 | 
| -    } else if (parent2 is PostfixExpression) {
 | 
| +    ASTNode parent = this.parent;
 | 
| +    if (parent is PrefixExpression) {
 | 
| +      return ((parent as PrefixExpression)).operator.type.isIncrementOperator();
 | 
| +    } else if (parent is PostfixExpression) {
 | 
|        return true;
 | 
| -    } else if (parent2 is AssignmentExpression) {
 | 
| -      return identical(((parent2 as AssignmentExpression)).leftHandSide, this);
 | 
| +    } else if (parent is AssignmentExpression) {
 | 
| +      return identical(((parent as AssignmentExpression)).leftHandSide, this);
 | 
|      }
 | 
|      return false;
 | 
|    }
 | 
| @@ -7400,11 +7400,11 @@ class IndexExpression extends Expression {
 | 
|      if (_propagatedElement == null) {
 | 
|        return null;
 | 
|      }
 | 
| -    List<ParameterElement> parameters2 = _propagatedElement.parameters;
 | 
| -    if (parameters2.length < 1) {
 | 
| +    List<ParameterElement> parameters = _propagatedElement.parameters;
 | 
| +    if (parameters.length < 1) {
 | 
|        return null;
 | 
|      }
 | 
| -    return parameters2[0];
 | 
| +    return parameters[0];
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| @@ -7420,11 +7420,11 @@ class IndexExpression extends Expression {
 | 
|      if (_staticElement == null) {
 | 
|        return null;
 | 
|      }
 | 
| -    List<ParameterElement> parameters2 = _staticElement.parameters;
 | 
| -    if (parameters2.length < 1) {
 | 
| +    List<ParameterElement> parameters = _staticElement.parameters;
 | 
| +    if (parameters.length < 1) {
 | 
|        return null;
 | 
|      }
 | 
| -    return parameters2[0];
 | 
| +    return parameters[0];
 | 
|    }
 | 
|  }
 | 
|  /**
 | 
| @@ -8291,9 +8291,9 @@ class ListLiteral extends TypedLiteral {
 | 
|      if (token != null) {
 | 
|        return token;
 | 
|      }
 | 
| -    TypeArgumentList typeArguments2 = typeArguments;
 | 
| -    if (typeArguments2 != null) {
 | 
| -      return typeArguments2.beginToken;
 | 
| +    TypeArgumentList typeArguments = this.typeArguments;
 | 
| +    if (typeArguments != null) {
 | 
| +      return typeArguments.beginToken;
 | 
|      }
 | 
|      return _leftBracket;
 | 
|    }
 | 
| @@ -8403,9 +8403,9 @@ class MapLiteral extends TypedLiteral {
 | 
|      if (token != null) {
 | 
|        return token;
 | 
|      }
 | 
| -    TypeArgumentList typeArguments2 = typeArguments;
 | 
| -    if (typeArguments2 != null) {
 | 
| -      return typeArguments2.beginToken;
 | 
| +    TypeArgumentList typeArguments = this.typeArguments;
 | 
| +    if (typeArguments != null) {
 | 
| +      return typeArguments.beginToken;
 | 
|      }
 | 
|      return _leftBracket;
 | 
|    }
 | 
| @@ -9019,9 +9019,9 @@ class NamedExpression extends Expression {
 | 
|     * @return the element representing the parameter being named by this expression
 | 
|     */
 | 
|    ParameterElement get element {
 | 
| -    Element element2 = _name.label.element;
 | 
| -    if (element2 is ParameterElement) {
 | 
| -      return element2 as ParameterElement;
 | 
| +    Element element = _name.label.element;
 | 
| +    if (element is ParameterElement) {
 | 
| +      return element as ParameterElement;
 | 
|      }
 | 
|      return null;
 | 
|    }
 | 
| @@ -9268,9 +9268,9 @@ abstract class NormalFormalParameter extends FormalParameter {
 | 
|    Comment get documentationComment => _comment;
 | 
|    SimpleIdentifier get identifier => _identifier;
 | 
|    ParameterKind get kind {
 | 
| -    ASTNode parent2 = parent;
 | 
| -    if (parent2 is DefaultFormalParameter) {
 | 
| -      return ((parent2 as DefaultFormalParameter)).kind;
 | 
| +    ASTNode parent = this.parent;
 | 
| +    if (parent is DefaultFormalParameter) {
 | 
| +      return ((parent as DefaultFormalParameter)).kind;
 | 
|      }
 | 
|      return ParameterKind.REQUIRED;
 | 
|    }
 | 
| @@ -9812,11 +9812,11 @@ class PostfixExpression extends Expression {
 | 
|      if (_propagatedElement == null) {
 | 
|        return null;
 | 
|      }
 | 
| -    List<ParameterElement> parameters2 = _propagatedElement.parameters;
 | 
| -    if (parameters2.length < 1) {
 | 
| +    List<ParameterElement> parameters = _propagatedElement.parameters;
 | 
| +    if (parameters.length < 1) {
 | 
|        return null;
 | 
|      }
 | 
| -    return parameters2[0];
 | 
| +    return parameters[0];
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| @@ -9832,11 +9832,11 @@ class PostfixExpression extends Expression {
 | 
|      if (_staticElement == null) {
 | 
|        return null;
 | 
|      }
 | 
| -    List<ParameterElement> parameters2 = _staticElement.parameters;
 | 
| -    if (parameters2.length < 1) {
 | 
| +    List<ParameterElement> parameters = _staticElement.parameters;
 | 
| +    if (parameters.length < 1) {
 | 
|        return null;
 | 
|      }
 | 
| -    return parameters2[0];
 | 
| +    return parameters[0];
 | 
|    }
 | 
|  }
 | 
|  /**
 | 
| @@ -9967,11 +9967,11 @@ class PrefixExpression extends Expression {
 | 
|      if (_propagatedElement == null) {
 | 
|        return null;
 | 
|      }
 | 
| -    List<ParameterElement> parameters2 = _propagatedElement.parameters;
 | 
| -    if (parameters2.length < 1) {
 | 
| +    List<ParameterElement> parameters = _propagatedElement.parameters;
 | 
| +    if (parameters.length < 1) {
 | 
|        return null;
 | 
|      }
 | 
| -    return parameters2[0];
 | 
| +    return parameters[0];
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| @@ -9987,11 +9987,11 @@ class PrefixExpression extends Expression {
 | 
|      if (_staticElement == null) {
 | 
|        return null;
 | 
|      }
 | 
| -    List<ParameterElement> parameters2 = _staticElement.parameters;
 | 
| -    if (parameters2.length < 1) {
 | 
| +    List<ParameterElement> parameters = _staticElement.parameters;
 | 
| +    if (parameters.length < 1) {
 | 
|        return null;
 | 
|      }
 | 
| -    return parameters2[0];
 | 
| +    return parameters[0];
 | 
|    }
 | 
|  }
 | 
|  /**
 | 
| @@ -10784,30 +10784,30 @@ class SimpleIdentifier extends Identifier {
 | 
|     * @return {@code true} if this identifier is the name being declared in a declaration
 | 
|     */
 | 
|    bool inDeclarationContext() {
 | 
| -    ASTNode parent2 = parent;
 | 
| -    if (parent2 is CatchClause) {
 | 
| -      CatchClause clause = parent2 as CatchClause;
 | 
| +    ASTNode parent = this.parent;
 | 
| +    if (parent is CatchClause) {
 | 
| +      CatchClause clause = parent as CatchClause;
 | 
|        return identical(this, clause.exceptionParameter) || identical(this, clause.stackTraceParameter);
 | 
| -    } else if (parent2 is ClassDeclaration) {
 | 
| -      return identical(this, ((parent2 as ClassDeclaration)).name);
 | 
| -    } else if (parent2 is ClassTypeAlias) {
 | 
| -      return identical(this, ((parent2 as ClassTypeAlias)).name);
 | 
| -    } else if (parent2 is ConstructorDeclaration) {
 | 
| -      return identical(this, ((parent2 as ConstructorDeclaration)).name);
 | 
| -    } else if (parent2 is FunctionDeclaration) {
 | 
| -      return identical(this, ((parent2 as FunctionDeclaration)).name);
 | 
| -    } else if (parent2 is FunctionTypeAlias) {
 | 
| -      return identical(this, ((parent2 as FunctionTypeAlias)).name);
 | 
| -    } else if (parent2 is Label) {
 | 
| -      return identical(this, ((parent2 as Label)).label) && (parent2.parent is LabeledStatement);
 | 
| -    } else if (parent2 is MethodDeclaration) {
 | 
| -      return identical(this, ((parent2 as MethodDeclaration)).name);
 | 
| -    } else if (parent2 is FunctionTypedFormalParameter || parent2 is SimpleFormalParameter) {
 | 
| -      return identical(this, ((parent2 as NormalFormalParameter)).identifier);
 | 
| -    } else if (parent2 is TypeParameter) {
 | 
| -      return identical(this, ((parent2 as TypeParameter)).name);
 | 
| -    } else if (parent2 is VariableDeclaration) {
 | 
| -      return identical(this, ((parent2 as VariableDeclaration)).name);
 | 
| +    } else if (parent is ClassDeclaration) {
 | 
| +      return identical(this, ((parent as ClassDeclaration)).name);
 | 
| +    } else if (parent is ClassTypeAlias) {
 | 
| +      return identical(this, ((parent as ClassTypeAlias)).name);
 | 
| +    } else if (parent is ConstructorDeclaration) {
 | 
| +      return identical(this, ((parent as ConstructorDeclaration)).name);
 | 
| +    } else if (parent is FunctionDeclaration) {
 | 
| +      return identical(this, ((parent as FunctionDeclaration)).name);
 | 
| +    } else if (parent is FunctionTypeAlias) {
 | 
| +      return identical(this, ((parent as FunctionTypeAlias)).name);
 | 
| +    } else if (parent is Label) {
 | 
| +      return identical(this, ((parent as Label)).label) && (parent.parent is LabeledStatement);
 | 
| +    } else if (parent is MethodDeclaration) {
 | 
| +      return identical(this, ((parent as MethodDeclaration)).name);
 | 
| +    } else if (parent is FunctionTypedFormalParameter || parent is SimpleFormalParameter) {
 | 
| +      return identical(this, ((parent as NormalFormalParameter)).identifier);
 | 
| +    } else if (parent is TypeParameter) {
 | 
| +      return identical(this, ((parent as TypeParameter)).name);
 | 
| +    } else if (parent is VariableDeclaration) {
 | 
| +      return identical(this, ((parent as VariableDeclaration)).name);
 | 
|      }
 | 
|      return false;
 | 
|    }
 | 
| @@ -10820,28 +10820,28 @@ class SimpleIdentifier extends Identifier {
 | 
|     * @return {@code true} if this expression is in a context where a getter will be invoked
 | 
|     */
 | 
|    bool inGetterContext() {
 | 
| -    ASTNode parent2 = parent;
 | 
| +    ASTNode parent = this.parent;
 | 
|      ASTNode target = this;
 | 
| -    if (parent2 is PrefixedIdentifier) {
 | 
| -      PrefixedIdentifier prefixed = parent2 as PrefixedIdentifier;
 | 
| +    if (parent is PrefixedIdentifier) {
 | 
| +      PrefixedIdentifier prefixed = parent as PrefixedIdentifier;
 | 
|        if (identical(prefixed.prefix, this)) {
 | 
|          return true;
 | 
|        }
 | 
| -      parent2 = prefixed.parent;
 | 
| +      parent = prefixed.parent;
 | 
|        target = prefixed;
 | 
| -    } else if (parent2 is PropertyAccess) {
 | 
| -      PropertyAccess access = parent2 as PropertyAccess;
 | 
| +    } else if (parent is PropertyAccess) {
 | 
| +      PropertyAccess access = parent as PropertyAccess;
 | 
|        if (identical(access.target, this)) {
 | 
|          return true;
 | 
|        }
 | 
| -      parent2 = access.parent;
 | 
| +      parent = access.parent;
 | 
|        target = access;
 | 
|      }
 | 
| -    if (parent2 is Label) {
 | 
| +    if (parent is Label) {
 | 
|        return false;
 | 
|      }
 | 
| -    if (parent2 is AssignmentExpression) {
 | 
| -      AssignmentExpression expr = parent2 as AssignmentExpression;
 | 
| +    if (parent is AssignmentExpression) {
 | 
| +      AssignmentExpression expr = parent as AssignmentExpression;
 | 
|        if (identical(expr.leftHandSide, target) && identical(expr.operator.type, TokenType.EQ)) {
 | 
|          return false;
 | 
|        }
 | 
| @@ -10857,29 +10857,29 @@ class SimpleIdentifier extends Identifier {
 | 
|     * @return {@code true} if this expression is in a context where a setter will be invoked
 | 
|     */
 | 
|    bool inSetterContext() {
 | 
| -    ASTNode parent2 = parent;
 | 
| +    ASTNode parent = this.parent;
 | 
|      ASTNode target = this;
 | 
| -    if (parent2 is PrefixedIdentifier) {
 | 
| -      PrefixedIdentifier prefixed = parent2 as PrefixedIdentifier;
 | 
| +    if (parent is PrefixedIdentifier) {
 | 
| +      PrefixedIdentifier prefixed = parent as PrefixedIdentifier;
 | 
|        if (identical(prefixed.prefix, this)) {
 | 
|          return false;
 | 
|        }
 | 
| -      parent2 = prefixed.parent;
 | 
| +      parent = prefixed.parent;
 | 
|        target = prefixed;
 | 
| -    } else if (parent2 is PropertyAccess) {
 | 
| -      PropertyAccess access = parent2 as PropertyAccess;
 | 
| +    } else if (parent is PropertyAccess) {
 | 
| +      PropertyAccess access = parent as PropertyAccess;
 | 
|        if (identical(access.target, this)) {
 | 
|          return false;
 | 
|        }
 | 
| -      parent2 = access.parent;
 | 
| +      parent = access.parent;
 | 
|        target = access;
 | 
|      }
 | 
| -    if (parent2 is PrefixExpression) {
 | 
| -      return ((parent2 as PrefixExpression)).operator.type.isIncrementOperator();
 | 
| -    } else if (parent2 is PostfixExpression) {
 | 
| +    if (parent is PrefixExpression) {
 | 
| +      return ((parent as PrefixExpression)).operator.type.isIncrementOperator();
 | 
| +    } else if (parent is PostfixExpression) {
 | 
|        return true;
 | 
| -    } else if (parent2 is AssignmentExpression) {
 | 
| -      return identical(((parent2 as AssignmentExpression)).leftHandSide, target);
 | 
| +    } else if (parent is AssignmentExpression) {
 | 
| +      return identical(((parent as AssignmentExpression)).leftHandSide, target);
 | 
|      }
 | 
|      return false;
 | 
|    }
 | 
| @@ -12703,8 +12703,8 @@ class VariableDeclaration extends Declaration {
 | 
|     * @return {@code true} if this variable was declared with the 'const' modifier
 | 
|     */
 | 
|    bool isConst() {
 | 
| -    ASTNode parent2 = parent;
 | 
| -    return parent2 is VariableDeclarationList && ((parent2 as VariableDeclarationList)).isConst();
 | 
| +    ASTNode parent = this.parent;
 | 
| +    return parent is VariableDeclarationList && ((parent as VariableDeclarationList)).isConst();
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| @@ -12714,8 +12714,8 @@ class VariableDeclaration extends Declaration {
 | 
|     * @return {@code true} if this variable was declared with the 'final' modifier
 | 
|     */
 | 
|    bool isFinal() {
 | 
| -    ASTNode parent2 = parent;
 | 
| -    return parent2 is VariableDeclarationList && ((parent2 as VariableDeclarationList)).isFinal();
 | 
| +    ASTNode parent = this.parent;
 | 
| +    return parent is VariableDeclarationList && ((parent as VariableDeclarationList)).isFinal();
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| @@ -13228,130 +13228,130 @@ class ConstantEvaluator extends GeneralizingASTVisitor<Object> {
 | 
|      return builder.toString();
 | 
|    }
 | 
|    Object visitBinaryExpression(BinaryExpression node) {
 | 
| -    Object leftOperand2 = node.leftOperand.accept(this);
 | 
| -    if (identical(leftOperand2, NOT_A_CONSTANT)) {
 | 
| -      return leftOperand2;
 | 
| +    Object leftOperand = node.leftOperand.accept(this);
 | 
| +    if (identical(leftOperand, NOT_A_CONSTANT)) {
 | 
| +      return leftOperand;
 | 
|      }
 | 
| -    Object rightOperand2 = node.rightOperand.accept(this);
 | 
| -    if (identical(rightOperand2, NOT_A_CONSTANT)) {
 | 
| -      return rightOperand2;
 | 
| +    Object rightOperand = node.rightOperand.accept(this);
 | 
| +    if (identical(rightOperand, NOT_A_CONSTANT)) {
 | 
| +      return rightOperand;
 | 
|      }
 | 
|      while (true) {
 | 
|        if (node.operator.type == TokenType.AMPERSAND) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)) & (rightOperand2 as int);
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)) & (rightOperand as int);
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.AMPERSAND_AMPERSAND) {
 | 
| -        if (leftOperand2 is bool && rightOperand2 is bool) {
 | 
| -          return ((leftOperand2 as bool)) && ((rightOperand2 as bool));
 | 
| +        if (leftOperand is bool && rightOperand is bool) {
 | 
| +          return ((leftOperand as bool)) && ((rightOperand as bool));
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.BANG_EQ) {
 | 
| -        if (leftOperand2 is bool && rightOperand2 is bool) {
 | 
| -          return ((leftOperand2 as bool)) != ((rightOperand2 as bool));
 | 
| -        } else if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)) != rightOperand2;
 | 
| -        } else if (leftOperand2 is double && rightOperand2 is double) {
 | 
| -          return ((leftOperand2 as double)) != rightOperand2;
 | 
| -        } else if (leftOperand2 is String && rightOperand2 is String) {
 | 
| -          return ((leftOperand2 as String)) != rightOperand2;
 | 
| +        if (leftOperand is bool && rightOperand is bool) {
 | 
| +          return ((leftOperand as bool)) != ((rightOperand as bool));
 | 
| +        } else if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)) != rightOperand;
 | 
| +        } else if (leftOperand is double && rightOperand is double) {
 | 
| +          return ((leftOperand as double)) != rightOperand;
 | 
| +        } else if (leftOperand is String && rightOperand is String) {
 | 
| +          return ((leftOperand as String)) != rightOperand;
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.BAR) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)) | (rightOperand2 as int);
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)) | (rightOperand as int);
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.BAR_BAR) {
 | 
| -        if (leftOperand2 is bool && rightOperand2 is bool) {
 | 
| -          return ((leftOperand2 as bool)) || ((rightOperand2 as bool));
 | 
| +        if (leftOperand is bool && rightOperand is bool) {
 | 
| +          return ((leftOperand as bool)) || ((rightOperand as bool));
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.CARET) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)) ^ (rightOperand2 as int);
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)) ^ (rightOperand as int);
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.EQ_EQ) {
 | 
| -        if (leftOperand2 is bool && rightOperand2 is bool) {
 | 
| -          return identical(((leftOperand2 as bool)), ((rightOperand2 as bool)));
 | 
| -        } else if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)) == rightOperand2;
 | 
| -        } else if (leftOperand2 is double && rightOperand2 is double) {
 | 
| -          return ((leftOperand2 as double)) == rightOperand2;
 | 
| -        } else if (leftOperand2 is String && rightOperand2 is String) {
 | 
| -          return ((leftOperand2 as String)) == rightOperand2;
 | 
| +        if (leftOperand is bool && rightOperand is bool) {
 | 
| +          return identical(((leftOperand as bool)), ((rightOperand as bool)));
 | 
| +        } else if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)) == rightOperand;
 | 
| +        } else if (leftOperand is double && rightOperand is double) {
 | 
| +          return ((leftOperand as double)) == rightOperand;
 | 
| +        } else if (leftOperand is String && rightOperand is String) {
 | 
| +          return ((leftOperand as String)) == rightOperand;
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.GT) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)).compareTo((rightOperand2 as int)) > 0;
 | 
| -        } else if (leftOperand2 is double && rightOperand2 is double) {
 | 
| -          return ((leftOperand2 as double)).compareTo((rightOperand2 as double)) > 0;
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)).compareTo((rightOperand as int)) > 0;
 | 
| +        } else if (leftOperand is double && rightOperand is double) {
 | 
| +          return ((leftOperand as double)).compareTo((rightOperand as double)) > 0;
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.GT_EQ) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)).compareTo((rightOperand2 as int)) >= 0;
 | 
| -        } else if (leftOperand2 is double && rightOperand2 is double) {
 | 
| -          return ((leftOperand2 as double)).compareTo((rightOperand2 as double)) >= 0;
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)).compareTo((rightOperand as int)) >= 0;
 | 
| +        } else if (leftOperand is double && rightOperand is double) {
 | 
| +          return ((leftOperand as double)).compareTo((rightOperand as double)) >= 0;
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.GT_GT) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)) >> ((rightOperand2 as int));
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)) >> ((rightOperand as int));
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.LT) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)).compareTo((rightOperand2 as int)) < 0;
 | 
| -        } else if (leftOperand2 is double && rightOperand2 is double) {
 | 
| -          return ((leftOperand2 as double)).compareTo((rightOperand2 as double)) < 0;
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)).compareTo((rightOperand as int)) < 0;
 | 
| +        } else if (leftOperand is double && rightOperand is double) {
 | 
| +          return ((leftOperand as double)).compareTo((rightOperand as double)) < 0;
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.LT_EQ) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)).compareTo((rightOperand2 as int)) <= 0;
 | 
| -        } else if (leftOperand2 is double && rightOperand2 is double) {
 | 
| -          return ((leftOperand2 as double)).compareTo((rightOperand2 as double)) <= 0;
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)).compareTo((rightOperand as int)) <= 0;
 | 
| +        } else if (leftOperand is double && rightOperand is double) {
 | 
| +          return ((leftOperand as double)).compareTo((rightOperand as double)) <= 0;
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.LT_LT) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)) << ((rightOperand2 as int));
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)) << ((rightOperand as int));
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.MINUS) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)) - (rightOperand2 as int);
 | 
| -        } else if (leftOperand2 is double && rightOperand2 is double) {
 | 
| -          return ((leftOperand2 as double)) - ((rightOperand2 as double));
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)) - (rightOperand as int);
 | 
| +        } else if (leftOperand is double && rightOperand is double) {
 | 
| +          return ((leftOperand as double)) - ((rightOperand as double));
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.PERCENT) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)).remainder((rightOperand2 as int));
 | 
| -        } else if (leftOperand2 is double && rightOperand2 is double) {
 | 
| -          return ((leftOperand2 as double)) % ((rightOperand2 as double));
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)).remainder((rightOperand as int));
 | 
| +        } else if (leftOperand is double && rightOperand is double) {
 | 
| +          return ((leftOperand as double)) % ((rightOperand as double));
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.PLUS) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)) + (rightOperand2 as int);
 | 
| -        } else if (leftOperand2 is double && rightOperand2 is double) {
 | 
| -          return ((leftOperand2 as double)) + ((rightOperand2 as double));
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)) + (rightOperand as int);
 | 
| +        } else if (leftOperand is double && rightOperand is double) {
 | 
| +          return ((leftOperand as double)) + ((rightOperand as double));
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.STAR) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          return ((leftOperand2 as int)) * (rightOperand2 as int);
 | 
| -        } else if (leftOperand2 is double && rightOperand2 is double) {
 | 
| -          return ((leftOperand2 as double)) * ((rightOperand2 as double));
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          return ((leftOperand as int)) * (rightOperand as int);
 | 
| +        } else if (leftOperand is double && rightOperand is double) {
 | 
| +          return ((leftOperand as double)) * ((rightOperand as double));
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.SLASH) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          if (rightOperand2 != 0) {
 | 
| -            return ((leftOperand2 as int)) ~/ (rightOperand2 as int);
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          if (rightOperand != 0) {
 | 
| +            return ((leftOperand as int)) ~/ (rightOperand as int);
 | 
|            } else {
 | 
| -            return ((leftOperand2 as int)).toDouble() / ((rightOperand2 as int)).toDouble();
 | 
| +            return ((leftOperand as int)).toDouble() / ((rightOperand as int)).toDouble();
 | 
|            }
 | 
| -        } else if (leftOperand2 is double && rightOperand2 is double) {
 | 
| -          return ((leftOperand2 as double)) / ((rightOperand2 as double));
 | 
| +        } else if (leftOperand is double && rightOperand is double) {
 | 
| +          return ((leftOperand as double)) / ((rightOperand as double));
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.TILDE_SLASH) {
 | 
| -        if (leftOperand2 is int && rightOperand2 is int) {
 | 
| -          if (rightOperand2 != 0) {
 | 
| -            return ((leftOperand2 as int)) ~/ (rightOperand2 as int);
 | 
| +        if (leftOperand is int && rightOperand is int) {
 | 
| +          if (rightOperand != 0) {
 | 
| +            return ((leftOperand as int)) ~/ (rightOperand as int);
 | 
|            } else {
 | 
|              return 0;
 | 
|            }
 | 
| -        } else if (leftOperand2 is double && rightOperand2 is double) {
 | 
| -          return ((leftOperand2 as double)) ~/ ((rightOperand2 as double));
 | 
| +        } else if (leftOperand is double && rightOperand is double) {
 | 
| +          return ((leftOperand as double)) ~/ ((rightOperand as double));
 | 
|          }
 | 
|        }
 | 
|        break;
 | 
| @@ -13383,12 +13383,12 @@ class ConstantEvaluator extends GeneralizingASTVisitor<Object> {
 | 
|    Object visitMapLiteral(MapLiteral node) {
 | 
|      Map<String, Object> map = new Map<String, Object>();
 | 
|      for (MapLiteralEntry entry in node.entries) {
 | 
| -      Object key2 = entry.key.accept(this);
 | 
| -      Object value2 = entry.value.accept(this);
 | 
| -      if (key2 is! String || identical(value2, NOT_A_CONSTANT)) {
 | 
| +      Object key = entry.key.accept(this);
 | 
| +      Object value = entry.value.accept(this);
 | 
| +      if (key is! String || identical(value, NOT_A_CONSTANT)) {
 | 
|          return NOT_A_CONSTANT;
 | 
|        }
 | 
| -      map[(key2 as String)] = value2;
 | 
| +      map[(key as String)] = value;
 | 
|      }
 | 
|      return map;
 | 
|    }
 | 
| @@ -13398,28 +13398,28 @@ class ConstantEvaluator extends GeneralizingASTVisitor<Object> {
 | 
|    Object visitParenthesizedExpression(ParenthesizedExpression node) => node.expression.accept(this);
 | 
|    Object visitPrefixedIdentifier(PrefixedIdentifier node) => getConstantValue(null);
 | 
|    Object visitPrefixExpression(PrefixExpression node) {
 | 
| -    Object operand2 = node.operand.accept(this);
 | 
| -    if (identical(operand2, NOT_A_CONSTANT)) {
 | 
| -      return operand2;
 | 
| +    Object operand = node.operand.accept(this);
 | 
| +    if (identical(operand, NOT_A_CONSTANT)) {
 | 
| +      return operand;
 | 
|      }
 | 
|      while (true) {
 | 
|        if (node.operator.type == TokenType.BANG) {
 | 
| -        if (identical(operand2, true)) {
 | 
| +        if (identical(operand, true)) {
 | 
|            return false;
 | 
| -        } else if (identical(operand2, false)) {
 | 
| +        } else if (identical(operand, false)) {
 | 
|            return true;
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.TILDE) {
 | 
| -        if (operand2 is int) {
 | 
| -          return ~((operand2 as int));
 | 
| +        if (operand is int) {
 | 
| +          return ~((operand as int));
 | 
|          }
 | 
|        } else if (node.operator.type == TokenType.MINUS) {
 | 
| -        if (operand2 == null) {
 | 
| +        if (operand == null) {
 | 
|            return null;
 | 
| -        } else if (operand2 is int) {
 | 
| -          return -((operand2 as int));
 | 
| -        } else if (operand2 is double) {
 | 
| -          return -((operand2 as double));
 | 
| +        } else if (operand is int) {
 | 
| +          return -((operand as int));
 | 
| +        } else if (operand is double) {
 | 
| +          return -((operand as double));
 | 
|          }
 | 
|        }
 | 
|        break;
 | 
| @@ -13482,27 +13482,27 @@ class ElementLocator_ElementMapper extends GeneralizingASTVisitor<Element> {
 | 
|    Element visitConstructorDeclaration(ConstructorDeclaration node) => node.element;
 | 
|    Element visitFunctionDeclaration(FunctionDeclaration node) => node.element;
 | 
|    Element visitIdentifier(Identifier node) {
 | 
| -    ASTNode parent2 = node.parent;
 | 
| -    if (parent2 is ConstructorDeclaration) {
 | 
| -      ConstructorDeclaration decl = parent2 as ConstructorDeclaration;
 | 
| -      Identifier returnType2 = decl.returnType;
 | 
| -      if (identical(returnType2, node)) {
 | 
| -        SimpleIdentifier name2 = decl.name;
 | 
| -        if (name2 != null) {
 | 
| -          return name2.element;
 | 
| +    ASTNode parent = node.parent;
 | 
| +    if (parent is ConstructorDeclaration) {
 | 
| +      ConstructorDeclaration decl = parent as ConstructorDeclaration;
 | 
| +      Identifier returnType = decl.returnType;
 | 
| +      if (identical(returnType, node)) {
 | 
| +        SimpleIdentifier name = decl.name;
 | 
| +        if (name != null) {
 | 
| +          return name.element;
 | 
|          }
 | 
| -        Element element2 = node.element;
 | 
| -        if (element2 is ClassElement) {
 | 
| -          return ((element2 as ClassElement)).unnamedConstructor;
 | 
| +        Element element = node.element;
 | 
| +        if (element is ClassElement) {
 | 
| +          return ((element as ClassElement)).unnamedConstructor;
 | 
|          }
 | 
|        }
 | 
|      }
 | 
| -    if (parent2 is LibraryIdentifier) {
 | 
| -      ASTNode grandParent = ((parent2 as LibraryIdentifier)).parent;
 | 
| +    if (parent is LibraryIdentifier) {
 | 
| +      ASTNode grandParent = ((parent as LibraryIdentifier)).parent;
 | 
|        if (grandParent is PartOfDirective) {
 | 
| -        Element element3 = ((grandParent as PartOfDirective)).element;
 | 
| -        if (element3 is LibraryElement) {
 | 
| -          return ((element3 as LibraryElement)).definingCompilationUnit;
 | 
| +        Element element = ((grandParent as PartOfDirective)).element;
 | 
| +        if (element is LibraryElement) {
 | 
| +          return ((element as LibraryElement)).definingCompilationUnit;
 | 
|          }
 | 
|        }
 | 
|      }
 | 
| @@ -13518,9 +13518,9 @@ class ElementLocator_ElementMapper extends GeneralizingASTVisitor<Element> {
 | 
|    Element visitPrefixedIdentifier(PrefixedIdentifier node) => node.element;
 | 
|    Element visitPrefixExpression(PrefixExpression node) => node.element;
 | 
|    Element visitStringLiteral(StringLiteral node) {
 | 
| -    ASTNode parent2 = node.parent;
 | 
| -    if (parent2 is UriBasedDirective) {
 | 
| -      return ((parent2 as UriBasedDirective)).uriElement;
 | 
| +    ASTNode parent = node.parent;
 | 
| +    if (parent is UriBasedDirective) {
 | 
| +      return ((parent as UriBasedDirective)).uriElement;
 | 
|      }
 | 
|      return null;
 | 
|    }
 | 
| @@ -14443,12 +14443,12 @@ class ToSourceVisitor implements ASTVisitor<Object> {
 | 
|    Object visitComment(Comment node) => null;
 | 
|    Object visitCommentReference(CommentReference node) => null;
 | 
|    Object visitCompilationUnit(CompilationUnit node) {
 | 
| -    ScriptTag scriptTag2 = node.scriptTag;
 | 
| -    NodeList<Directive> directives2 = node.directives;
 | 
| -    visit(scriptTag2);
 | 
| -    String prefix = scriptTag2 == null ? "" : " ";
 | 
| -    visitList4(prefix, directives2, " ");
 | 
| -    prefix = scriptTag2 == null && directives2.isEmpty ? "" : " ";
 | 
| +    ScriptTag scriptTag = node.scriptTag;
 | 
| +    NodeList<Directive> directives = node.directives;
 | 
| +    visit(scriptTag);
 | 
| +    String prefix = scriptTag == null ? "" : " ";
 | 
| +    visitList4(prefix, directives, " ");
 | 
| +    prefix = scriptTag == null && directives.isEmpty ? "" : " ";
 | 
|      visitList4(prefix, node.declarations, " ");
 | 
|      return null;
 | 
|    }
 | 
| @@ -14575,10 +14575,10 @@ class ToSourceVisitor implements ASTVisitor<Object> {
 | 
|    Object visitFormalParameterList(FormalParameterList node) {
 | 
|      String groupEnd = null;
 | 
|      _writer.print('(');
 | 
| -    NodeList<FormalParameter> parameters2 = node.parameters;
 | 
| -    int size2 = parameters2.length;
 | 
| -    for (int i = 0; i < size2; i++) {
 | 
| -      FormalParameter parameter = parameters2[i];
 | 
| +    NodeList<FormalParameter> parameters = node.parameters;
 | 
| +    int size = parameters.length;
 | 
| +    for (int i = 0; i < size; i++) {
 | 
| +      FormalParameter parameter = parameters[i];
 | 
|        if (i > 0) {
 | 
|          _writer.print(", ");
 | 
|        }
 | 
| @@ -14600,10 +14600,10 @@ class ToSourceVisitor implements ASTVisitor<Object> {
 | 
|      return null;
 | 
|    }
 | 
|    Object visitForStatement(ForStatement node) {
 | 
| -    Expression initialization2 = node.initialization;
 | 
| +    Expression initialization = node.initialization;
 | 
|      _writer.print("for (");
 | 
| -    if (initialization2 != null) {
 | 
| -      visit(initialization2);
 | 
| +    if (initialization != null) {
 | 
| +      visit(initialization);
 | 
|      } else {
 | 
|        visit(node.variables);
 | 
|      }
 | 
| @@ -14866,12 +14866,12 @@ class ToSourceVisitor implements ASTVisitor<Object> {
 | 
|      return null;
 | 
|    }
 | 
|    Object visitReturnStatement(ReturnStatement node) {
 | 
| -    Expression expression2 = node.expression;
 | 
| -    if (expression2 == null) {
 | 
| +    Expression expression = node.expression;
 | 
| +    if (expression == null) {
 | 
|        _writer.print("return;");
 | 
|      } else {
 | 
|        _writer.print("return ");
 | 
| -      expression2.accept(this);
 | 
| +      expression.accept(this);
 | 
|        _writer.print(";");
 | 
|      }
 | 
|      return null;
 | 
| @@ -15080,8 +15080,8 @@ class ToSourceVisitor implements ASTVisitor<Object> {
 | 
|     */
 | 
|    void visitList2(NodeList<ASTNode> nodes, String separator) {
 | 
|      if (nodes != null) {
 | 
| -      int size2 = nodes.length;
 | 
| -      for (int i = 0; i < size2; i++) {
 | 
| +      int size = nodes.length;
 | 
| +      for (int i = 0; i < size; i++) {
 | 
|          if (i > 0) {
 | 
|            _writer.print(separator);
 | 
|          }
 | 
| @@ -15098,9 +15098,9 @@ class ToSourceVisitor implements ASTVisitor<Object> {
 | 
|     */
 | 
|    void visitList3(NodeList<ASTNode> nodes, String separator, String suffix) {
 | 
|      if (nodes != null) {
 | 
| -      int size2 = nodes.length;
 | 
| -      if (size2 > 0) {
 | 
| -        for (int i = 0; i < size2; i++) {
 | 
| +      int size = nodes.length;
 | 
| +      if (size > 0) {
 | 
| +        for (int i = 0; i < size; i++) {
 | 
|            if (i > 0) {
 | 
|              _writer.print(separator);
 | 
|            }
 | 
| @@ -15119,10 +15119,10 @@ class ToSourceVisitor implements ASTVisitor<Object> {
 | 
|     */
 | 
|    void visitList4(String prefix, NodeList<ASTNode> nodes, String separator) {
 | 
|      if (nodes != null) {
 | 
| -      int size2 = nodes.length;
 | 
| -      if (size2 > 0) {
 | 
| +      int size = nodes.length;
 | 
| +      if (size > 0) {
 | 
|          _writer.print(prefix);
 | 
| -        for (int i = 0; i < size2; i++) {
 | 
| +        for (int i = 0; i < size; i++) {
 | 
|            if (i > 0) {
 | 
|              _writer.print(separator);
 | 
|            }
 | 
| @@ -15201,11 +15201,11 @@ class ASTCloner implements ASTVisitor<ASTNode> {
 | 
|    ImplementsClause visitImplementsClause(ImplementsClause node) => new ImplementsClause.full(node.keyword, clone3(node.interfaces));
 | 
|    ImportDirective visitImportDirective(ImportDirective node) => new ImportDirective.full(clone2(node.documentationComment), clone3(node.metadata), node.keyword, clone2(node.uri), node.asToken, clone2(node.prefix), clone3(node.combinators), node.semicolon);
 | 
|    IndexExpression visitIndexExpression(IndexExpression node) {
 | 
| -    Token period2 = node.period;
 | 
| -    if (period2 == null) {
 | 
| +    Token period = node.period;
 | 
| +    if (period == null) {
 | 
|        return new IndexExpression.forTarget_full(clone2(node.array), node.leftBracket, clone2(node.index), node.rightBracket);
 | 
|      } else {
 | 
| -      return new IndexExpression.forCascade_full(period2, node.leftBracket, clone2(node.index), node.rightBracket);
 | 
| +      return new IndexExpression.forCascade_full(period, node.leftBracket, clone2(node.index), node.rightBracket);
 | 
|      }
 | 
|    }
 | 
|    InstanceCreationExpression visitInstanceCreationExpression(InstanceCreationExpression node) => new InstanceCreationExpression.full(node.keyword, clone2(node.constructorName), clone2(node.argumentList));
 | 
| @@ -15352,9 +15352,9 @@ class ScopedNameFinder extends GeneralizingASTVisitor<Object> {
 | 
|    }
 | 
|    Object visitNode(ASTNode node) {
 | 
|      _immediateChild = node;
 | 
| -    ASTNode parent2 = node.parent;
 | 
| -    if (parent2 != null) {
 | 
| -      parent2.accept(this);
 | 
| +    ASTNode parent = node.parent;
 | 
| +    if (parent != null) {
 | 
| +      parent.accept(this);
 | 
|      }
 | 
|      return null;
 | 
|    }
 | 
| @@ -15377,9 +15377,9 @@ class ScopedNameFinder extends GeneralizingASTVisitor<Object> {
 | 
|    }
 | 
|    void addToScope(SimpleIdentifier identifier) {
 | 
|      if (identifier != null && isInRange(identifier)) {
 | 
| -      String name2 = identifier.name;
 | 
| -      if (!_locals.containsKey(name2)) {
 | 
| -        _locals[name2] = identifier;
 | 
| +      String name = identifier.name;
 | 
| +      if (!_locals.containsKey(name)) {
 | 
| +        _locals[name] = identifier;
 | 
|        }
 | 
|      }
 | 
|    }
 | 
| 
 |