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

Unified Diff: pkg/analyzer_cli/lib/src/analyzer_impl.dart

Issue 2793813002: Fix an issue with duplicate reported analysis errors. (Closed)
Patch Set: Merge branch 'master' into fix_duplicate_errors Created 3 years, 8 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
« no previous file with comments | « no previous file | pkg/analyzer_cli/lib/src/build_mode.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer_cli/lib/src/analyzer_impl.dart
diff --git a/pkg/analyzer_cli/lib/src/analyzer_impl.dart b/pkg/analyzer_cli/lib/src/analyzer_impl.dart
index 1aab902511411e5887b91b63c8e50269e056259a..90a94d9b55ff21a4ca219b23182f7f29fe2e4122 100644
--- a/pkg/analyzer_cli/lib/src/analyzer_impl.dart
+++ b/pkg/analyzer_cli/lib/src/analyzer_impl.dart
@@ -66,13 +66,13 @@ class AnalyzerImpl {
/// Returns the maximal [ErrorSeverity] of the recorded errors.
ErrorSeverity get maxErrorSeverity {
- var status = ErrorSeverity.NONE;
+ ErrorSeverity status = ErrorSeverity.NONE;
for (AnalysisErrorInfo errorInfo in errorInfos) {
for (AnalysisError error in errorInfo.errors) {
- if (_processError(error) == null) {
+ if (_defaultSeverityProcessor(error) == null) {
continue;
}
- var severity = computeSeverity(error, options);
+ ErrorSeverity severity = computeSeverity(error, options);
status = status.max(severity);
}
}
@@ -118,9 +118,10 @@ class AnalyzerImpl {
/// information is printed. If [printMode] is `1`, then errors will be printed.
/// If [printMode] is `2`, then performance information will be printed, and
/// it will be marked as being for a cold VM.
- Future<ErrorSeverity> analyze({int printMode: 1}) async {
+ Future<ErrorSeverity> analyze(ErrorFormatter formatter,
+ {int printMode: 1}) async {
setupForAnalysis();
- return await _analyze(printMode);
+ return await _analyze(printMode, formatter);
}
/// Fills [errorInfos] using [sources].
@@ -160,7 +161,8 @@ class AnalyzerImpl {
}
}
- Future<ErrorSeverity> _analyze(int printMode) async {
+ Future<ErrorSeverity> _analyze(
+ int printMode, ErrorFormatter formatter) async {
// Don't try to analyze parts.
String path = librarySource.fullName;
SourceKind librarySourceKind = analysisDriver != null
@@ -178,7 +180,7 @@ class AnalyzerImpl {
// Print errors and performance numbers.
if (printMode == 1) {
- _printErrors();
+ formatter.formatErrors(errorInfos);
} else if (printMode == 2) {
_printColdPerf();
}
@@ -240,23 +242,8 @@ class AnalyzerImpl {
outSink.writeln("total-cold:$totalTime");
}
- void _printErrors() {
- // The following is a hack. We currently print out to stderr to ensure that
- // when in batch mode we print to stderr, this is because the prints from
- // batch are made to stderr. The reason that options.shouldBatch isn't used
- // is because when the argument flags are constructed in BatchRunner and
- // passed in from batch mode which removes the batch flag to prevent the
- // "cannot have the batch flag and source file" error message.
- StringSink sink = options.machineFormat ? errorSink : outSink;
-
- // Print errors.
- ErrorFormatter formatter =
- new ErrorFormatter(sink, options, stats, _processError);
- formatter.formatErrors(errorInfos);
- }
-
- ProcessedSeverity _processError(AnalysisError error) =>
- processError(error, options, analysisOptions);
+ ProcessedSeverity _defaultSeverityProcessor(AnalysisError error) =>
+ determineProcessedSeverity(error, options, analysisOptions);
Future<LibraryElement> _resolveLibrary() async {
PerformanceTag previous = _resolveLibraryTag.makeCurrent();
« no previous file with comments | « no previous file | pkg/analyzer_cli/lib/src/build_mode.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698