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 30c89f5762b536fc79654b89dbf370851631003d..767e3e66c9834e9c5e464d7a7dd9eeaca19e3547 100644 |
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart |
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart |
@@ -1661,6 +1661,51 @@ var A2 = B1; |
expect(result.unit, isNotNull); |
} |
+ test_getResult_importLibrary_thenRemoveIt() async { |
+ var a = _p('/test/lib/a.dart'); |
+ var b = _p('/test/lib/b.dart'); |
+ provider.newFile(a, 'class A {}'); |
+ provider.newFile( |
+ b, |
+ r''' |
+import 'a.dart'; |
+class B extends A {} |
+'''); |
+ |
+ driver.addFile(a); |
+ driver.addFile(b); |
+ await scheduler.waitForIdle(); |
+ |
+ // No errors in b.dart |
+ { |
+ AnalysisResult result = await driver.getResult(b); |
+ expect(result.errors, isEmpty); |
+ } |
+ |
+ // Remove a.dart and reanalyze. |
+ provider.deleteFile(a); |
+ driver.removeFile(a); |
+ |
+ // The unresolved URI error must be reported. |
+ { |
+ AnalysisResult result = await driver.getResult(b); |
+ expect( |
+ result.errors, |
+ contains(predicate((AnalysisError e) => |
+ e.errorCode == CompileTimeErrorCode.URI_DOES_NOT_EXIST))); |
+ } |
+ |
+ // Restore a.dart and reanalyze. |
+ provider.newFile(a, 'class A {}'); |
+ driver.addFile(a); |
+ |
+ // No errors in b.dart again. |
+ { |
+ AnalysisResult result = await driver.getResult(b); |
+ expect(result.errors, isEmpty); |
+ } |
+ } |
+ |
test_getResult_twoPendingFutures() async { |
String content = 'main() {}'; |
addTestFile(content, priority: true); |