Index: pkg/analyzer/lib/src/dart/analysis/driver.dart |
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart |
index f25bd273ee61e9a450d5d25ee109b25b8e829b26..1f4742b7d627b51a8eb86974bdda8ecc05056933 100644 |
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart |
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart |
@@ -320,9 +320,7 @@ class AnalysisDriver implements AnalysisDriverGeneric { |
*/ |
FileSystemState get fsState => _fsState; |
- /** |
- * Return `true` if the driver has a file to analyze. |
- */ |
+ @override |
bool get hasFilesToAnalyze { |
return _fileTracker.hasChangedFiles || |
_requestedFiles.isNotEmpty || |
@@ -353,15 +351,7 @@ class AnalysisDriver implements AnalysisDriverGeneric { |
*/ |
List<String> get priorityFiles => _priorityFiles.toList(growable: false); |
- /** |
- * Set the list of files that the driver should try to analyze sooner. |
- * |
- * Every path in the list must be absolute and normalized. |
- * |
- * The driver will produce the results through the [results] stream. The |
- * exact order in which results are produced is not defined, neither |
- * between priority files, nor between priority and non-priority files. |
- */ |
+ @override |
void set priorityFiles(List<String> priorityPaths) { |
_priorityResults.keys |
.toSet() |
@@ -410,9 +400,7 @@ class AnalysisDriver implements AnalysisDriverGeneric { |
@visibleForTesting |
AnalysisDriverTestView get test => _testView; |
- /** |
- * Return the priority of work that the driver needs to perform. |
- */ |
+ @override |
AnalysisDriverPriority get workPriority { |
if (_requestedFiles.isNotEmpty) { |
return AnalysisDriverPriority.interactive; |
@@ -521,11 +509,9 @@ class AnalysisDriver implements AnalysisDriverGeneric { |
_fileTracker.addFiles(addedFiles); |
} |
- /** |
- * Notify the driver that the client is going to stop using it. |
- */ |
+ @override |
void dispose() { |
- _scheduler._remove(this); |
+ _scheduler.remove(this); |
} |
/** |
@@ -753,9 +739,7 @@ class AnalysisDriver implements AnalysisDriverGeneric { |
unit.lineInfo, unit, listener.errors); |
} |
- /** |
- * Perform a single chunk of work and produce [results]. |
- */ |
+ @override |
Future<Null> performWork() async { |
if (_fileTracker.verifyChangedFilesIfNeeded()) { |
return; |
@@ -1348,11 +1332,27 @@ abstract class AnalysisDriverGeneric { |
bool get hasFilesToAnalyze; |
/** |
+ * Set the list of files that the driver should try to analyze sooner. |
+ * |
+ * Every path in the list must be absolute and normalized. |
+ * |
+ * The driver will produce the results through the [results] stream. The |
+ * exact order in which results are produced is not defined, neither |
+ * between priority files, nor between priority and non-priority files. |
+ */ |
+ void set priorityFiles(List<String> priorityPaths); |
+ |
+ /** |
* Return the priority of work that the driver needs to perform. |
*/ |
AnalysisDriverPriority get workPriority; |
/** |
+ * Notify the driver that the client is going to stop using it. |
+ */ |
+ void dispose(); |
+ |
+ /** |
* Perform a single chunk of work and produce [results]. |
*/ |
Future<Null> performWork(); |
@@ -1458,6 +1458,18 @@ class AnalysisDriverScheduler { |
} |
/** |
+ * Remove the given [driver] from the scheduler, so that it will not be |
+ * asked to perform any new work. |
+ */ |
+ void remove(AnalysisDriverGeneric driver) { |
+ if (driver is AnalysisDriver) { |
+ driverWatcher?.removedDriver(driver); |
+ } |
+ _drivers.remove(driver); |
+ _hasWork.notify(); |
+ } |
+ |
+ /** |
* Start the scheduler, so that any [AnalysisDriver] created before or |
* after will be asked to perform work. |
*/ |
@@ -1478,19 +1490,6 @@ class AnalysisDriverScheduler { |
Future<Null> waitForIdle() => _statusSupport.waitForIdle(); |
/** |
- * Remove the given [driver] from the scheduler, so that it will not be |
- * asked to perform any new work. |
- */ |
- void _remove(AnalysisDriverGeneric driver) { |
- if (driver is AnalysisDriver) { |
- driverWatcher?.removedDriver(driver); |
- } |
- |
- _drivers.remove(driver); |
- _hasWork.notify(); |
- } |
- |
- /** |
* Run infinitely analysis cycle, selecting the drivers with the highest |
* priority first. |
*/ |