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 1bff4ea0def4bbe843ae3066eca4bf047826cebb..90b734f93b15c107ad547dfaaadf5f5dca5a6f1a 100644 |
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart |
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart |
@@ -2179,6 +2179,72 @@ var A = B; |
allResults.clear(); |
} |
+ test_results_order() async { |
+ var a = _p('/test/lib/a.dart'); |
+ var b = _p('/test/lib/b.dart'); |
+ var c = _p('/test/lib/c.dart'); |
+ var d = _p('/test/lib/d.dart'); |
+ var e = _p('/test/lib/e.dart'); |
+ var f = _p('/test/lib/f.dart'); |
+ provider.newFile( |
+ a, |
+ r''' |
+import 'd.dart'; |
+'''); |
+ provider.newFile(b, ''); |
+ provider.newFile( |
+ c, |
+ r''' |
+import 'd.dart'; |
+'''); |
+ provider.newFile( |
+ d, |
+ r''' |
+import 'b.dart'; |
+'''); |
+ provider.newFile( |
+ e, |
+ r''' |
+export 'b.dart'; |
+'''); |
+ provider.newFile( |
+ f, |
+ r''' |
+import 'e.dart'; |
+class F extends X {} |
+'''); |
+ |
+ driver.addFile(a); |
+ driver.addFile(b); |
+ driver.addFile(c); |
+ driver.addFile(d); |
+ driver.addFile(e); |
+ driver.addFile(f); |
+ await scheduler.waitForIdle(); |
+ |
+ // The file f.dart has an error or warning. |
+ // So, its analysis will have higher priority. |
+ expect(driver.fsState.getFileForPath(f).hasErrorOrWarning, isTrue); |
+ |
+ allResults.clear(); |
+ |
+ // Update a.dart with changing its API signature. |
+ provider.updateFile(b, 'class A {}'); |
+ driver.changeFile(b); |
+ await scheduler.waitForIdle(); |
+ |
+ List<String> analyzedPaths = allResults.map((r) => r.path).toList(); |
+ |
+ // The changed file must be the first. |
+ expect(analyzedPaths[0], b); |
+ |
+ // Then the file that imports the changed file. |
+ expect(analyzedPaths[1], d); |
+ |
+ // Then the file that has an error (even if it is unrelated). |
+ expect(analyzedPaths[2], f); |
+ } |
+ |
test_results_priority() async { |
String content = 'int f() => 42;'; |
addTestFile(content, priority: true); |