| Index: pkg/analyzer/lib/src/generated/parser.dart
|
| diff --git a/pkg/analyzer/lib/src/generated/parser.dart b/pkg/analyzer/lib/src/generated/parser.dart
|
| index 9eff9337e8bf1ba8286f29d1d94dfd631fe8d825..8bfb362a793fa6166b4ff555302653afc3c69a80 100644
|
| --- a/pkg/analyzer/lib/src/generated/parser.dart
|
| +++ b/pkg/analyzer/lib/src/generated/parser.dart
|
| @@ -26,6 +26,8 @@ import 'package:analyzer/src/generated/source.dart';
|
| import 'package:analyzer/src/generated/utilities_collection.dart' show TokenMap;
|
| import 'package:analyzer/src/generated/utilities_dart.dart';
|
|
|
| +export 'package:analyzer/src/dart/ast/utilities.dart' show ResolutionCopier;
|
| +
|
| Map<String, MethodTrampoline> methodTable_Parser = <String, MethodTrampoline>{
|
| 'parseCompilationUnit_1': new MethodTrampoline(
|
| 1, (Parser target, arg0) => target.parseCompilationUnit(arg0)),
|
| @@ -9939,1423 +9941,3 @@ class ParserErrorCode extends ErrorCode {
|
| @override
|
| ErrorType get type => ErrorType.SYNTACTIC_ERROR;
|
| }
|
| -
|
| -/**
|
| - * An object that copies resolution information from one AST structure to
|
| - * another as long as the structures of the corresponding children of a pair of
|
| - * nodes are the same.
|
| - */
|
| -class ResolutionCopier implements AstVisitor<bool> {
|
| - /**
|
| - * The AST node with which the node being visited is to be compared. This is
|
| - * only valid at the beginning of each visit method (until [isEqualNodes] is
|
| - * invoked).
|
| - */
|
| - AstNode _toNode;
|
| -
|
| - @override
|
| - bool visitAdjacentStrings(AdjacentStrings node) {
|
| - AdjacentStrings toNode = this._toNode as AdjacentStrings;
|
| - if (_isEqualNodeLists(node.strings, toNode.strings)) {
|
| - toNode.staticType = node.staticType;
|
| - toNode.propagatedType = node.propagatedType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitAnnotation(Annotation node) {
|
| - Annotation toNode = this._toNode as Annotation;
|
| - if (_and(
|
| - _isEqualTokens(node.atSign, toNode.atSign),
|
| - _isEqualNodes(node.name, toNode.name),
|
| - _isEqualTokens(node.period, toNode.period),
|
| - _isEqualNodes(node.constructorName, toNode.constructorName),
|
| - _isEqualNodes(node.arguments, toNode.arguments))) {
|
| - toNode.element = node.element;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitArgumentList(ArgumentList node) {
|
| - ArgumentList toNode = this._toNode as ArgumentList;
|
| - return _and(
|
| - _isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
|
| - _isEqualNodeLists(node.arguments, toNode.arguments),
|
| - _isEqualTokens(node.rightParenthesis, toNode.rightParenthesis));
|
| - }
|
| -
|
| - @override
|
| - bool visitAsExpression(AsExpression node) {
|
| - AsExpression toNode = this._toNode as AsExpression;
|
| - if (_and(
|
| - _isEqualNodes(node.expression, toNode.expression),
|
| - _isEqualTokens(node.asOperator, toNode.asOperator),
|
| - _isEqualNodes(node.type, toNode.type))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitAssertStatement(AssertStatement node) {
|
| - AssertStatement toNode = this._toNode as AssertStatement;
|
| - return _and(
|
| - _isEqualTokens(node.assertKeyword, toNode.assertKeyword),
|
| - _isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
|
| - _isEqualNodes(node.condition, toNode.condition),
|
| - _isEqualTokens(node.comma, toNode.comma),
|
| - _isEqualNodes(node.message, toNode.message),
|
| - _isEqualTokens(node.rightParenthesis, toNode.rightParenthesis),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon));
|
| - }
|
| -
|
| - @override
|
| - bool visitAssignmentExpression(AssignmentExpression node) {
|
| - AssignmentExpression toNode = this._toNode as AssignmentExpression;
|
| - if (_and(
|
| - _isEqualNodes(node.leftHandSide, toNode.leftHandSide),
|
| - _isEqualTokens(node.operator, toNode.operator),
|
| - _isEqualNodes(node.rightHandSide, toNode.rightHandSide))) {
|
| - toNode.propagatedElement = node.propagatedElement;
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticElement = node.staticElement;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitAwaitExpression(AwaitExpression node) {
|
| - AwaitExpression toNode = this._toNode as AwaitExpression;
|
| - if (_and(_isEqualTokens(node.awaitKeyword, toNode.awaitKeyword),
|
| - _isEqualNodes(node.expression, toNode.expression))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitBinaryExpression(BinaryExpression node) {
|
| - BinaryExpression toNode = this._toNode as BinaryExpression;
|
| - if (_and(
|
| - _isEqualNodes(node.leftOperand, toNode.leftOperand),
|
| - _isEqualTokens(node.operator, toNode.operator),
|
| - _isEqualNodes(node.rightOperand, toNode.rightOperand))) {
|
| - toNode.propagatedElement = node.propagatedElement;
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticElement = node.staticElement;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitBlock(Block node) {
|
| - Block toNode = this._toNode as Block;
|
| - return _and(
|
| - _isEqualTokens(node.leftBracket, toNode.leftBracket),
|
| - _isEqualNodeLists(node.statements, toNode.statements),
|
| - _isEqualTokens(node.rightBracket, toNode.rightBracket));
|
| - }
|
| -
|
| - @override
|
| - bool visitBlockFunctionBody(BlockFunctionBody node) {
|
| - BlockFunctionBody toNode = this._toNode as BlockFunctionBody;
|
| - return _isEqualNodes(node.block, toNode.block);
|
| - }
|
| -
|
| - @override
|
| - bool visitBooleanLiteral(BooleanLiteral node) {
|
| - BooleanLiteral toNode = this._toNode as BooleanLiteral;
|
| - if (_and(_isEqualTokens(node.literal, toNode.literal),
|
| - node.value == toNode.value)) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitBreakStatement(BreakStatement node) {
|
| - BreakStatement toNode = this._toNode as BreakStatement;
|
| - if (_and(
|
| - _isEqualTokens(node.breakKeyword, toNode.breakKeyword),
|
| - _isEqualNodes(node.label, toNode.label),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon))) {
|
| - // TODO(paulberry): map node.target to toNode.target.
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitCascadeExpression(CascadeExpression node) {
|
| - CascadeExpression toNode = this._toNode as CascadeExpression;
|
| - if (_and(_isEqualNodes(node.target, toNode.target),
|
| - _isEqualNodeLists(node.cascadeSections, toNode.cascadeSections))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitCatchClause(CatchClause node) {
|
| - CatchClause toNode = this._toNode as CatchClause;
|
| - return _and(
|
| - _isEqualTokens(node.onKeyword, toNode.onKeyword),
|
| - _isEqualNodes(node.exceptionType, toNode.exceptionType),
|
| - _isEqualTokens(node.catchKeyword, toNode.catchKeyword),
|
| - _isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
|
| - _isEqualNodes(node.exceptionParameter, toNode.exceptionParameter),
|
| - _isEqualTokens(node.comma, toNode.comma),
|
| - _isEqualNodes(node.stackTraceParameter, toNode.stackTraceParameter),
|
| - _isEqualTokens(node.rightParenthesis, toNode.rightParenthesis),
|
| - _isEqualNodes(node.body, toNode.body));
|
| - }
|
| -
|
| - @override
|
| - bool visitClassDeclaration(ClassDeclaration node) {
|
| - ClassDeclaration toNode = this._toNode as ClassDeclaration;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.abstractKeyword, toNode.abstractKeyword),
|
| - _isEqualTokens(node.classKeyword, toNode.classKeyword),
|
| - _isEqualNodes(node.name, toNode.name),
|
| - _isEqualNodes(node.typeParameters, toNode.typeParameters),
|
| - _isEqualNodes(node.extendsClause, toNode.extendsClause),
|
| - _isEqualNodes(node.withClause, toNode.withClause),
|
| - _isEqualNodes(node.implementsClause, toNode.implementsClause),
|
| - _isEqualTokens(node.leftBracket, toNode.leftBracket),
|
| - _isEqualNodeLists(node.members, toNode.members),
|
| - _isEqualTokens(node.rightBracket, toNode.rightBracket));
|
| - }
|
| -
|
| - @override
|
| - bool visitClassTypeAlias(ClassTypeAlias node) {
|
| - ClassTypeAlias toNode = this._toNode as ClassTypeAlias;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.typedefKeyword, toNode.typedefKeyword),
|
| - _isEqualNodes(node.name, toNode.name),
|
| - _isEqualNodes(node.typeParameters, toNode.typeParameters),
|
| - _isEqualTokens(node.equals, toNode.equals),
|
| - _isEqualTokens(node.abstractKeyword, toNode.abstractKeyword),
|
| - _isEqualNodes(node.superclass, toNode.superclass),
|
| - _isEqualNodes(node.withClause, toNode.withClause),
|
| - _isEqualNodes(node.implementsClause, toNode.implementsClause),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon));
|
| - }
|
| -
|
| - @override
|
| - bool visitComment(Comment node) {
|
| - Comment toNode = this._toNode as Comment;
|
| - return _isEqualNodeLists(node.references, toNode.references);
|
| - }
|
| -
|
| - @override
|
| - bool visitCommentReference(CommentReference node) {
|
| - CommentReference toNode = this._toNode as CommentReference;
|
| - return _and(_isEqualTokens(node.newKeyword, toNode.newKeyword),
|
| - _isEqualNodes(node.identifier, toNode.identifier));
|
| - }
|
| -
|
| - @override
|
| - bool visitCompilationUnit(CompilationUnit node) {
|
| - CompilationUnit toNode = this._toNode as CompilationUnit;
|
| - if (_and(
|
| - _isEqualTokens(node.beginToken, toNode.beginToken),
|
| - _isEqualNodes(node.scriptTag, toNode.scriptTag),
|
| - _isEqualNodeLists(node.directives, toNode.directives),
|
| - _isEqualNodeLists(node.declarations, toNode.declarations),
|
| - _isEqualTokens(node.endToken, toNode.endToken))) {
|
| - toNode.element = node.element;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitConditionalExpression(ConditionalExpression node) {
|
| - ConditionalExpression toNode = this._toNode as ConditionalExpression;
|
| - if (_and(
|
| - _isEqualNodes(node.condition, toNode.condition),
|
| - _isEqualTokens(node.question, toNode.question),
|
| - _isEqualNodes(node.thenExpression, toNode.thenExpression),
|
| - _isEqualTokens(node.colon, toNode.colon),
|
| - _isEqualNodes(node.elseExpression, toNode.elseExpression))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitConfiguration(Configuration node) {
|
| - Configuration toNode = this._toNode as Configuration;
|
| - if (_and(
|
| - _isEqualTokens(node.ifKeyword, toNode.ifKeyword),
|
| - _isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
|
| - _isEqualNodes(node.name, toNode.name),
|
| - _isEqualTokens(node.equalToken, toNode.equalToken),
|
| - _isEqualNodes(node.value, toNode.value),
|
| - _isEqualTokens(node.rightParenthesis, toNode.rightParenthesis),
|
| - _isEqualNodes(node.libraryUri, toNode.libraryUri))) {
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitConstructorDeclaration(ConstructorDeclaration node) {
|
| - ConstructorDeclaration toNode = this._toNode as ConstructorDeclaration;
|
| - if (_and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.externalKeyword, toNode.externalKeyword),
|
| - _isEqualTokens(node.constKeyword, toNode.constKeyword),
|
| - _isEqualTokens(node.factoryKeyword, toNode.factoryKeyword),
|
| - _isEqualNodes(node.returnType, toNode.returnType),
|
| - _isEqualTokens(node.period, toNode.period),
|
| - _isEqualNodes(node.name, toNode.name),
|
| - _isEqualNodes(node.parameters, toNode.parameters),
|
| - _isEqualTokens(node.separator, toNode.separator),
|
| - _isEqualNodeLists(node.initializers, toNode.initializers),
|
| - _isEqualNodes(node.redirectedConstructor, toNode.redirectedConstructor),
|
| - _isEqualNodes(node.body, toNode.body))) {
|
| - toNode.element = node.element;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitConstructorFieldInitializer(ConstructorFieldInitializer node) {
|
| - ConstructorFieldInitializer toNode =
|
| - this._toNode as ConstructorFieldInitializer;
|
| - return _and(
|
| - _isEqualTokens(node.thisKeyword, toNode.thisKeyword),
|
| - _isEqualTokens(node.period, toNode.period),
|
| - _isEqualNodes(node.fieldName, toNode.fieldName),
|
| - _isEqualTokens(node.equals, toNode.equals),
|
| - _isEqualNodes(node.expression, toNode.expression));
|
| - }
|
| -
|
| - @override
|
| - bool visitConstructorName(ConstructorName node) {
|
| - ConstructorName toNode = this._toNode as ConstructorName;
|
| - if (_and(
|
| - _isEqualNodes(node.type, toNode.type),
|
| - _isEqualTokens(node.period, toNode.period),
|
| - _isEqualNodes(node.name, toNode.name))) {
|
| - toNode.staticElement = node.staticElement;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitContinueStatement(ContinueStatement node) {
|
| - ContinueStatement toNode = this._toNode as ContinueStatement;
|
| - if (_and(
|
| - _isEqualTokens(node.continueKeyword, toNode.continueKeyword),
|
| - _isEqualNodes(node.label, toNode.label),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon))) {
|
| - // TODO(paulberry): map node.target to toNode.target.
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitDeclaredIdentifier(DeclaredIdentifier node) {
|
| - DeclaredIdentifier toNode = this._toNode as DeclaredIdentifier;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.keyword, toNode.keyword),
|
| - _isEqualNodes(node.type, toNode.type),
|
| - _isEqualNodes(node.identifier, toNode.identifier));
|
| - }
|
| -
|
| - @override
|
| - bool visitDefaultFormalParameter(DefaultFormalParameter node) {
|
| - DefaultFormalParameter toNode = this._toNode as DefaultFormalParameter;
|
| - return _and(
|
| - _isEqualNodes(node.parameter, toNode.parameter),
|
| - node.kind == toNode.kind,
|
| - _isEqualTokens(node.separator, toNode.separator),
|
| - _isEqualNodes(node.defaultValue, toNode.defaultValue));
|
| - }
|
| -
|
| - @override
|
| - bool visitDoStatement(DoStatement node) {
|
| - DoStatement toNode = this._toNode as DoStatement;
|
| - return _and(
|
| - _isEqualTokens(node.doKeyword, toNode.doKeyword),
|
| - _isEqualNodes(node.body, toNode.body),
|
| - _isEqualTokens(node.whileKeyword, toNode.whileKeyword),
|
| - _isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
|
| - _isEqualNodes(node.condition, toNode.condition),
|
| - _isEqualTokens(node.rightParenthesis, toNode.rightParenthesis),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon));
|
| - }
|
| -
|
| - @override
|
| - bool visitDottedName(DottedName node) {
|
| - DottedName toNode = this._toNode as DottedName;
|
| - return _isEqualNodeLists(node.components, toNode.components);
|
| - }
|
| -
|
| - @override
|
| - bool visitDoubleLiteral(DoubleLiteral node) {
|
| - DoubleLiteral toNode = this._toNode as DoubleLiteral;
|
| - if (_and(_isEqualTokens(node.literal, toNode.literal),
|
| - node.value == toNode.value)) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitEmptyFunctionBody(EmptyFunctionBody node) {
|
| - EmptyFunctionBody toNode = this._toNode as EmptyFunctionBody;
|
| - return _isEqualTokens(node.semicolon, toNode.semicolon);
|
| - }
|
| -
|
| - @override
|
| - bool visitEmptyStatement(EmptyStatement node) {
|
| - EmptyStatement toNode = this._toNode as EmptyStatement;
|
| - return _isEqualTokens(node.semicolon, toNode.semicolon);
|
| - }
|
| -
|
| - @override
|
| - bool visitEnumConstantDeclaration(EnumConstantDeclaration node) {
|
| - EnumConstantDeclaration toNode = this._toNode as EnumConstantDeclaration;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualNodes(node.name, toNode.name));
|
| - }
|
| -
|
| - @override
|
| - bool visitEnumDeclaration(EnumDeclaration node) {
|
| - EnumDeclaration toNode = this._toNode as EnumDeclaration;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.enumKeyword, toNode.enumKeyword),
|
| - _isEqualNodes(node.name, toNode.name),
|
| - _isEqualTokens(node.leftBracket, toNode.leftBracket),
|
| - _isEqualNodeLists(node.constants, toNode.constants),
|
| - _isEqualTokens(node.rightBracket, toNode.rightBracket));
|
| - }
|
| -
|
| - @override
|
| - bool visitExportDirective(ExportDirective node) {
|
| - ExportDirective toNode = this._toNode as ExportDirective;
|
| - if (_and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.keyword, toNode.keyword),
|
| - _isEqualNodes(node.uri, toNode.uri),
|
| - _isEqualNodeLists(node.combinators, toNode.combinators),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon))) {
|
| - toNode.element = node.element;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitExpressionFunctionBody(ExpressionFunctionBody node) {
|
| - ExpressionFunctionBody toNode = this._toNode as ExpressionFunctionBody;
|
| - return _and(
|
| - _isEqualTokens(node.functionDefinition, toNode.functionDefinition),
|
| - _isEqualNodes(node.expression, toNode.expression),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon));
|
| - }
|
| -
|
| - @override
|
| - bool visitExpressionStatement(ExpressionStatement node) {
|
| - ExpressionStatement toNode = this._toNode as ExpressionStatement;
|
| - return _and(_isEqualNodes(node.expression, toNode.expression),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon));
|
| - }
|
| -
|
| - @override
|
| - bool visitExtendsClause(ExtendsClause node) {
|
| - ExtendsClause toNode = this._toNode as ExtendsClause;
|
| - return _and(_isEqualTokens(node.extendsKeyword, toNode.extendsKeyword),
|
| - _isEqualNodes(node.superclass, toNode.superclass));
|
| - }
|
| -
|
| - @override
|
| - bool visitFieldDeclaration(FieldDeclaration node) {
|
| - FieldDeclaration toNode = this._toNode as FieldDeclaration;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.staticKeyword, toNode.staticKeyword),
|
| - _isEqualNodes(node.fields, toNode.fields),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon));
|
| - }
|
| -
|
| - @override
|
| - bool visitFieldFormalParameter(FieldFormalParameter node) {
|
| - FieldFormalParameter toNode = this._toNode as FieldFormalParameter;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.keyword, toNode.keyword),
|
| - _isEqualNodes(node.type, toNode.type),
|
| - _isEqualTokens(node.thisKeyword, toNode.thisKeyword),
|
| - _isEqualTokens(node.period, toNode.period),
|
| - _isEqualNodes(node.identifier, toNode.identifier));
|
| - }
|
| -
|
| - @override
|
| - bool visitForEachStatement(ForEachStatement node) {
|
| - ForEachStatement toNode = this._toNode as ForEachStatement;
|
| - return _and(
|
| - _isEqualTokens(node.forKeyword, toNode.forKeyword),
|
| - _isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
|
| - _isEqualNodes(node.loopVariable, toNode.loopVariable),
|
| - _isEqualTokens(node.inKeyword, toNode.inKeyword),
|
| - _isEqualNodes(node.iterable, toNode.iterable),
|
| - _isEqualTokens(node.rightParenthesis, toNode.rightParenthesis),
|
| - _isEqualNodes(node.body, toNode.body));
|
| - }
|
| -
|
| - @override
|
| - bool visitFormalParameterList(FormalParameterList node) {
|
| - FormalParameterList toNode = this._toNode as FormalParameterList;
|
| - return _and(
|
| - _isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
|
| - _isEqualNodeLists(node.parameters, toNode.parameters),
|
| - _isEqualTokens(node.leftDelimiter, toNode.leftDelimiter),
|
| - _isEqualTokens(node.rightDelimiter, toNode.rightDelimiter),
|
| - _isEqualTokens(node.rightParenthesis, toNode.rightParenthesis));
|
| - }
|
| -
|
| - @override
|
| - bool visitForStatement(ForStatement node) {
|
| - ForStatement toNode = this._toNode as ForStatement;
|
| - return _and(
|
| - _isEqualTokens(node.forKeyword, toNode.forKeyword),
|
| - _isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
|
| - _isEqualNodes(node.variables, toNode.variables),
|
| - _isEqualNodes(node.initialization, toNode.initialization),
|
| - _isEqualTokens(node.leftSeparator, toNode.leftSeparator),
|
| - _isEqualNodes(node.condition, toNode.condition),
|
| - _isEqualTokens(node.rightSeparator, toNode.rightSeparator),
|
| - _isEqualNodeLists(node.updaters, toNode.updaters),
|
| - _isEqualTokens(node.rightParenthesis, toNode.rightParenthesis),
|
| - _isEqualNodes(node.body, toNode.body));
|
| - }
|
| -
|
| - @override
|
| - bool visitFunctionDeclaration(FunctionDeclaration node) {
|
| - FunctionDeclaration toNode = this._toNode as FunctionDeclaration;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.externalKeyword, toNode.externalKeyword),
|
| - _isEqualNodes(node.returnType, toNode.returnType),
|
| - _isEqualTokens(node.propertyKeyword, toNode.propertyKeyword),
|
| - _isEqualNodes(node.name, toNode.name),
|
| - _isEqualNodes(node.functionExpression, toNode.functionExpression));
|
| - }
|
| -
|
| - @override
|
| - bool visitFunctionDeclarationStatement(FunctionDeclarationStatement node) {
|
| - FunctionDeclarationStatement toNode =
|
| - this._toNode as FunctionDeclarationStatement;
|
| - return _isEqualNodes(node.functionDeclaration, toNode.functionDeclaration);
|
| - }
|
| -
|
| - @override
|
| - bool visitFunctionExpression(FunctionExpression node) {
|
| - FunctionExpression toNode = this._toNode as FunctionExpression;
|
| - if (_and(_isEqualNodes(node.parameters, toNode.parameters),
|
| - _isEqualNodes(node.body, toNode.body))) {
|
| - toNode.element = node.element;
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
|
| - FunctionExpressionInvocation toNode =
|
| - this._toNode as FunctionExpressionInvocation;
|
| - if (_and(_isEqualNodes(node.function, toNode.function),
|
| - _isEqualNodes(node.argumentList, toNode.argumentList))) {
|
| - toNode.propagatedElement = node.propagatedElement;
|
| - toNode.propagatedInvokeType = node.propagatedInvokeType;
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticInvokeType = node.staticInvokeType;
|
| - toNode.staticElement = node.staticElement;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitFunctionTypeAlias(FunctionTypeAlias node) {
|
| - FunctionTypeAlias toNode = this._toNode as FunctionTypeAlias;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.typedefKeyword, toNode.typedefKeyword),
|
| - _isEqualNodes(node.returnType, toNode.returnType),
|
| - _isEqualNodes(node.name, toNode.name),
|
| - _isEqualNodes(node.typeParameters, toNode.typeParameters),
|
| - _isEqualNodes(node.parameters, toNode.parameters),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon));
|
| - }
|
| -
|
| - @override
|
| - bool visitFunctionTypedFormalParameter(FunctionTypedFormalParameter node) {
|
| - FunctionTypedFormalParameter toNode =
|
| - this._toNode as FunctionTypedFormalParameter;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualNodes(node.returnType, toNode.returnType),
|
| - _isEqualNodes(node.identifier, toNode.identifier),
|
| - _isEqualNodes(node.parameters, toNode.parameters));
|
| - }
|
| -
|
| - @override
|
| - bool visitHideCombinator(HideCombinator node) {
|
| - HideCombinator toNode = this._toNode as HideCombinator;
|
| - return _and(_isEqualTokens(node.keyword, toNode.keyword),
|
| - _isEqualNodeLists(node.hiddenNames, toNode.hiddenNames));
|
| - }
|
| -
|
| - @override
|
| - bool visitIfStatement(IfStatement node) {
|
| - IfStatement toNode = this._toNode as IfStatement;
|
| - return _and(
|
| - _isEqualTokens(node.ifKeyword, toNode.ifKeyword),
|
| - _isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
|
| - _isEqualNodes(node.condition, toNode.condition),
|
| - _isEqualTokens(node.rightParenthesis, toNode.rightParenthesis),
|
| - _isEqualNodes(node.thenStatement, toNode.thenStatement),
|
| - _isEqualTokens(node.elseKeyword, toNode.elseKeyword),
|
| - _isEqualNodes(node.elseStatement, toNode.elseStatement));
|
| - }
|
| -
|
| - @override
|
| - bool visitImplementsClause(ImplementsClause node) {
|
| - ImplementsClause toNode = this._toNode as ImplementsClause;
|
| - return _and(
|
| - _isEqualTokens(node.implementsKeyword, toNode.implementsKeyword),
|
| - _isEqualNodeLists(node.interfaces, toNode.interfaces));
|
| - }
|
| -
|
| - @override
|
| - bool visitImportDirective(ImportDirective node) {
|
| - ImportDirective toNode = this._toNode as ImportDirective;
|
| - if (_and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.keyword, toNode.keyword),
|
| - _isEqualNodes(node.uri, toNode.uri),
|
| - _isEqualTokens(node.asKeyword, toNode.asKeyword),
|
| - _isEqualNodes(node.prefix, toNode.prefix),
|
| - _isEqualNodeLists(node.combinators, toNode.combinators),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon))) {
|
| - toNode.element = node.element;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitIndexExpression(IndexExpression node) {
|
| - IndexExpression toNode = this._toNode as IndexExpression;
|
| - if (_and(
|
| - _isEqualNodes(node.target, toNode.target),
|
| - _isEqualTokens(node.leftBracket, toNode.leftBracket),
|
| - _isEqualNodes(node.index, toNode.index),
|
| - _isEqualTokens(node.rightBracket, toNode.rightBracket))) {
|
| - toNode.auxiliaryElements = node.auxiliaryElements;
|
| - toNode.propagatedElement = node.propagatedElement;
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticElement = node.staticElement;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitInstanceCreationExpression(InstanceCreationExpression node) {
|
| - InstanceCreationExpression toNode =
|
| - this._toNode as InstanceCreationExpression;
|
| - if (_and(
|
| - _isEqualTokens(node.keyword, toNode.keyword),
|
| - _isEqualNodes(node.constructorName, toNode.constructorName),
|
| - _isEqualNodes(node.argumentList, toNode.argumentList))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticElement = node.staticElement;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitIntegerLiteral(IntegerLiteral node) {
|
| - IntegerLiteral toNode = this._toNode as IntegerLiteral;
|
| - if (_and(_isEqualTokens(node.literal, toNode.literal),
|
| - node.value == toNode.value)) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitInterpolationExpression(InterpolationExpression node) {
|
| - InterpolationExpression toNode = this._toNode as InterpolationExpression;
|
| - return _and(
|
| - _isEqualTokens(node.leftBracket, toNode.leftBracket),
|
| - _isEqualNodes(node.expression, toNode.expression),
|
| - _isEqualTokens(node.rightBracket, toNode.rightBracket));
|
| - }
|
| -
|
| - @override
|
| - bool visitInterpolationString(InterpolationString node) {
|
| - InterpolationString toNode = this._toNode as InterpolationString;
|
| - return _and(_isEqualTokens(node.contents, toNode.contents),
|
| - node.value == toNode.value);
|
| - }
|
| -
|
| - @override
|
| - bool visitIsExpression(IsExpression node) {
|
| - IsExpression toNode = this._toNode as IsExpression;
|
| - if (_and(
|
| - _isEqualNodes(node.expression, toNode.expression),
|
| - _isEqualTokens(node.isOperator, toNode.isOperator),
|
| - _isEqualTokens(node.notOperator, toNode.notOperator),
|
| - _isEqualNodes(node.type, toNode.type))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitLabel(Label node) {
|
| - Label toNode = this._toNode as Label;
|
| - return _and(_isEqualNodes(node.label, toNode.label),
|
| - _isEqualTokens(node.colon, toNode.colon));
|
| - }
|
| -
|
| - @override
|
| - bool visitLabeledStatement(LabeledStatement node) {
|
| - LabeledStatement toNode = this._toNode as LabeledStatement;
|
| - return _and(_isEqualNodeLists(node.labels, toNode.labels),
|
| - _isEqualNodes(node.statement, toNode.statement));
|
| - }
|
| -
|
| - @override
|
| - bool visitLibraryDirective(LibraryDirective node) {
|
| - LibraryDirective toNode = this._toNode as LibraryDirective;
|
| - if (_and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.libraryKeyword, toNode.libraryKeyword),
|
| - _isEqualNodes(node.name, toNode.name),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon))) {
|
| - toNode.element = node.element;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitLibraryIdentifier(LibraryIdentifier node) {
|
| - LibraryIdentifier toNode = this._toNode as LibraryIdentifier;
|
| - if (_isEqualNodeLists(node.components, toNode.components)) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitListLiteral(ListLiteral node) {
|
| - ListLiteral toNode = this._toNode as ListLiteral;
|
| - if (_and(
|
| - _isEqualTokens(node.constKeyword, toNode.constKeyword),
|
| - _isEqualNodes(node.typeArguments, toNode.typeArguments),
|
| - _isEqualTokens(node.leftBracket, toNode.leftBracket),
|
| - _isEqualNodeLists(node.elements, toNode.elements),
|
| - _isEqualTokens(node.rightBracket, toNode.rightBracket))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitMapLiteral(MapLiteral node) {
|
| - MapLiteral toNode = this._toNode as MapLiteral;
|
| - if (_and(
|
| - _isEqualTokens(node.constKeyword, toNode.constKeyword),
|
| - _isEqualNodes(node.typeArguments, toNode.typeArguments),
|
| - _isEqualTokens(node.leftBracket, toNode.leftBracket),
|
| - _isEqualNodeLists(node.entries, toNode.entries),
|
| - _isEqualTokens(node.rightBracket, toNode.rightBracket))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitMapLiteralEntry(MapLiteralEntry node) {
|
| - MapLiteralEntry toNode = this._toNode as MapLiteralEntry;
|
| - return _and(
|
| - _isEqualNodes(node.key, toNode.key),
|
| - _isEqualTokens(node.separator, toNode.separator),
|
| - _isEqualNodes(node.value, toNode.value));
|
| - }
|
| -
|
| - @override
|
| - bool visitMethodDeclaration(MethodDeclaration node) {
|
| - MethodDeclaration toNode = this._toNode as MethodDeclaration;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.externalKeyword, toNode.externalKeyword),
|
| - _isEqualTokens(node.modifierKeyword, toNode.modifierKeyword),
|
| - _isEqualNodes(node.returnType, toNode.returnType),
|
| - _isEqualTokens(node.propertyKeyword, toNode.propertyKeyword),
|
| - _isEqualTokens(node.propertyKeyword, toNode.propertyKeyword),
|
| - _isEqualNodes(node.name, toNode.name),
|
| - _isEqualNodes(node.parameters, toNode.parameters),
|
| - _isEqualNodes(node.body, toNode.body));
|
| - }
|
| -
|
| - @override
|
| - bool visitMethodInvocation(MethodInvocation node) {
|
| - MethodInvocation toNode = this._toNode as MethodInvocation;
|
| - if (_and(
|
| - _isEqualNodes(node.target, toNode.target),
|
| - _isEqualTokens(node.operator, toNode.operator),
|
| - _isEqualNodes(node.methodName, toNode.methodName),
|
| - _isEqualNodes(node.argumentList, toNode.argumentList))) {
|
| - toNode.propagatedInvokeType = node.propagatedInvokeType;
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticInvokeType = node.staticInvokeType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitNamedExpression(NamedExpression node) {
|
| - NamedExpression toNode = this._toNode as NamedExpression;
|
| - if (_and(_isEqualNodes(node.name, toNode.name),
|
| - _isEqualNodes(node.expression, toNode.expression))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitNativeClause(NativeClause node) {
|
| - NativeClause toNode = this._toNode as NativeClause;
|
| - return _and(_isEqualTokens(node.nativeKeyword, toNode.nativeKeyword),
|
| - _isEqualNodes(node.name, toNode.name));
|
| - }
|
| -
|
| - @override
|
| - bool visitNativeFunctionBody(NativeFunctionBody node) {
|
| - NativeFunctionBody toNode = this._toNode as NativeFunctionBody;
|
| - return _and(
|
| - _isEqualTokens(node.nativeKeyword, toNode.nativeKeyword),
|
| - _isEqualNodes(node.stringLiteral, toNode.stringLiteral),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon));
|
| - }
|
| -
|
| - @override
|
| - bool visitNullLiteral(NullLiteral node) {
|
| - NullLiteral toNode = this._toNode as NullLiteral;
|
| - if (_isEqualTokens(node.literal, toNode.literal)) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitParenthesizedExpression(ParenthesizedExpression node) {
|
| - ParenthesizedExpression toNode = this._toNode as ParenthesizedExpression;
|
| - if (_and(
|
| - _isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
|
| - _isEqualNodes(node.expression, toNode.expression),
|
| - _isEqualTokens(node.rightParenthesis, toNode.rightParenthesis))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitPartDirective(PartDirective node) {
|
| - PartDirective toNode = this._toNode as PartDirective;
|
| - if (_and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.partKeyword, toNode.partKeyword),
|
| - _isEqualNodes(node.uri, toNode.uri),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon))) {
|
| - toNode.element = node.element;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitPartOfDirective(PartOfDirective node) {
|
| - PartOfDirective toNode = this._toNode as PartOfDirective;
|
| - if (_and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.partKeyword, toNode.partKeyword),
|
| - _isEqualTokens(node.ofKeyword, toNode.ofKeyword),
|
| - _isEqualNodes(node.libraryName, toNode.libraryName),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon))) {
|
| - toNode.element = node.element;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitPostfixExpression(PostfixExpression node) {
|
| - PostfixExpression toNode = this._toNode as PostfixExpression;
|
| - if (_and(_isEqualNodes(node.operand, toNode.operand),
|
| - _isEqualTokens(node.operator, toNode.operator))) {
|
| - toNode.propagatedElement = node.propagatedElement;
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticElement = node.staticElement;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitPrefixedIdentifier(PrefixedIdentifier node) {
|
| - PrefixedIdentifier toNode = this._toNode as PrefixedIdentifier;
|
| - if (_and(
|
| - _isEqualNodes(node.prefix, toNode.prefix),
|
| - _isEqualTokens(node.period, toNode.period),
|
| - _isEqualNodes(node.identifier, toNode.identifier))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitPrefixExpression(PrefixExpression node) {
|
| - PrefixExpression toNode = this._toNode as PrefixExpression;
|
| - if (_and(_isEqualTokens(node.operator, toNode.operator),
|
| - _isEqualNodes(node.operand, toNode.operand))) {
|
| - toNode.propagatedElement = node.propagatedElement;
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticElement = node.staticElement;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitPropertyAccess(PropertyAccess node) {
|
| - PropertyAccess toNode = this._toNode as PropertyAccess;
|
| - if (_and(
|
| - _isEqualNodes(node.target, toNode.target),
|
| - _isEqualTokens(node.operator, toNode.operator),
|
| - _isEqualNodes(node.propertyName, toNode.propertyName))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitRedirectingConstructorInvocation(
|
| - RedirectingConstructorInvocation node) {
|
| - RedirectingConstructorInvocation toNode =
|
| - this._toNode as RedirectingConstructorInvocation;
|
| - if (_and(
|
| - _isEqualTokens(node.thisKeyword, toNode.thisKeyword),
|
| - _isEqualTokens(node.period, toNode.period),
|
| - _isEqualNodes(node.constructorName, toNode.constructorName),
|
| - _isEqualNodes(node.argumentList, toNode.argumentList))) {
|
| - toNode.staticElement = node.staticElement;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitRethrowExpression(RethrowExpression node) {
|
| - RethrowExpression toNode = this._toNode as RethrowExpression;
|
| - if (_isEqualTokens(node.rethrowKeyword, toNode.rethrowKeyword)) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitReturnStatement(ReturnStatement node) {
|
| - ReturnStatement toNode = this._toNode as ReturnStatement;
|
| - return _and(
|
| - _isEqualTokens(node.returnKeyword, toNode.returnKeyword),
|
| - _isEqualNodes(node.expression, toNode.expression),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon));
|
| - }
|
| -
|
| - @override
|
| - bool visitScriptTag(ScriptTag node) {
|
| - ScriptTag toNode = this._toNode as ScriptTag;
|
| - return _isEqualTokens(node.scriptTag, toNode.scriptTag);
|
| - }
|
| -
|
| - @override
|
| - bool visitShowCombinator(ShowCombinator node) {
|
| - ShowCombinator toNode = this._toNode as ShowCombinator;
|
| - return _and(_isEqualTokens(node.keyword, toNode.keyword),
|
| - _isEqualNodeLists(node.shownNames, toNode.shownNames));
|
| - }
|
| -
|
| - @override
|
| - bool visitSimpleFormalParameter(SimpleFormalParameter node) {
|
| - SimpleFormalParameter toNode = this._toNode as SimpleFormalParameter;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.keyword, toNode.keyword),
|
| - _isEqualNodes(node.type, toNode.type),
|
| - _isEqualNodes(node.identifier, toNode.identifier));
|
| - }
|
| -
|
| - @override
|
| - bool visitSimpleIdentifier(SimpleIdentifier node) {
|
| - SimpleIdentifier toNode = this._toNode as SimpleIdentifier;
|
| - if (_isEqualTokens(node.token, toNode.token)) {
|
| - toNode.staticElement = node.staticElement;
|
| - toNode.staticType = node.staticType;
|
| - toNode.propagatedElement = node.propagatedElement;
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.auxiliaryElements = node.auxiliaryElements;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitSimpleStringLiteral(SimpleStringLiteral node) {
|
| - SimpleStringLiteral toNode = this._toNode as SimpleStringLiteral;
|
| - if (_and(_isEqualTokens(node.literal, toNode.literal),
|
| - node.value == toNode.value)) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitStringInterpolation(StringInterpolation node) {
|
| - StringInterpolation toNode = this._toNode as StringInterpolation;
|
| - if (_isEqualNodeLists(node.elements, toNode.elements)) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitSuperConstructorInvocation(SuperConstructorInvocation node) {
|
| - SuperConstructorInvocation toNode =
|
| - this._toNode as SuperConstructorInvocation;
|
| - if (_and(
|
| - _isEqualTokens(node.superKeyword, toNode.superKeyword),
|
| - _isEqualTokens(node.period, toNode.period),
|
| - _isEqualNodes(node.constructorName, toNode.constructorName),
|
| - _isEqualNodes(node.argumentList, toNode.argumentList))) {
|
| - toNode.staticElement = node.staticElement;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitSuperExpression(SuperExpression node) {
|
| - SuperExpression toNode = this._toNode as SuperExpression;
|
| - if (_isEqualTokens(node.superKeyword, toNode.superKeyword)) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitSwitchCase(SwitchCase node) {
|
| - SwitchCase toNode = this._toNode as SwitchCase;
|
| - return _and(
|
| - _isEqualNodeLists(node.labels, toNode.labels),
|
| - _isEqualTokens(node.keyword, toNode.keyword),
|
| - _isEqualNodes(node.expression, toNode.expression),
|
| - _isEqualTokens(node.colon, toNode.colon),
|
| - _isEqualNodeLists(node.statements, toNode.statements));
|
| - }
|
| -
|
| - @override
|
| - bool visitSwitchDefault(SwitchDefault node) {
|
| - SwitchDefault toNode = this._toNode as SwitchDefault;
|
| - return _and(
|
| - _isEqualNodeLists(node.labels, toNode.labels),
|
| - _isEqualTokens(node.keyword, toNode.keyword),
|
| - _isEqualTokens(node.colon, toNode.colon),
|
| - _isEqualNodeLists(node.statements, toNode.statements));
|
| - }
|
| -
|
| - @override
|
| - bool visitSwitchStatement(SwitchStatement node) {
|
| - SwitchStatement toNode = this._toNode as SwitchStatement;
|
| - return _and(
|
| - _isEqualTokens(node.switchKeyword, toNode.switchKeyword),
|
| - _isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
|
| - _isEqualNodes(node.expression, toNode.expression),
|
| - _isEqualTokens(node.rightParenthesis, toNode.rightParenthesis),
|
| - _isEqualTokens(node.leftBracket, toNode.leftBracket),
|
| - _isEqualNodeLists(node.members, toNode.members),
|
| - _isEqualTokens(node.rightBracket, toNode.rightBracket));
|
| - }
|
| -
|
| - @override
|
| - bool visitSymbolLiteral(SymbolLiteral node) {
|
| - SymbolLiteral toNode = this._toNode as SymbolLiteral;
|
| - if (_and(_isEqualTokens(node.poundSign, toNode.poundSign),
|
| - _isEqualTokenLists(node.components, toNode.components))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitThisExpression(ThisExpression node) {
|
| - ThisExpression toNode = this._toNode as ThisExpression;
|
| - if (_isEqualTokens(node.thisKeyword, toNode.thisKeyword)) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitThrowExpression(ThrowExpression node) {
|
| - ThrowExpression toNode = this._toNode as ThrowExpression;
|
| - if (_and(_isEqualTokens(node.throwKeyword, toNode.throwKeyword),
|
| - _isEqualNodes(node.expression, toNode.expression))) {
|
| - toNode.propagatedType = node.propagatedType;
|
| - toNode.staticType = node.staticType;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
|
| - TopLevelVariableDeclaration toNode =
|
| - this._toNode as TopLevelVariableDeclaration;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualNodes(node.variables, toNode.variables),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon));
|
| - }
|
| -
|
| - @override
|
| - bool visitTryStatement(TryStatement node) {
|
| - TryStatement toNode = this._toNode as TryStatement;
|
| - return _and(
|
| - _isEqualTokens(node.tryKeyword, toNode.tryKeyword),
|
| - _isEqualNodes(node.body, toNode.body),
|
| - _isEqualNodeLists(node.catchClauses, toNode.catchClauses),
|
| - _isEqualTokens(node.finallyKeyword, toNode.finallyKeyword),
|
| - _isEqualNodes(node.finallyBlock, toNode.finallyBlock));
|
| - }
|
| -
|
| - @override
|
| - bool visitTypeArgumentList(TypeArgumentList node) {
|
| - TypeArgumentList toNode = this._toNode as TypeArgumentList;
|
| - return _and(
|
| - _isEqualTokens(node.leftBracket, toNode.leftBracket),
|
| - _isEqualNodeLists(node.arguments, toNode.arguments),
|
| - _isEqualTokens(node.rightBracket, toNode.rightBracket));
|
| - }
|
| -
|
| - @override
|
| - bool visitTypeName(TypeName node) {
|
| - TypeName toNode = this._toNode as TypeName;
|
| - if (_and(_isEqualNodes(node.name, toNode.name),
|
| - _isEqualNodes(node.typeArguments, toNode.typeArguments))) {
|
| - toNode.type = node.type;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool visitTypeParameter(TypeParameter node) {
|
| - TypeParameter toNode = this._toNode as TypeParameter;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualNodes(node.name, toNode.name),
|
| - _isEqualTokens(node.extendsKeyword, toNode.extendsKeyword),
|
| - _isEqualNodes(node.bound, toNode.bound));
|
| - }
|
| -
|
| - @override
|
| - bool visitTypeParameterList(TypeParameterList node) {
|
| - TypeParameterList toNode = this._toNode as TypeParameterList;
|
| - return _and(
|
| - _isEqualTokens(node.leftBracket, toNode.leftBracket),
|
| - _isEqualNodeLists(node.typeParameters, toNode.typeParameters),
|
| - _isEqualTokens(node.rightBracket, toNode.rightBracket));
|
| - }
|
| -
|
| - @override
|
| - bool visitVariableDeclaration(VariableDeclaration node) {
|
| - VariableDeclaration toNode = this._toNode as VariableDeclaration;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualNodes(node.name, toNode.name),
|
| - _isEqualTokens(node.equals, toNode.equals),
|
| - _isEqualNodes(node.initializer, toNode.initializer));
|
| - }
|
| -
|
| - @override
|
| - bool visitVariableDeclarationList(VariableDeclarationList node) {
|
| - VariableDeclarationList toNode = this._toNode as VariableDeclarationList;
|
| - return _and(
|
| - _isEqualNodes(node.documentationComment, toNode.documentationComment),
|
| - _isEqualNodeLists(node.metadata, toNode.metadata),
|
| - _isEqualTokens(node.keyword, toNode.keyword),
|
| - _isEqualNodes(node.type, toNode.type),
|
| - _isEqualNodeLists(node.variables, toNode.variables));
|
| - }
|
| -
|
| - @override
|
| - bool visitVariableDeclarationStatement(VariableDeclarationStatement node) {
|
| - VariableDeclarationStatement toNode =
|
| - this._toNode as VariableDeclarationStatement;
|
| - return _and(_isEqualNodes(node.variables, toNode.variables),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon));
|
| - }
|
| -
|
| - @override
|
| - bool visitWhileStatement(WhileStatement node) {
|
| - WhileStatement toNode = this._toNode as WhileStatement;
|
| - return _and(
|
| - _isEqualTokens(node.whileKeyword, toNode.whileKeyword),
|
| - _isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
|
| - _isEqualNodes(node.condition, toNode.condition),
|
| - _isEqualTokens(node.rightParenthesis, toNode.rightParenthesis),
|
| - _isEqualNodes(node.body, toNode.body));
|
| - }
|
| -
|
| - @override
|
| - bool visitWithClause(WithClause node) {
|
| - WithClause toNode = this._toNode as WithClause;
|
| - return _and(_isEqualTokens(node.withKeyword, toNode.withKeyword),
|
| - _isEqualNodeLists(node.mixinTypes, toNode.mixinTypes));
|
| - }
|
| -
|
| - @override
|
| - bool visitYieldStatement(YieldStatement node) {
|
| - YieldStatement toNode = this._toNode as YieldStatement;
|
| - return _and(
|
| - _isEqualTokens(node.yieldKeyword, toNode.yieldKeyword),
|
| - _isEqualNodes(node.expression, toNode.expression),
|
| - _isEqualTokens(node.semicolon, toNode.semicolon));
|
| - }
|
| -
|
| - /**
|
| - * Return `true` if all of the parameters are `true`.
|
| - */
|
| - bool _and(bool b1, bool b2,
|
| - [bool b3 = true,
|
| - bool b4 = true,
|
| - bool b5 = true,
|
| - bool b6 = true,
|
| - bool b7 = true,
|
| - bool b8 = true,
|
| - bool b9 = true,
|
| - bool b10 = true,
|
| - bool b11 = true,
|
| - bool b12 = true,
|
| - bool b13 = true]) {
|
| - // TODO(brianwilkerson) Inline this method.
|
| - return b1 &&
|
| - b2 &&
|
| - b3 &&
|
| - b4 &&
|
| - b5 &&
|
| - b6 &&
|
| - b7 &&
|
| - b8 &&
|
| - b9 &&
|
| - b10 &&
|
| - b11 &&
|
| - b12 &&
|
| - b13;
|
| - }
|
| -
|
| - /**
|
| - * Return `true` if the [first] and [second] lists of AST nodes have the same
|
| - * size and corresponding elements are equal.
|
| - */
|
| - bool _isEqualNodeLists(NodeList first, NodeList second) {
|
| - if (first == null) {
|
| - return second == null;
|
| - } else if (second == null) {
|
| - return false;
|
| - }
|
| - int size = first.length;
|
| - if (second.length != size) {
|
| - return false;
|
| - }
|
| - bool equal = true;
|
| - for (int i = 0; i < size; i++) {
|
| - if (!_isEqualNodes(first[i], second[i])) {
|
| - equal = false;
|
| - }
|
| - }
|
| - return equal;
|
| - }
|
| -
|
| - /**
|
| - * Return `true` if the [fromNode] and [toNode] have the same structure. As a
|
| - * side-effect, if the nodes do have the same structure, any resolution data
|
| - * from the first node will be copied to the second node.
|
| - */
|
| - bool _isEqualNodes(AstNode fromNode, AstNode toNode) {
|
| - if (fromNode == null) {
|
| - return toNode == null;
|
| - } else if (toNode == null) {
|
| - return false;
|
| - } else if (fromNode.runtimeType == toNode.runtimeType) {
|
| - this._toNode = toNode;
|
| - return fromNode.accept(this);
|
| - }
|
| - //
|
| - // Check for a simple transformation caused by entering a period.
|
| - //
|
| - if (toNode is PrefixedIdentifier) {
|
| - SimpleIdentifier prefix = toNode.prefix;
|
| - if (fromNode.runtimeType == prefix.runtimeType) {
|
| - this._toNode = prefix;
|
| - return fromNode.accept(this);
|
| - }
|
| - } else if (toNode is PropertyAccess) {
|
| - Expression target = toNode.target;
|
| - if (fromNode.runtimeType == target.runtimeType) {
|
| - this._toNode = target;
|
| - return fromNode.accept(this);
|
| - }
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - /**
|
| - * Return `true` if the [first] and [second] arrays of tokens have the same
|
| - * length and corresponding elements are equal.
|
| - */
|
| - bool _isEqualTokenLists(List<Token> first, List<Token> second) {
|
| - int length = first.length;
|
| - if (second.length != length) {
|
| - return false;
|
| - }
|
| - for (int i = 0; i < length; i++) {
|
| - if (!_isEqualTokens(first[i], second[i])) {
|
| - return false;
|
| - }
|
| - }
|
| - return true;
|
| - }
|
| -
|
| - /**
|
| - * Return `true` if the [first] and [second] tokens have the same structure.
|
| - */
|
| - bool _isEqualTokens(Token first, Token second) {
|
| - if (first == null) {
|
| - return second == null;
|
| - } else if (second == null) {
|
| - return false;
|
| - }
|
| - return first.lexeme == second.lexeme;
|
| - }
|
| -
|
| - /**
|
| - * Copy resolution data from the [fromNode] to the [toNode].
|
| - */
|
| - static void copyResolutionData(AstNode fromNode, AstNode toNode) {
|
| - ResolutionCopier copier = new ResolutionCopier();
|
| - copier._isEqualNodes(fromNode, toNode);
|
| - }
|
| -}
|
|
|