Index: tests/compiler/dart2js/warnings_checker.dart |
diff --git a/tests/compiler/dart2js/warnings_checker.dart b/tests/compiler/dart2js/warnings_checker.dart |
index 3e50eaec9366e74cd5249b5f15c4cacc6dee9d81..fdbd12cba50e07bc42bcd48f88de616f364e2208 100644 |
--- a/tests/compiler/dart2js/warnings_checker.dart |
+++ b/tests/compiler/dart2js/warnings_checker.dart |
@@ -23,61 +23,62 @@ void checkWarnings(Map<String, dynamic> tests, [List<String> arguments]) { |
bool warningsMismatch = false; |
bool verbose = arguments != null && arguments.contains('-v'); |
asyncTest(() => Future.forEach(tests.keys, (String test) async { |
- Uri uri = script.resolve('../../$test'); |
- String source = UTF8.decode(readAll(uriPathToNative(uri.path))); |
- SourceFile file = new StringSourceFile( |
- uri, relativize(currentDirectory, uri, isWindows), source); |
- Map<int,String> expectedWarnings = {}; |
- int lineNo = 0; |
- for (String line in source.split('\n')) { |
- if (line.contains('///') && |
- (line.contains('static type warning') || |
- line.contains('static warning'))) { |
- expectedWarnings[lineNo] = line; |
- } |
- lineNo++; |
- } |
- Set<int> unseenWarnings = new Set<int>.from(expectedWarnings.keys); |
- DiagnosticCollector collector = new DiagnosticCollector(); |
- await runCompiler( |
- entryPoint: uri, |
- diagnosticHandler: collector, |
- options: [Flags.analyzeOnly], |
- showDiagnostics: verbose); |
- Map<String, List<int>> statusMap = tests[test]; |
- // Line numbers with known unexpected warnings. |
- List<int> unexpectedStatus = []; |
- if (statusMap != null && statusMap.containsKey('unexpected')) { |
- unexpectedStatus = statusMap['unexpected']; |
- } |
- // Line numbers with known missing warnings. |
- List<int> missingStatus = []; |
- if (statusMap != null && statusMap.containsKey('missing')) { |
- missingStatus = statusMap['missing']; |
- } |
- for (CollectedMessage message in collector.warnings) { |
- Expect.equals(uri, message.uri); |
- int lineNo = file.getLine(message.begin); |
- if (expectedWarnings.containsKey(lineNo)) { |
- unseenWarnings.remove(lineNo); |
- } else if (!unexpectedStatus.contains(lineNo+1)) { |
- warningsMismatch = true; |
- print(file.getLocationMessage( |
- 'Unexpected warning: ${message.message}', |
- message.begin, message.end)); |
- } |
- } |
- if (!unseenWarnings.isEmpty) { |
- for (int lineNo in unseenWarnings) { |
- if (!missingStatus.contains(lineNo+1)) { |
- warningsMismatch = true; |
- String line = expectedWarnings[lineNo]; |
- print('$uri [${lineNo+1}]: Missing static type warning.'); |
- print(line); |
+ Uri uri = script.resolve('../../$test'); |
+ String source = UTF8.decode(readAll(uriPathToNative(uri.path))); |
+ SourceFile file = new StringSourceFile( |
+ uri, relativize(currentDirectory, uri, isWindows), source); |
+ Map<int, String> expectedWarnings = {}; |
+ int lineNo = 0; |
+ for (String line in source.split('\n')) { |
+ if (line.contains('///') && |
+ (line.contains('static type warning') || |
+ line.contains('static warning'))) { |
+ expectedWarnings[lineNo] = line; |
+ } |
+ lineNo++; |
} |
- } |
- } |
- }).then((_) { |
- Expect.isFalse(warningsMismatch); |
- })); |
+ Set<int> unseenWarnings = new Set<int>.from(expectedWarnings.keys); |
+ DiagnosticCollector collector = new DiagnosticCollector(); |
+ await runCompiler( |
+ entryPoint: uri, |
+ diagnosticHandler: collector, |
+ options: [Flags.analyzeOnly], |
+ showDiagnostics: verbose); |
+ Map<String, List<int>> statusMap = tests[test]; |
+ // Line numbers with known unexpected warnings. |
+ List<int> unexpectedStatus = []; |
+ if (statusMap != null && statusMap.containsKey('unexpected')) { |
+ unexpectedStatus = statusMap['unexpected']; |
+ } |
+ // Line numbers with known missing warnings. |
+ List<int> missingStatus = []; |
+ if (statusMap != null && statusMap.containsKey('missing')) { |
+ missingStatus = statusMap['missing']; |
+ } |
+ for (CollectedMessage message in collector.warnings) { |
+ Expect.equals(uri, message.uri); |
+ int lineNo = file.getLine(message.begin); |
+ if (expectedWarnings.containsKey(lineNo)) { |
+ unseenWarnings.remove(lineNo); |
+ } else if (!unexpectedStatus.contains(lineNo + 1)) { |
+ warningsMismatch = true; |
+ print(file.getLocationMessage( |
+ 'Unexpected warning: ${message.message}', |
+ message.begin, |
+ message.end)); |
+ } |
+ } |
+ if (!unseenWarnings.isEmpty) { |
+ for (int lineNo in unseenWarnings) { |
+ if (!missingStatus.contains(lineNo + 1)) { |
+ warningsMismatch = true; |
+ String line = expectedWarnings[lineNo]; |
+ print('$uri [${lineNo+1}]: Missing static type warning.'); |
+ print(line); |
+ } |
+ } |
+ } |
+ }).then((_) { |
+ Expect.isFalse(warningsMismatch); |
+ })); |
} |