| Index: pkg/analyzer/lib/src/task/dart_work_manager.dart | 
| diff --git a/pkg/analyzer/lib/src/task/dart_work_manager.dart b/pkg/analyzer/lib/src/task/dart_work_manager.dart | 
| index c02d5947da900b2c1798caf1c673e9f894967cbb..f813fe9df20f0d126dbccd24cf898e4c98bf9b7d 100644 | 
| --- a/pkg/analyzer/lib/src/task/dart_work_manager.dart | 
| +++ b/pkg/analyzer/lib/src/task/dart_work_manager.dart | 
| @@ -21,8 +21,8 @@ import 'package:analyzer/src/generated/utilities_collection.dart'; | 
| import 'package:analyzer/src/task/dart.dart'; | 
| import 'package:analyzer/src/task/driver.dart'; | 
| import 'package:analyzer/task/dart.dart'; | 
| -import 'package:analyzer/task/general.dart'; | 
| import 'package:analyzer/task/model.dart'; | 
| +import 'package:analyzer/src/task/html.dart'; | 
|  | 
| /** | 
| * The manager for Dart specific analysis. | 
| @@ -113,9 +113,7 @@ class DartWorkManager 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(_isDartSource).toList(); | 
| @@ -166,18 +164,16 @@ class DartWorkManager 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 (!_isDartSource(source) && source is! DartScript) { | 
| +      return AnalysisError.NO_ERRORS; | 
| +    } | 
| +    // If analysis is finished, use all the errors. | 
| if (analysisCache.getState(source, DART_ERRORS) == CacheState.VALID) { | 
| -      List<AnalysisError> errors = analysisCache.getValue(source, DART_ERRORS); | 
| -      LineInfo lineInfo = analysisCache.getValue(source, LINE_INFO); | 
| -      return new AnalysisErrorInfoImpl(errors, lineInfo); | 
| +      return analysisCache.getValue(source, DART_ERRORS); | 
| } | 
| +    // If analysis is in progress, combine all known partial results. | 
| List<AnalysisError> errors = <AnalysisError>[]; | 
| for (ResultDescriptor descriptor in _SOURCE_ERRORS) { | 
| errors.addAll(analysisCache.getValue(source, descriptor)); | 
| @@ -188,8 +184,7 @@ class DartWorkManager implements WorkManager { | 
| errors.addAll(analysisCache.getValue(unit, descriptor)); | 
| } | 
| } | 
| -    LineInfo lineInfo = analysisCache.getValue(source, LINE_INFO); | 
| -    return new AnalysisErrorInfoImpl(errors, lineInfo); | 
| +    return errors; | 
| } | 
|  | 
| /** | 
| @@ -315,7 +310,7 @@ class DartWorkManager implements WorkManager { | 
| } | 
| }); | 
| if (shouldSetErrors) { | 
| -        AnalysisErrorInfo info = getErrors(target); | 
| +        AnalysisErrorInfo info = context.getErrors(target); | 
| context.getNotice(target).setErrors(info.errors, info.lineInfo); | 
| } | 
| } | 
| @@ -329,7 +324,7 @@ class DartWorkManager implements WorkManager { | 
| } | 
| }); | 
| if (shouldSetErrors) { | 
| -        AnalysisErrorInfo info = getErrors(source); | 
| +        AnalysisErrorInfo info = context.getErrors(source); | 
| context.getNotice(source).setErrors(info.errors, info.lineInfo); | 
| } | 
| } | 
|  |