| OLD | NEW |
| 1 // This code was auto-generated, is not intended to be edited, and is subject to | 1 // This code was auto-generated, is not intended to be edited, and is subject to |
| 2 // significant change. Please see the README file for more information. | 2 // significant change. Please see the README file for more information. |
| 3 library engine.test_support; | 3 library engine.test_support; |
| 4 import 'package:analyzer_experimental/src/generated/java_core.dart'; | 4 import 'package:analyzer_experimental/src/generated/java_core.dart'; |
| 5 import 'package:analyzer_experimental/src/generated/java_junit.dart'; | 5 import 'package:analyzer_experimental/src/generated/java_junit.dart'; |
| 6 import 'package:analyzer_experimental/src/generated/source.dart'; | 6 import 'package:analyzer_experimental/src/generated/source.dart'; |
| 7 import 'package:analyzer_experimental/src/generated/error.dart'; | 7 import 'package:analyzer_experimental/src/generated/error.dart'; |
| 8 import 'package:analyzer_experimental/src/generated/scanner.dart'; | 8 import 'package:analyzer_experimental/src/generated/scanner.dart'; |
| 9 import 'package:analyzer_experimental/src/generated/ast.dart' show ASTNode, Node
Locator; | 9 import 'package:analyzer_experimental/src/generated/ast.dart' show ASTNode, Node
Locator; |
| 10 import 'package:analyzer_experimental/src/generated/element.dart' show Interface
Type, MethodElement, PropertyAccessorElement; | 10 import 'package:analyzer_experimental/src/generated/element.dart' show Interface
Type, MethodElement, PropertyAccessorElement; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 | 23 |
| 24 /** | 24 /** |
| 25 * The source being parsed after inserting a marker at the beginning and end o
f the range of the | 25 * The source being parsed after inserting a marker at the beginning and end o
f the range of the |
| 26 * most recent error. | 26 * most recent error. |
| 27 */ | 27 */ |
| 28 String _markedSource; | 28 String _markedSource; |
| 29 | 29 |
| 30 /** | 30 /** |
| 31 * A list containing the errors that were collected. | 31 * A list containing the errors that were collected. |
| 32 */ | 32 */ |
| 33 List<AnalysisError> _errors = new List<AnalysisError>(); | 33 final List<AnalysisError> errors = new List<AnalysisError>(); |
| 34 | 34 |
| 35 /** | 35 /** |
| 36 * A table mapping sources to the line information for the source. | 36 * A table mapping sources to the line information for the source. |
| 37 */ | 37 */ |
| 38 Map<Source, LineInfo> _lineInfoMap = new Map<Source, LineInfo>(); | 38 Map<Source, LineInfo> _lineInfoMap = new Map<Source, LineInfo>(); |
| 39 | 39 |
| 40 /** | 40 /** |
| 41 * An empty array of errors used when no errors are expected. | 41 * An empty array of errors used when no errors are expected. |
| 42 */ | 42 */ |
| 43 static List<AnalysisError> _NO_ERRORS = new List<AnalysisError>(0); | 43 static List<AnalysisError> _NO_ERRORS = new List<AnalysisError>(0); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 69 /** | 69 /** |
| 70 * Assert that the number of errors that have been gathered matches the number
of errors that are | 70 * Assert that the number of errors that have been gathered matches the number
of errors that are |
| 71 * given and that they have the expected error codes and locations. The order
in which the errors | 71 * given and that they have the expected error codes and locations. The order
in which the errors |
| 72 * were gathered is ignored. | 72 * were gathered is ignored. |
| 73 * | 73 * |
| 74 * @param errorCodes the errors that should have been gathered | 74 * @param errorCodes the errors that should have been gathered |
| 75 * @throws AssertionFailedError if a different number of errors have been gath
ered than were | 75 * @throws AssertionFailedError if a different number of errors have been gath
ered than were |
| 76 * expected or if they do not have the same codes and locations | 76 * expected or if they do not have the same codes and locations |
| 77 */ | 77 */ |
| 78 void assertErrors(List<AnalysisError> expectedErrors) { | 78 void assertErrors(List<AnalysisError> expectedErrors) { |
| 79 if (_errors.length != expectedErrors.length) { | 79 if (errors.length != expectedErrors.length) { |
| 80 fail(expectedErrors); | 80 fail(expectedErrors); |
| 81 } | 81 } |
| 82 List<AnalysisError> remainingErrors = new List<AnalysisError>(); | 82 List<AnalysisError> remainingErrors = new List<AnalysisError>(); |
| 83 for (AnalysisError error in expectedErrors) { | 83 for (AnalysisError error in expectedErrors) { |
| 84 remainingErrors.add(error); | 84 remainingErrors.add(error); |
| 85 } | 85 } |
| 86 for (AnalysisError error in _errors) { | 86 for (AnalysisError error in errors) { |
| 87 if (!foundAndRemoved(remainingErrors, error)) { | 87 if (!foundAndRemoved(remainingErrors, error)) { |
| 88 fail(expectedErrors); | 88 fail(expectedErrors); |
| 89 } | 89 } |
| 90 } | 90 } |
| 91 } | 91 } |
| 92 | 92 |
| 93 /** | 93 /** |
| 94 * Assert that the number of errors that have been gathered matches the number
of errors that are | 94 * Assert that the number of errors that have been gathered matches the number
of errors that are |
| 95 * given and that they have the expected error codes. The order in which the e
rrors were gathered | 95 * given and that they have the expected error codes. The order in which the e
rrors were gathered |
| 96 * is ignored. | 96 * is ignored. |
| (...skipping 11 matching lines...) Expand all Loading... |
| 108 for (ErrorCode code in expectedErrorCodes) { | 108 for (ErrorCode code in expectedErrorCodes) { |
| 109 int count = expectedCounts[code]; | 109 int count = expectedCounts[code]; |
| 110 if (count == null) { | 110 if (count == null) { |
| 111 count = 1; | 111 count = 1; |
| 112 } else { | 112 } else { |
| 113 count = count + 1; | 113 count = count + 1; |
| 114 } | 114 } |
| 115 expectedCounts[code] = count; | 115 expectedCounts[code] = count; |
| 116 } | 116 } |
| 117 Map<ErrorCode, List<AnalysisError>> errorsByCode = new Map<ErrorCode, List<A
nalysisError>>(); | 117 Map<ErrorCode, List<AnalysisError>> errorsByCode = new Map<ErrorCode, List<A
nalysisError>>(); |
| 118 for (AnalysisError error in _errors) { | 118 for (AnalysisError error in errors) { |
| 119 ErrorCode code = error.errorCode; | 119 ErrorCode code = error.errorCode; |
| 120 List<AnalysisError> list = errorsByCode[code]; | 120 List<AnalysisError> list = errorsByCode[code]; |
| 121 if (list == null) { | 121 if (list == null) { |
| 122 list = new List<AnalysisError>(); | 122 list = new List<AnalysisError>(); |
| 123 errorsByCode[code] = list; | 123 errorsByCode[code] = list; |
| 124 } | 124 } |
| 125 list.add(error); | 125 list.add(error); |
| 126 } | 126 } |
| 127 for (MapEntry<ErrorCode, int> entry in getMapEntrySet(expectedCounts)) { | 127 for (MapEntry<ErrorCode, int> entry in getMapEntrySet(expectedCounts)) { |
| 128 ErrorCode code = entry.getKey(); | 128 ErrorCode code = entry.getKey(); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 int expectedWarningCount = 0; | 189 int expectedWarningCount = 0; |
| 190 for (ErrorSeverity severity in expectedSeverities) { | 190 for (ErrorSeverity severity in expectedSeverities) { |
| 191 if (identical(severity, ErrorSeverity.ERROR)) { | 191 if (identical(severity, ErrorSeverity.ERROR)) { |
| 192 expectedErrorCount++; | 192 expectedErrorCount++; |
| 193 } else { | 193 } else { |
| 194 expectedWarningCount++; | 194 expectedWarningCount++; |
| 195 } | 195 } |
| 196 } | 196 } |
| 197 int actualErrorCount = 0; | 197 int actualErrorCount = 0; |
| 198 int actualWarningCount = 0; | 198 int actualWarningCount = 0; |
| 199 for (AnalysisError error in _errors) { | 199 for (AnalysisError error in errors) { |
| 200 if (identical(error.errorCode.errorSeverity, ErrorSeverity.ERROR)) { | 200 if (identical(error.errorCode.errorSeverity, ErrorSeverity.ERROR)) { |
| 201 actualErrorCount++; | 201 actualErrorCount++; |
| 202 } else { | 202 } else { |
| 203 actualWarningCount++; | 203 actualWarningCount++; |
| 204 } | 204 } |
| 205 } | 205 } |
| 206 if (expectedErrorCount != actualErrorCount || expectedWarningCount != actual
WarningCount) { | 206 if (expectedErrorCount != actualErrorCount || expectedWarningCount != actual
WarningCount) { |
| 207 JUnitTestCase.fail("Expected ${expectedErrorCount} errors and ${expectedWa
rningCount} warnings, found ${actualErrorCount} errors and ${actualWarningCount}
warnings"); | 207 JUnitTestCase.fail("Expected ${expectedErrorCount} errors and ${expectedWa
rningCount} warnings, found ${actualErrorCount} errors and ${actualWarningCount}
warnings"); |
| 208 } | 208 } |
| 209 } | 209 } |
| 210 | 210 |
| 211 /** | 211 /** |
| 212 * Assert that no errors have been gathered. | 212 * Assert that no errors have been gathered. |
| 213 * | 213 * |
| 214 * @throws AssertionFailedError if any errors have been gathered | 214 * @throws AssertionFailedError if any errors have been gathered |
| 215 */ | 215 */ |
| 216 void assertNoErrors() { | 216 void assertNoErrors() { |
| 217 assertErrors(_NO_ERRORS); | 217 assertErrors(_NO_ERRORS); |
| 218 } | 218 } |
| 219 | 219 |
| 220 /** | 220 /** |
| 221 * Return the errors that were collected. | |
| 222 * | |
| 223 * @return the errors that were collected | |
| 224 */ | |
| 225 List<AnalysisError> get errors => _errors; | |
| 226 | |
| 227 /** | |
| 228 * Return the line information associated with the given source, or `null` if
no line | 221 * Return the line information associated with the given source, or `null` if
no line |
| 229 * information has been associated with the source. | 222 * information has been associated with the source. |
| 230 * | 223 * |
| 231 * @param source the source with which the line information is associated | 224 * @param source the source with which the line information is associated |
| 232 * @return the line information associated with the source | 225 * @return the line information associated with the source |
| 233 */ | 226 */ |
| 234 LineInfo getLineInfo(Source source) => _lineInfoMap[source]; | 227 LineInfo getLineInfo(Source source) => _lineInfoMap[source]; |
| 235 | 228 |
| 236 /** | 229 /** |
| 237 * Return `true` if an error with the given error code has been gathered. | 230 * Return `true` if an error with the given error code has been gathered. |
| 238 * | 231 * |
| 239 * @param errorCode the error code being searched for | 232 * @param errorCode the error code being searched for |
| 240 * @return `true` if an error with the given error code has been gathered | 233 * @return `true` if an error with the given error code has been gathered |
| 241 */ | 234 */ |
| 242 bool hasError(ErrorCode errorCode2) { | 235 bool hasError(ErrorCode errorCode2) { |
| 243 for (AnalysisError error in _errors) { | 236 for (AnalysisError error in errors) { |
| 244 if (identical(error.errorCode, errorCode2)) { | 237 if (identical(error.errorCode, errorCode2)) { |
| 245 return true; | 238 return true; |
| 246 } | 239 } |
| 247 } | 240 } |
| 248 return false; | 241 return false; |
| 249 } | 242 } |
| 250 | 243 |
| 251 /** | 244 /** |
| 252 * Return `true` if at least one error has been gathered. | 245 * Return `true` if at least one error has been gathered. |
| 253 * | 246 * |
| 254 * @return `true` if at least one error has been gathered | 247 * @return `true` if at least one error has been gathered |
| 255 */ | 248 */ |
| 256 bool hasErrors() => _errors.length > 0; | 249 bool hasErrors() => errors.length > 0; |
| 257 void onError(AnalysisError error) { | 250 void onError(AnalysisError error) { |
| 258 if (_rawSource != null) { | 251 if (_rawSource != null) { |
| 259 int left = error.offset; | 252 int left = error.offset; |
| 260 int right = left + error.length - 1; | 253 int right = left + error.length - 1; |
| 261 _markedSource = "${_rawSource.substring(0, left)}^${_rawSource.substring(l
eft, right)}^${_rawSource.substring(right)}"; | 254 _markedSource = "${_rawSource.substring(0, left)}^${_rawSource.substring(l
eft, right)}^${_rawSource.substring(right)}"; |
| 262 } | 255 } |
| 263 _errors.add(error); | 256 errors.add(error); |
| 264 } | 257 } |
| 265 | 258 |
| 266 /** | 259 /** |
| 267 * Set the line information associated with the given source to the given info
rmation. | 260 * Set the line information associated with the given source to the given info
rmation. |
| 268 * | 261 * |
| 269 * @param source the source with which the line information is associated | 262 * @param source the source with which the line information is associated |
| 270 * @param lineStarts the line start information to be associated with the sour
ce | 263 * @param lineStarts the line start information to be associated with the sour
ce |
| 271 */ | 264 */ |
| 272 void setLineInfo(Source source, List<int> lineStarts) { | 265 void setLineInfo(Source source, List<int> lineStarts) { |
| 273 _lineInfoMap[source] = new LineInfo(lineStarts); | 266 _lineInfoMap[source] = new LineInfo(lineStarts); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 writer.printf(" %s %s (%d, %d/%d)", [ | 330 writer.printf(" %s %s (%d, %d/%d)", [ |
| 338 source == null ? "" : source.shortName, | 331 source == null ? "" : source.shortName, |
| 339 error.errorCode, | 332 error.errorCode, |
| 340 location.lineNumber, | 333 location.lineNumber, |
| 341 location.columnNumber, | 334 location.columnNumber, |
| 342 error.length]); | 335 error.length]); |
| 343 } | 336 } |
| 344 } | 337 } |
| 345 writer.newLine(); | 338 writer.newLine(); |
| 346 writer.print("found "); | 339 writer.print("found "); |
| 347 writer.print(_errors.length); | 340 writer.print(errors.length); |
| 348 writer.print(" errors:"); | 341 writer.print(" errors:"); |
| 349 for (AnalysisError error in _errors) { | 342 for (AnalysisError error in errors) { |
| 350 Source source = error.source; | 343 Source source = error.source; |
| 351 LineInfo lineInfo = _lineInfoMap[source]; | 344 LineInfo lineInfo = _lineInfoMap[source]; |
| 352 writer.newLine(); | 345 writer.newLine(); |
| 353 if (lineInfo == null) { | 346 if (lineInfo == null) { |
| 354 int offset = error.offset; | 347 int offset = error.offset; |
| 355 writer.printf(" %s %s (%d..%d): %s", [ | 348 writer.printf(" %s %s (%d..%d): %s", [ |
| 356 source == null ? "" : source.shortName, | 349 source == null ? "" : source.shortName, |
| 357 error.errorCode, | 350 error.errorCode, |
| 358 offset, | 351 offset, |
| 359 offset + error.length, | 352 offset + error.length, |
| (...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 842 return trampoline(target, arguments[0], arguments[1]); | 835 return trampoline(target, arguments[0], arguments[1]); |
| 843 case 3: | 836 case 3: |
| 844 return trampoline(target, arguments[0], arguments[1], arguments[2]); | 837 return trampoline(target, arguments[0], arguments[1], arguments[2]); |
| 845 case 4: | 838 case 4: |
| 846 return trampoline(target, arguments[0], arguments[1], arguments[2], argu
ments[3]); | 839 return trampoline(target, arguments[0], arguments[1], arguments[2], argu
ments[3]); |
| 847 default: | 840 default: |
| 848 throw new IllegalArgumentException("Not implemented for > 4 arguments"); | 841 throw new IllegalArgumentException("Not implemented for > 4 arguments"); |
| 849 } | 842 } |
| 850 } | 843 } |
| 851 } | 844 } |
| OLD | NEW |