| Index: pkg/analyzer/lib/src/generated/resolver.dart
|
| diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
|
| index b221f9ffb3ab9d4004f5d0fc08f51845b8b13a4e..eff8abee27b51c6fc3215d15c22ed3d711477a37 100644
|
| --- a/pkg/analyzer/lib/src/generated/resolver.dart
|
| +++ b/pkg/analyzer/lib/src/generated/resolver.dart
|
| @@ -2,28 +2,27 @@
|
| // for details. All rights reserved. Use of this source code is governed by a
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
| -library engine.resolver;
|
| +library analyzer.src.generated.resolver;
|
|
|
| import 'dart:collection';
|
|
|
| -import '../task/strong/info.dart' show InferredType, StaticInfo;
|
| -import 'ast.dart';
|
| -import 'constant.dart';
|
| -import 'element.dart';
|
| -import 'element_resolver.dart';
|
| -import 'engine.dart';
|
| -import 'error.dart';
|
| -import 'error_verifier.dart';
|
| -import 'java_core.dart';
|
| -import 'java_engine.dart';
|
| -import 'scanner.dart';
|
| -import 'scanner.dart' as sc;
|
| -import 'source.dart';
|
| -import 'static_type_analyzer.dart';
|
| -import 'type_system.dart';
|
| -import 'utilities_dart.dart';
|
| -
|
| -export 'type_system.dart';
|
| +import 'package:analyzer/src/generated/ast.dart';
|
| +import 'package:analyzer/src/generated/constant.dart';
|
| +import 'package:analyzer/src/generated/element.dart';
|
| +import 'package:analyzer/src/generated/element_resolver.dart';
|
| +import 'package:analyzer/src/generated/engine.dart';
|
| +import 'package:analyzer/src/generated/error.dart';
|
| +import 'package:analyzer/src/generated/error_verifier.dart';
|
| +import 'package:analyzer/src/generated/java_core.dart';
|
| +import 'package:analyzer/src/generated/java_engine.dart';
|
| +import 'package:analyzer/src/generated/scanner.dart';
|
| +import 'package:analyzer/src/generated/source.dart';
|
| +import 'package:analyzer/src/generated/static_type_analyzer.dart';
|
| +import 'package:analyzer/src/generated/type_system.dart';
|
| +import 'package:analyzer/src/generated/utilities_dart.dart';
|
| +import 'package:analyzer/src/task/strong/info.dart' show InferredType, StaticInfo;
|
| +
|
| +export 'package:analyzer/src/generated/type_system.dart';
|
|
|
| /**
|
| * Instances of the class `BestPracticesVerifier` traverse an AST structure looking for
|
| @@ -88,8 +87,8 @@ class BestPracticesVerifier extends RecursiveAstVisitor<Object> {
|
|
|
| @override
|
| Object visitAssignmentExpression(AssignmentExpression node) {
|
| - sc.TokenType operatorType = node.operator.type;
|
| - if (operatorType == sc.TokenType.EQ) {
|
| + TokenType operatorType = node.operator.type;
|
| + if (operatorType == TokenType.EQ) {
|
| _checkForUseOfVoidResult(node.rightHandSide);
|
| _checkForInvalidAssignment(node.leftHandSide, node.rightHandSide);
|
| } else {
|
| @@ -269,7 +268,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<Object> {
|
| }
|
| String rhsNameStr = typeName.name.name;
|
| // if x is dynamic
|
| - if (rhsType.isDynamic && rhsNameStr == sc.Keyword.DYNAMIC.syntax) {
|
| + if (rhsType.isDynamic && rhsNameStr == Keyword.DYNAMIC.syntax) {
|
| if (node.notOperator == null) {
|
| // the is case
|
| _errorReporter.reportErrorForNode(
|
| @@ -529,7 +528,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<Object> {
|
| */
|
| bool _checkForDivisionOptimizationHint(BinaryExpression node) {
|
| // Return if the operator is not '/'
|
| - if (node.operator.type != sc.TokenType.SLASH) {
|
| + if (node.operator.type != TokenType.SLASH) {
|
| return false;
|
| }
|
| // Return if the '/' operator is not defined in core, or if we don't know
|
| @@ -1671,9 +1670,9 @@ class DeadCodeVerifier extends RecursiveAstVisitor<Object> {
|
|
|
| @override
|
| Object visitBinaryExpression(BinaryExpression node) {
|
| - sc.Token operator = node.operator;
|
| - bool isAmpAmp = operator.type == sc.TokenType.AMPERSAND_AMPERSAND;
|
| - bool isBarBar = operator.type == sc.TokenType.BAR_BAR;
|
| + Token operator = node.operator;
|
| + bool isAmpAmp = operator.type == TokenType.AMPERSAND_AMPERSAND;
|
| + bool isBarBar = operator.type == TokenType.BAR_BAR;
|
| if (isAmpAmp || isBarBar) {
|
| Expression lhsCondition = node.leftOperand;
|
| if (!_isDebugConstant(lhsCondition)) {
|
| @@ -2168,7 +2167,7 @@ class DeclarationResolver extends RecursiveAstVisitor<Object> {
|
| ExecutableElement outerExecutable = _enclosingExecutable;
|
| try {
|
| SimpleIdentifier functionName = node.name;
|
| - sc.Token property = node.propertyKeyword;
|
| + Token property = node.propertyKeyword;
|
| if (property == null) {
|
| if (_enclosingExecutable != null) {
|
| _enclosingExecutable =
|
| @@ -2184,7 +2183,7 @@ class DeclarationResolver extends RecursiveAstVisitor<Object> {
|
| } else {
|
| PropertyAccessorElement accessor =
|
| _findIdentifier(_enclosingUnit.accessors, functionName);
|
| - if ((property as sc.KeywordToken).keyword == sc.Keyword.SET) {
|
| + if ((property as KeywordToken).keyword == Keyword.SET) {
|
| accessor = accessor.variable.setter;
|
| functionName.staticElement = accessor;
|
| }
|
| @@ -2278,7 +2277,7 @@ class DeclarationResolver extends RecursiveAstVisitor<Object> {
|
| Object visitMethodDeclaration(MethodDeclaration node) {
|
| ExecutableElement outerExecutable = _enclosingExecutable;
|
| try {
|
| - sc.Token property = node.propertyKeyword;
|
| + Token property = node.propertyKeyword;
|
| SimpleIdentifier methodName = node.name;
|
| String nameOfMethod = methodName.name;
|
| if (property == null) {
|
| @@ -2288,7 +2287,7 @@ class DeclarationResolver extends RecursiveAstVisitor<Object> {
|
| } else {
|
| PropertyAccessorElement accessor =
|
| _findIdentifier(_enclosingClass.accessors, methodName);
|
| - if ((property as sc.KeywordToken).keyword == sc.Keyword.SET) {
|
| + if ((property as KeywordToken).keyword == Keyword.SET) {
|
| accessor = accessor.variable.setter;
|
| methodName.staticElement = accessor;
|
| }
|
| @@ -2918,7 +2917,7 @@ class ElementBuilder extends RecursiveAstVisitor<Object> {
|
| _inFunction = wasInFunction;
|
| }
|
| FunctionBody body = expression.body;
|
| - sc.Token property = node.propertyKeyword;
|
| + Token property = node.propertyKeyword;
|
| if (property == null || _inFunction) {
|
| SimpleIdentifier functionName = node.name;
|
| FunctionElementImpl element =
|
| @@ -3147,12 +3146,12 @@ class ElementBuilder extends RecursiveAstVisitor<Object> {
|
| _inFunction = wasInFunction;
|
| }
|
| bool isStatic = node.isStatic;
|
| - sc.Token property = node.propertyKeyword;
|
| + Token property = node.propertyKeyword;
|
| FunctionBody body = node.body;
|
| if (property == null) {
|
| SimpleIdentifier methodName = node.name;
|
| String nameOfMethod = methodName.name;
|
| - if (nameOfMethod == sc.TokenType.MINUS.lexeme &&
|
| + if (nameOfMethod == TokenType.MINUS.lexeme &&
|
| node.parameters.parameters.length == 0) {
|
| nameOfMethod = "unary-";
|
| }
|
| @@ -4153,11 +4152,11 @@ class ExitDetector extends GeneralizingAstVisitor<bool> {
|
| if (_nodeExits(leftHandSide)) {
|
| return true;
|
| }
|
| - if (node.operator.type == sc.TokenType.QUESTION_QUESTION_EQ) {
|
| + if (node.operator.type == TokenType.QUESTION_QUESTION_EQ) {
|
| return false;
|
| }
|
| if (leftHandSide is PropertyAccess &&
|
| - leftHandSide.operator.type == sc.TokenType.QUESTION_PERIOD) {
|
| + leftHandSide.operator.type == TokenType.QUESTION_PERIOD) {
|
| return false;
|
| }
|
| return _nodeExits(node.rightHandSide);
|
| @@ -4171,13 +4170,13 @@ class ExitDetector extends GeneralizingAstVisitor<bool> {
|
| bool visitBinaryExpression(BinaryExpression node) {
|
| Expression lhsExpression = node.leftOperand;
|
| Expression rhsExpression = node.rightOperand;
|
| - sc.TokenType operatorType = node.operator.type;
|
| + TokenType operatorType = node.operator.type;
|
| // If the operator is ||, then only consider the RHS of the binary
|
| // expression if the left hand side is the false literal.
|
| // TODO(jwren) Do we want to take constant expressions into account,
|
| // evaluate if(false) {} differently than if(<condition>), when <condition>
|
| // evaluates to a constant false value?
|
| - if (operatorType == sc.TokenType.BAR_BAR) {
|
| + if (operatorType == TokenType.BAR_BAR) {
|
| if (lhsExpression is BooleanLiteral) {
|
| BooleanLiteral booleanLiteral = lhsExpression;
|
| if (!booleanLiteral.value) {
|
| @@ -4188,7 +4187,7 @@ class ExitDetector extends GeneralizingAstVisitor<bool> {
|
| }
|
| // If the operator is &&, then only consider the RHS of the binary
|
| // expression if the left hand side is the true literal.
|
| - if (operatorType == sc.TokenType.AMPERSAND_AMPERSAND) {
|
| + if (operatorType == TokenType.AMPERSAND_AMPERSAND) {
|
| if (lhsExpression is BooleanLiteral) {
|
| BooleanLiteral booleanLiteral = lhsExpression;
|
| if (booleanLiteral.value) {
|
| @@ -4199,7 +4198,7 @@ class ExitDetector extends GeneralizingAstVisitor<bool> {
|
| }
|
| // If the operator is ??, then don't consider the RHS of the binary
|
| // expression.
|
| - if (operatorType == sc.TokenType.QUESTION_QUESTION) {
|
| + if (operatorType == TokenType.QUESTION_QUESTION) {
|
| return _nodeExits(lhsExpression);
|
| }
|
| return _nodeExits(lhsExpression) || _nodeExits(rhsExpression);
|
| @@ -4400,7 +4399,7 @@ class ExitDetector extends GeneralizingAstVisitor<bool> {
|
| if (target.accept(this)) {
|
| return true;
|
| }
|
| - if (node.operator.type == sc.TokenType.QUESTION_PERIOD) {
|
| + if (node.operator.type == TokenType.QUESTION_PERIOD) {
|
| return false;
|
| }
|
| }
|
| @@ -6491,7 +6490,7 @@ class InheritanceManager {
|
| List<String> namedParameters) {
|
| DynamicTypeImpl dynamicType = DynamicTypeImpl.instance;
|
| SimpleIdentifier nameIdentifier = new SimpleIdentifier(
|
| - new sc.StringToken(sc.TokenType.IDENTIFIER, name, 0));
|
| + new StringToken(TokenType.IDENTIFIER, name, 0));
|
| ExecutableElementImpl executable;
|
| if (elementArrayToMerge[0] is MethodElement) {
|
| MultiplyInheritedMethodElementImpl unionedMethod =
|
| @@ -8312,9 +8311,9 @@ class ResolverVisitor extends ScopedVisitor {
|
| @override
|
| Object visitAssignmentExpression(AssignmentExpression node) {
|
| safelyVisit(node.leftHandSide);
|
| - sc.TokenType operator = node.operator.type;
|
| - if (operator == sc.TokenType.EQ ||
|
| - operator == sc.TokenType.QUESTION_QUESTION_EQ) {
|
| + TokenType operator = node.operator.type;
|
| + if (operator == TokenType.EQ ||
|
| + operator == TokenType.QUESTION_QUESTION_EQ) {
|
| InferenceContext.setType(
|
| node.rightHandSide, node.leftHandSide.staticType);
|
| }
|
| @@ -8338,10 +8337,10 @@ class ResolverVisitor extends ScopedVisitor {
|
|
|
| @override
|
| Object visitBinaryExpression(BinaryExpression node) {
|
| - sc.TokenType operatorType = node.operator.type;
|
| + TokenType operatorType = node.operator.type;
|
| Expression leftOperand = node.leftOperand;
|
| Expression rightOperand = node.rightOperand;
|
| - if (operatorType == sc.TokenType.AMPERSAND_AMPERSAND) {
|
| + if (operatorType == TokenType.AMPERSAND_AMPERSAND) {
|
| safelyVisit(leftOperand);
|
| if (rightOperand != null) {
|
| _overrideManager.enterScope();
|
| @@ -8364,7 +8363,7 @@ class ResolverVisitor extends ScopedVisitor {
|
| _overrideManager.exitScope();
|
| }
|
| }
|
| - } else if (operatorType == sc.TokenType.BAR_BAR) {
|
| + } else if (operatorType == TokenType.BAR_BAR) {
|
| safelyVisit(leftOperand);
|
| if (rightOperand != null) {
|
| _overrideManager.enterScope();
|
| @@ -9607,7 +9606,7 @@ class ResolverVisitor extends ScopedVisitor {
|
| void _promoteTypes(Expression condition) {
|
| if (condition is BinaryExpression) {
|
| BinaryExpression binary = condition;
|
| - if (binary.operator.type == sc.TokenType.AMPERSAND_AMPERSAND) {
|
| + if (binary.operator.type == TokenType.AMPERSAND_AMPERSAND) {
|
| Expression left = binary.leftOperand;
|
| Expression right = binary.rightOperand;
|
| _promoteTypes(left);
|
| @@ -9633,7 +9632,7 @@ class ResolverVisitor extends ScopedVisitor {
|
| void _propagateFalseState(Expression condition) {
|
| if (condition is BinaryExpression) {
|
| BinaryExpression binary = condition;
|
| - if (binary.operator.type == sc.TokenType.BAR_BAR) {
|
| + if (binary.operator.type == TokenType.BAR_BAR) {
|
| _propagateFalseState(binary.leftOperand);
|
| _propagateFalseState(binary.rightOperand);
|
| }
|
| @@ -9647,7 +9646,7 @@ class ResolverVisitor extends ScopedVisitor {
|
| }
|
| } else if (condition is PrefixExpression) {
|
| PrefixExpression prefix = condition;
|
| - if (prefix.operator.type == sc.TokenType.BANG) {
|
| + if (prefix.operator.type == TokenType.BANG) {
|
| _propagateTrueState(prefix.operand);
|
| }
|
| } else if (condition is ParenthesizedExpression) {
|
| @@ -9674,7 +9673,7 @@ class ResolverVisitor extends ScopedVisitor {
|
| void _propagateTrueState(Expression condition) {
|
| if (condition is BinaryExpression) {
|
| BinaryExpression binary = condition;
|
| - if (binary.operator.type == sc.TokenType.AMPERSAND_AMPERSAND) {
|
| + if (binary.operator.type == TokenType.AMPERSAND_AMPERSAND) {
|
| _propagateTrueState(binary.leftOperand);
|
| _propagateTrueState(binary.rightOperand);
|
| }
|
| @@ -9688,7 +9687,7 @@ class ResolverVisitor extends ScopedVisitor {
|
| }
|
| } else if (condition is PrefixExpression) {
|
| PrefixExpression prefix = condition;
|
| - if (prefix.operator.type == sc.TokenType.BANG) {
|
| + if (prefix.operator.type == TokenType.BANG) {
|
| _propagateFalseState(prefix.operand);
|
| }
|
| } else if (condition is ParenthesizedExpression) {
|
| @@ -10024,7 +10023,7 @@ abstract class ScopedVisitor extends UnifyingAstVisitor<Object> {
|
| * @param token the token specifying the location of the error
|
| * @param arguments the arguments to the error, used to compose the error message
|
| */
|
| - void reportErrorForToken(ErrorCode errorCode, sc.Token token,
|
| + void reportErrorForToken(ErrorCode errorCode, Token token,
|
| [List<Object> arguments]) {
|
| errorListener.onError(new AnalysisError(
|
| source, token.offset, token.length, errorCode, arguments));
|
| @@ -10767,12 +10766,12 @@ class ToDoFinder {
|
| *
|
| * @param token the head of the list of tokens being searched
|
| */
|
| - void _gatherTodoComments(sc.Token token) {
|
| - while (token != null && token.type != sc.TokenType.EOF) {
|
| - sc.Token commentToken = token.precedingComments;
|
| + void _gatherTodoComments(Token token) {
|
| + while (token != null && token.type != TokenType.EOF) {
|
| + Token commentToken = token.precedingComments;
|
| while (commentToken != null) {
|
| - if (commentToken.type == sc.TokenType.SINGLE_LINE_COMMENT ||
|
| - commentToken.type == sc.TokenType.MULTI_LINE_COMMENT) {
|
| + if (commentToken.type == TokenType.SINGLE_LINE_COMMENT ||
|
| + commentToken.type == TokenType.MULTI_LINE_COMMENT) {
|
| _scrapeTodoComment(commentToken);
|
| }
|
| commentToken = commentToken.next;
|
| @@ -10786,7 +10785,7 @@ class ToDoFinder {
|
| *
|
| * @param commentToken the comment token to analyze
|
| */
|
| - void _scrapeTodoComment(sc.Token commentToken) {
|
| + void _scrapeTodoComment(Token commentToken) {
|
| JavaPatternMatcher matcher =
|
| new JavaPatternMatcher(TodoCode.TODO_REGEX, commentToken.lexeme);
|
| if (matcher.find()) {
|
| @@ -12661,7 +12660,7 @@ class TypeResolverVisitor extends ScopedVisitor {
|
| // If the type is not an InterfaceType, then visitTypeName() sets the type
|
| // to be a DynamicTypeImpl
|
| Identifier name = typeName.name;
|
| - if (name.name == sc.Keyword.DYNAMIC.syntax) {
|
| + if (name.name == Keyword.DYNAMIC.syntax) {
|
| reportErrorForNode(dynamicTypeError, name, [name.name]);
|
| } else {
|
| reportErrorForNode(nonTypeError, name, [name.name]);
|
| @@ -12734,8 +12733,8 @@ class TypeResolverVisitor extends ScopedVisitor {
|
| * @return `true` if the name of the given [TypeName] is an built-in identifier.
|
| */
|
| static bool _isBuiltInIdentifier(TypeName node) {
|
| - sc.Token token = node.name.beginToken;
|
| - return token.type == sc.TokenType.KEYWORD;
|
| + Token token = node.name.beginToken;
|
| + return token.type == TokenType.KEYWORD;
|
| }
|
|
|
| /**
|
|
|