| Index: pkg/analyzer/lib/src/generated/incremental_resolution_validator.dart
|
| diff --git a/pkg/analyzer/lib/src/generated/incremental_resolution_validator.dart b/pkg/analyzer/lib/src/generated/incremental_resolution_validator.dart
|
| deleted file mode 100644
|
| index b25f241ab09df04ec9badaef611cb70a380e1996..0000000000000000000000000000000000000000
|
| --- a/pkg/analyzer/lib/src/generated/incremental_resolution_validator.dart
|
| +++ /dev/null
|
| @@ -1,207 +0,0 @@
|
| -// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
| -// 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 analyzer.src.generated.incremental_resolution_validator;
|
| -
|
| -import 'package:analyzer/dart/ast/ast.dart';
|
| -import 'package:analyzer/dart/ast/token.dart';
|
| -import 'package:analyzer/dart/element/element.dart';
|
| -import 'package:analyzer/dart/element/type.dart';
|
| -import 'package:analyzer/src/dart/ast/utilities.dart';
|
| -import 'package:analyzer/src/dart/element/element.dart';
|
| -import 'package:analyzer/src/dart/element/member.dart';
|
| -
|
| -/**
|
| - * Validates that the [actual] and the [expected] units have the same structure
|
| - * and resolution. Throws [IncrementalResolutionMismatch] otherwise.
|
| - */
|
| -void assertSameResolution(CompilationUnit actual, CompilationUnit expected,
|
| - {bool validateTypes: false}) {
|
| - _SameResolutionValidator validator =
|
| - new _SameResolutionValidator(validateTypes);
|
| - validator.isEqualNodes(expected, actual);
|
| -}
|
| -
|
| -/**
|
| - * This exception is thrown when a mismatch between actual and expected AST
|
| - * or resolution is found.
|
| - */
|
| -class IncrementalResolutionMismatch {
|
| - final String message;
|
| - IncrementalResolutionMismatch(this.message);
|
| -
|
| - @override
|
| - String toString() => "IncrementalResolutionMismatch: $message";
|
| -}
|
| -
|
| -/**
|
| - * An [AstVisitor] that compares the structure of two [AstNode]s and their
|
| - * resolution to see whether they are equal.
|
| - */
|
| -class _SameResolutionValidator extends AstComparator {
|
| - final bool validateTypes;
|
| -
|
| - _SameResolutionValidator(this.validateTypes);
|
| -
|
| - @override
|
| - bool failDifferentLength(List expectedList, List actualList) {
|
| - int expectedLength = expectedList.length;
|
| - int actualLength = actualList.length;
|
| - String message = '';
|
| - message += 'Expected length: $expectedLength\n';
|
| - message += 'but $actualLength found\n';
|
| - message += 'in $actualList';
|
| - _fail(message);
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool failIfNotNull(Object expected, Object actual) {
|
| - if (actual != null) {
|
| - _fail('Expected null, but found $actual');
|
| - return false;
|
| - }
|
| - return true;
|
| - }
|
| -
|
| - @override
|
| - bool failIsNull(Object expected, Object actual) {
|
| - _fail('Expected not null, but found null');
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool failRuntimeType(Object expected, Object actual) {
|
| - _fail('Expected ${expected.runtimeType}, but found ${actual.runtimeType}');
|
| - return false;
|
| - }
|
| -
|
| - @override
|
| - bool isEqualNodes(AstNode first, AstNode second) {
|
| - super.isEqualNodes(first, second);
|
| - if (first is SimpleIdentifier && second is SimpleIdentifier) {
|
| - int offset = first.offset;
|
| - _verifyElement(
|
| - first.staticElement, second.staticElement, 'staticElement[$offset]');
|
| - _verifyElement(first.propagatedElement, second.propagatedElement,
|
| - 'propagatedElement[$offset]');
|
| - } else if (first is Declaration && second is Declaration) {
|
| - int offset = first.offset;
|
| - _verifyElement(first.element, second.element, 'declaration[$offset]');
|
| - } else if (first is Directive && second is Directive) {
|
| - int offset = first.offset;
|
| - _verifyElement(first.element, second.element, 'directive[$offset]');
|
| - } else if (first is Expression && second is Expression) {
|
| - int offset = first.offset;
|
| - _verifyType(first.staticType, second.staticType, 'staticType[$offset]');
|
| - _verifyType(first.propagatedType, second.propagatedType,
|
| - 'propagatedType[$offset]');
|
| - _verifyElement(first.staticParameterElement,
|
| - second.staticParameterElement, 'staticParameterElement[$offset]');
|
| - _verifyElement(
|
| - first.propagatedParameterElement,
|
| - second.propagatedParameterElement,
|
| - 'propagatedParameterElement[$offset]');
|
| - }
|
| - return true;
|
| - }
|
| -
|
| - @override
|
| - bool isEqualTokensNotNull(Token expected, Token actual) {
|
| - _verifyEqual('lexeme', expected.lexeme, actual.lexeme);
|
| - _verifyEqual('offset', expected.offset, actual.offset);
|
| - _verifyEqual('offset', expected.length, actual.length);
|
| - return true;
|
| - }
|
| -
|
| - void _fail(String message) {
|
| - throw new IncrementalResolutionMismatch(message);
|
| - }
|
| -
|
| - void _verifyElement(Element a, Element b, String desc) {
|
| - if (a is Member && b is Member) {
|
| - a = (a as Member).baseElement;
|
| - b = (b as Member).baseElement;
|
| - }
|
| - String locationA = _getElementLocationWithoutUri(a);
|
| - String locationB = _getElementLocationWithoutUri(b);
|
| - if (locationA != locationB) {
|
| - _fail('$desc\nExpected: $b ($locationB)\n Actual: $a ($locationA)');
|
| - }
|
| - if (a == null && b == null) {
|
| - return;
|
| - }
|
| - _verifyEqual('nameOffset', a.nameOffset, b.nameOffset);
|
| - if (a is ElementImpl && b is ElementImpl) {
|
| - _verifyEqual('codeOffset', a.codeOffset, b.codeOffset);
|
| - _verifyEqual('codeLength', a.codeLength, b.codeLength);
|
| - }
|
| - if (a is LocalElement && b is LocalElement) {
|
| - _verifyEqual('visibleRange', a.visibleRange, b.visibleRange);
|
| - }
|
| - _verifyEqual(
|
| - 'documentationComment', a.documentationComment, b.documentationComment);
|
| - }
|
| -
|
| - void _verifyEqual(String name, actual, expected) {
|
| - if (actual != expected) {
|
| - _fail('$name\nExpected: $expected\n Actual: $actual');
|
| - }
|
| - }
|
| -
|
| - void _verifyType(DartType a, DartType b, String desc) {
|
| - if (!validateTypes) {
|
| - return;
|
| - }
|
| - if (a != b) {
|
| - _fail('$desc\nExpected: $b\n Actual: $a');
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Returns an URI scheme independent version of the [element] location.
|
| - */
|
| - static String _getElementLocationWithoutUri(Element element) {
|
| - if (element == null) {
|
| - return '<null>';
|
| - }
|
| - if (element is UriReferencedElementImpl) {
|
| - return '<ignored>';
|
| - }
|
| - ElementLocation location = element.location;
|
| - List<String> components = location.components;
|
| - String uriPrefix = '';
|
| - Element unit = element is CompilationUnitElement
|
| - ? element
|
| - : element.getAncestor((e) => e is CompilationUnitElement);
|
| - if (unit != null) {
|
| - String libComponent = components[0];
|
| - String unitComponent = components[1];
|
| - components = components.sublist(2);
|
| - uriPrefix = _getShortElementLocationUri(libComponent) +
|
| - ':' +
|
| - _getShortElementLocationUri(unitComponent);
|
| - } else {
|
| - String libComponent = components[0];
|
| - components = components.sublist(1);
|
| - uriPrefix = _getShortElementLocationUri(libComponent);
|
| - }
|
| - return uriPrefix + ':' + components.join(':');
|
| - }
|
| -
|
| - /**
|
| - * Returns a "short" version of the given [uri].
|
| - *
|
| - * For example:
|
| - * /User/me/project/lib/my_lib.dart -> my_lib.dart
|
| - * package:project/my_lib.dart -> my_lib.dart
|
| - */
|
| - static String _getShortElementLocationUri(String uri) {
|
| - int index = uri.lastIndexOf('/');
|
| - if (index == -1) {
|
| - return uri;
|
| - }
|
| - return uri.substring(index + 1);
|
| - }
|
| -}
|
|
|