Index: pkg/analyzer/lib/src/task/dart.dart |
diff --git a/pkg/analyzer/lib/src/task/dart.dart b/pkg/analyzer/lib/src/task/dart.dart |
index 23878b1a69656ededd8be12fffe6112a780bf253..e0d8155afa08f6519739f633e500e49bf50ff5d9 100644 |
--- a/pkg/analyzer/lib/src/task/dart.dart |
+++ b/pkg/analyzer/lib/src/task/dart.dart |
@@ -677,10 +677,20 @@ final ListResultDescriptor<AnalysisError> VERIFY_ERRORS = |
'VERIFY_ERRORS', AnalysisError.NO_ERRORS); |
/** |
+ * Return a list of unique errors for the [Source] of the given [target]. |
+ */ |
+List<AnalysisError> getTargetSourceErrors( |
+ RecordingErrorListener listener, AnalysisTarget target) { |
+ Source source = target.source; |
+ List<AnalysisError> errors = listener.getErrorsForSource(source); |
+ return getUniqueErrors(errors); |
+} |
+ |
+/** |
* Return a list of errors containing the errors from the given [errors] list |
* but with duplications removed. |
*/ |
-List<AnalysisError> removeDuplicateErrors(List<AnalysisError> errors) { |
+List<AnalysisError> getUniqueErrors(List<AnalysisError> errors) { |
if (errors.isEmpty) { |
return errors; |
} |
@@ -3476,8 +3486,7 @@ class ParseDartTask extends SourceBasedAnalysisTask { |
List<Source> exportedSources = exportedSourceSet.toList(); |
List<Source> importedSources = importedSourceSet.toList(); |
List<Source> includedSources = includedSourceSet.toList(); |
- List<AnalysisError> parseErrors = |
- removeDuplicateErrors(errorListener.errors); |
+ List<AnalysisError> parseErrors = getUniqueErrors(errorListener.errors); |
List<Source> unitSources = <Source>[source]..addAll(includedSourceSet); |
List<LibrarySpecificUnit> librarySpecificUnits = |
unitSources.map((s) => new LibrarySpecificUnit(source, s)).toList(); |
@@ -4650,7 +4659,7 @@ class ResolveUnitTask extends SourceBasedAnalysisTask { |
// AST's for constructor initializers into it) but does not produce an |
// updated version of the element model. |
// |
- outputs[RESOLVE_UNIT_ERRORS] = errorListener.errors; |
+ outputs[RESOLVE_UNIT_ERRORS] = getTargetSourceErrors(errorListener, target); |
outputs[RESOLVED_UNIT10] = unit; |
} |
@@ -4741,7 +4750,7 @@ class ResolveUnitTypeNamesTask extends SourceBasedAnalysisTask { |
// Record outputs. |
// |
outputs[RESOLVE_TYPE_NAMES_ERRORS] = |
- removeDuplicateErrors(errorListener.errors); |
+ getTargetSourceErrors(errorListener, target); |
outputs[RESOLVED_UNIT3] = unit; |
} |
@@ -4832,7 +4841,7 @@ class ResolveVariableReferencesTask extends SourceBasedAnalysisTask { |
// |
outputs[RESOLVED_UNIT4] = unit; |
outputs[VARIABLE_REFERENCE_ERRORS] = |
- removeDuplicateErrors(errorListener.errors); |
+ getTargetSourceErrors(errorListener, target); |
} |
/** |
@@ -4929,7 +4938,7 @@ class ScanDartTask extends SourceBasedAnalysisTask { |
outputs[TOKEN_STREAM] = scanner.tokenize(); |
outputs[LINE_INFO] = new LineInfo(scanner.lineStarts); |
- outputs[SCAN_ERRORS] = removeDuplicateErrors(errorListener.errors); |
+ outputs[SCAN_ERRORS] = getUniqueErrors(errorListener.errors); |
} else if (target is Source) { |
String content = getRequiredInput(CONTENT_INPUT_NAME); |
@@ -4940,7 +4949,7 @@ class ScanDartTask extends SourceBasedAnalysisTask { |
outputs[TOKEN_STREAM] = scanner.tokenize(); |
outputs[LINE_INFO] = new LineInfo(scanner.lineStarts); |
- outputs[SCAN_ERRORS] = removeDuplicateErrors(errorListener.errors); |
+ outputs[SCAN_ERRORS] = getUniqueErrors(errorListener.errors); |
} else { |
throw new AnalysisException( |
'Cannot scan Dart code from a ${target.runtimeType}'); |
@@ -5020,7 +5029,7 @@ class StrongModeVerifyUnitTask extends SourceBasedAnalysisTask { |
// |
// Record outputs. |
// |
- outputs[STRONG_MODE_ERRORS] = removeDuplicateErrors(errorListener.errors); |
+ outputs[STRONG_MODE_ERRORS] = getUniqueErrors(errorListener.errors); |
outputs[RESOLVED_UNIT] = unit; |
} |
@@ -5115,7 +5124,7 @@ class VerifyUnitTask extends SourceBasedAnalysisTask { |
// |
// Record outputs. |
// |
- outputs[VERIFY_ERRORS] = removeDuplicateErrors(errorListener.errors); |
+ outputs[VERIFY_ERRORS] = getUniqueErrors(errorListener.errors); |
} |
/** |