Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Unified Diff: pkg/analyzer/lib/src/task/html_work_manager.dart

Issue 1311773005: Extension point for WorkManagerFactory(s). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Move classes as by review comments. Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/lib/src/task/html_work_manager.dart
diff --git a/pkg/analyzer/lib/src/task/html_work_manager.dart b/pkg/analyzer/lib/src/task/html_work_manager.dart
index d438d51929f1534aa1719a5ec45b57f9d2d9a422..faedfb25f7e97d72fc9ecaaf027c23d9a86950aa 100644
--- a/pkg/analyzer/lib/src/task/html_work_manager.dart
+++ b/pkg/analyzer/lib/src/task/html_work_manager.dart
@@ -20,7 +20,6 @@ import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/utilities_collection.dart';
import 'package:analyzer/src/task/driver.dart';
import 'package:analyzer/src/task/html.dart';
-import 'package:analyzer/task/general.dart';
import 'package:analyzer/task/html.dart';
import 'package:analyzer/task/model.dart';
@@ -71,9 +70,7 @@ class HtmlWorkManager implements WorkManager {
priorityResultQueue.add(new TargetedResult(target, result));
}
- /**
- * Notifies the manager about changes in the explicit source list.
- */
+ @override
void applyChange(List<Source> addedSources, List<Source> changedSources,
List<Source> removedSources) {
addedSources = addedSources.where(_isHtmlSource).toList();
@@ -103,26 +100,23 @@ class HtmlWorkManager implements WorkManager {
}
}
- /**
- * Return an [AnalysisErrorInfo] containing the list of all of the errors and
- * the line info associated with the given [source]. The list of errors will
- * be empty if the source is not known to the context or if there are no
- * errors in the source. The errors contained in the list can be incomplete.
- */
- AnalysisErrorInfo getErrors(Source source) {
+ @override
+ List<AnalysisError> getErrors(Source source) {
+ if (!_isHtmlSource(source)) {
+ return AnalysisError.NO_ERRORS;
+ }
+ // If analysis is finished, use all the errors.
if (analysisCache.getState(source, HTML_ERRORS) == CacheState.VALID) {
- List<AnalysisError> errors = analysisCache.getValue(source, HTML_ERRORS);
- LineInfo lineInfo = analysisCache.getValue(source, LINE_INFO);
- return new AnalysisErrorInfoImpl(errors, lineInfo);
+ return analysisCache.getValue(source, HTML_ERRORS);
}
+ // If analysis is in progress, combine all known partial results.
List<AnalysisError> errors = <AnalysisError>[];
errors.addAll(analysisCache.getValue(source, HTML_DOCUMENT_ERRORS));
List<DartScript> scripts = analysisCache.getValue(source, DART_SCRIPTS);
for (DartScript script in scripts) {
errors.addAll(context.getErrors(script).errors);
}
- LineInfo lineInfo = analysisCache.getValue(source, LINE_INFO);
- return new AnalysisErrorInfoImpl(errors, lineInfo);
+ return errors;
}
@override
@@ -210,7 +204,7 @@ class HtmlWorkManager implements WorkManager {
}
});
if (shouldSetErrors) {
- AnalysisErrorInfo info = getErrors(target);
+ AnalysisErrorInfo info = context.getErrors(target);
context.getNotice(target).setErrors(info.errors, info.lineInfo);
}
}

Powered by Google App Engine
This is Rietveld 408576698