| Index: pkg/analyzer/test/src/dart/analysis/driver_test.dart
|
| diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
|
| index d44ef4019f334aa411ec70c02ff0a12b0bcc20db..30086bc9a58358309cc2958fb04d607d94dd6ff0 100644
|
| --- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
|
| +++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
|
| @@ -967,24 +967,27 @@ main() {
|
| test_knownFiles() async {
|
| var a = _p('/test/lib/a.dart');
|
| var b = _p('/test/lib/b.dart');
|
| + var c = _p('/test/lib/c.dart');
|
|
|
| provider.newFile(
|
| a,
|
| r'''
|
| import 'b.dart';
|
| ''');
|
| + provider.newFile(b, '');
|
| + provider.newFile(c, '');
|
|
|
| driver.addFile(a);
|
| + driver.addFile(c);
|
| await _waitForIdle();
|
|
|
| - expect(driver.knownFiles, contains(a));
|
| - expect(driver.knownFiles, contains(b));
|
| + expect(driver.knownFiles, unorderedEquals([a, b, c]));
|
|
|
| + // Remove a.dart and analyze.
|
| + // Both a.dart and b.dart are not known now.
|
| driver.removeFile(a);
|
| -
|
| - // a.dart was removed, but we don't clean up the file state state yet.
|
| - expect(driver.knownFiles, contains(a));
|
| - expect(driver.knownFiles, contains(b));
|
| + await _waitForIdle();
|
| + expect(driver.knownFiles, unorderedEquals([c]));
|
| }
|
|
|
| test_knownFiles_beforeAnalysis() async {
|
| @@ -1337,6 +1340,29 @@ var A = B;
|
| expect(allResults, isEmpty);
|
| }
|
|
|
| + test_removeFile_invalidate_importers() async {
|
| + var a = _p('/test/lib/a.dart');
|
| + var b = _p('/test/lib/b.dart');
|
| +
|
| + provider.newFile(a, 'class A {}');
|
| + provider.newFile(b, "import 'a.dart'; var a = new A();");
|
| +
|
| + driver.addFile(a);
|
| + driver.addFile(b);
|
| + await _waitForIdle();
|
| +
|
| + // b.dart s clean.
|
| + expect(allResults.singleWhere((r) => r.path == b).errors, isEmpty);
|
| + allResults.clear();
|
| +
|
| + // Remove a.dart, now b.dart should be reanalyzed and has an error.
|
| + provider.deleteFile(a);
|
| + driver.removeFile(a);
|
| + await _waitForIdle();
|
| + expect(allResults.singleWhere((r) => r.path == b).errors, hasLength(2));
|
| + allResults.clear();
|
| + }
|
| +
|
| test_results_priority() async {
|
| String content = 'int f() => 42;';
|
| addTestFile(content, priority: true);
|
|
|