Index: pkg/analyzer_experimental/test/services/test_utils.dart |
diff --git a/pkg/analyzer_experimental/test/services/test_utils.dart b/pkg/analyzer_experimental/test/services/test_utils.dart |
deleted file mode 100644 |
index bd92f68b86012c72100cf7262ac2ad970aef137d..0000000000000000000000000000000000000000 |
--- a/pkg/analyzer_experimental/test/services/test_utils.dart |
+++ /dev/null |
@@ -1,215 +0,0 @@ |
-// Copyright (c) 2013, 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 test_utils; |
- |
-import 'package:unittest/unittest.dart'; |
- |
-import 'package:analyzer_experimental/src/generated/java_core.dart' show CharSequence; |
-import 'package:analyzer_experimental/src/generated/engine.dart' show AnalysisContext, AnalysisContextImpl; |
-import 'package:analyzer_experimental/src/generated/source.dart'; |
-import 'package:analyzer_experimental/src/generated/error.dart'; |
-import 'package:analyzer_experimental/src/generated/scanner.dart'; |
-import 'package:analyzer_experimental/src/generated/ast.dart'; |
-import 'package:analyzer_experimental/src/generated/parser.dart'; |
- |
- |
-/// Instances of the class [_GatheringErrorListener] implement an error listener |
-/// that collects all of the errors passed to it for later examination. |
-class _GatheringErrorListener implements AnalysisErrorListener { |
- |
- /// The source being parsed. |
- String _rawSource; |
- |
- /// The source being parsed after inserting a marker at the beginning and end |
- /// of the range of the most recent error. |
- String _markedSource; |
- |
- /// A list containing the errors that were collected. |
- final List<AnalysisError> _errors = new List<AnalysisError>(); |
- |
- /// A table mapping sources to the line information for the source. |
- final Map<Source, LineInfo> _lineInfoMap = new Map<Source, LineInfo>(); |
- |
- void onError(AnalysisError error) { |
- if (_rawSource != null) { |
- var left = error.offset; |
- var right = left + error.length - 1; |
- _markedSource = '${_rawSource.substring(0, left)}^${_rawSource.substring(left, right)}^${_rawSource.substring(right)}'; |
- } |
- _errors.add(error); |
- } |
- |
- |
- /// Sets the line information associated with the given source to the given |
- /// information. |
- void setLineInfo(Source source, List<int> lineStarts) { |
- _lineInfoMap[source] = new LineInfo(lineStarts); |
- } |
- |
- |
- /// Asserts that the number of errors that have been gathered matches the |
- /// number of errors that are given and that they have the expected error |
- /// codes. The order in which the errors were gathered is ignored. |
- void expectErrors(List<ErrorCode> expectedErrorCodes) { |
- var builder = new StringBuffer(); |
- var expectedCounts = new Map<ErrorCode, int>(); |
- |
- for (var code in expectedErrorCodes) { |
- var count = expectedCounts[code]; |
- if (count == null) { |
- count = 1; |
- } else { |
- count = count + 1; |
- } |
- expectedCounts[code] = count; |
- } |
- |
- var errorsByCode = new Map<ErrorCode, List<AnalysisError>>(); |
- for (var error in _errors) { |
- var code = error.errorCode; |
- var list = errorsByCode[code]; |
- if (list == null) { |
- list = new List<AnalysisError>(); |
- errorsByCode[code] = list; |
- } |
- list.add(error); |
- } |
- |
- for (var entry in _getMapEntrySet(expectedCounts)) { |
- var code = entry.getKey(); |
- var expectedCount = entry.getValue(); |
- var actualCount; |
- |
- var list = errorsByCode.remove(code); |
- if (list == null) { |
- actualCount = 0; |
- } else { |
- actualCount = list.length; |
- } |
- |
- if (actualCount != expectedCount) { |
- if (builder.length == 0) { |
- builder.write('Expected '); |
- } else { |
- builder.write('; '); |
- } |
- builder.write(expectedCount); |
- builder.write(' errors of type '); |
- builder.write(code); |
- builder.write(', found '); |
- builder.write(actualCount); |
- } |
- } |
- |
- for (var entry in _getMapEntrySet(errorsByCode)) { |
- var code = entry.getKey(); |
- var actualErrors = entry.getValue(); |
- var actualCount = actualErrors.length; |
- |
- if (builder.length == 0) { |
- builder.write('Expected '); |
- } else { |
- builder.write('; '); |
- } |
- |
- builder.write('0 errors of type '); |
- builder.write(code); |
- builder.write(', found '); |
- builder.write(actualCount); |
- builder.write(' ('); |
- |
- for (int i = 0; i < actualErrors.length; i++) { |
- var error = actualErrors[i]; |
- if (i > 0) { |
- builder.write(', '); |
- } |
- builder.write(error.offset); |
- } |
- |
- builder.write(')'); |
- } |
- |
- if (builder.length > 0) { |
- fail(builder.toString()); |
- } |
- } |
- |
-} |
- |
- |
-Set<_MapEntry> _getMapEntrySet(Map m) { |
- var result = new Set(); |
- m.forEach((k, v) { |
- result.add(new _MapEntry(k, v)); |
- }); |
- return result; |
-} |
- |
- |
-class _MapEntry<K, V> { |
- K _key; |
- V _value; |
- _MapEntry(this._key, this._value); |
- K getKey() => _key; |
- V getValue() => _value; |
-} |
- |
- |
-class _TestSource implements Source { |
- |
- bool operator == (Object object) => object is _TestSource; |
- |
- AnalysisContext get context => _unsupported(); |
- |
- void getContents(Source_ContentReceiver receiver) => _unsupported(); |
- |
- String get fullName => _unsupported(); |
- |
- String get shortName => _unsupported(); |
- |
- String get encoding => _unsupported(); |
- |
- int get modificationStamp =>_unsupported(); |
- |
- UriKind get uriKind => _unsupported(); |
- |
- bool exists() => true; |
- |
- bool get isInSystemLibrary => _unsupported(); |
- |
- Source resolve(String uri) => _unsupported(); |
- |
- Source resolveRelative(Uri uri) => _unsupported(); |
- |
-} |
- |
- |
-_unsupported() => throw new _UnsupportedOperationException(); |
- |
-class _UnsupportedOperationException implements Exception { |
- String toString() => 'UnsupportedOperationException'; |
-} |
- |
- |
-/// Parse the given [source] as a statement and assert, if provided, that |
-/// exactly a given set of [expectedErrorCodes] are encountered. |
-Statement parseStatement(String source, [List<ErrorCode> expectedErrorCodes]) { |
- |
- var listener = new _GatheringErrorListener(); |
- var reader = new CharSequenceReader(new CharSequence(source)); |
- var scanner = new Scanner(null, reader, listener); |
- listener.setLineInfo(new _TestSource(), scanner.lineStarts); |
- |
- var token = scanner.tokenize(); |
- var parser = new Parser(null, listener); |
- var statement = parser.parseStatement(token); |
- expect(statement, isNotNull); |
- |
- if (expectedErrorCodes != null) { |
- listener.expectErrors(expectedErrorCodes); |
- } |
- |
- return statement; |
-} |