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

Side by Side Diff: pkg/analyzer_cli/lib/src/error_severity.dart

Issue 2704103002: Some improvements to the command-line analyzer's output. (Closed)
Patch Set: Created 3 years, 10 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 import 'package:analyzer/error/error.dart';
6 import 'package:analyzer/source/error_processor.dart';
7 import 'package:analyzer/src/error/codes.dart';
8 import 'package:analyzer/src/generated/engine.dart' hide AnalysisResult;
9
10 import 'error_formatter.dart';
11 import 'options.dart';
12
13 /// Check various configuration options to get a desired severity for this
14 /// [error] (or `null` if it's to be suppressed).
15 ProcessedSeverity processError(AnalysisError error,
16 CommandLineOptions commandLineOptions, AnalysisOptions analysisOptions) {
17 ErrorSeverity severity = computeSeverity(error, commandLineOptions,
18 analysisOptions: analysisOptions);
19 bool isOverridden = false;
20
21 // Skip TODOs categorically (unless escalated to ERROR or HINT.)
22 // https://github.com/dart-lang/sdk/issues/26215
Brian Wilkerson 2017/02/19 22:52:17 nit: please indent internal comments so that they
devoncarew 2017/02/21 04:30:47 updated. This happened via copy and paste; strange
23 if (error.errorCode.type == ErrorType.TODO &&
24 severity == ErrorSeverity.INFO) {
25 return null;
26 }
27
28 // First check for a filter.
29 if (severity == null) {
30 // Null severity means the error has been explicitly ignored.
31 return null;
32 } else {
33 isOverridden = true;
34 }
35
36 // If not overridden, some "natural" severities get globally filtered.
37 if (!isOverridden) {
38 // Check for global hint filtering.
39 if (severity == ErrorSeverity.INFO && commandLineOptions.disableHints) {
40 return null;
41 }
42 }
43
44 return new ProcessedSeverity(severity, isOverridden);
45 }
46
47 /// Compute the severity of the error; however:
48 /// - if [options.enableTypeChecks] is false, then de-escalate checked-mode
49 /// compile time errors to a severity of [ErrorSeverity.INFO].
50 /// - if [options.hintsAreFatal] is true, escalate hints to errors.
51 /// - if [options.lintsAreFatal] is true, escalate lints to errors.
52 ErrorSeverity computeSeverity(
53 AnalysisError error, CommandLineOptions commandLineOptions,
54 {AnalysisOptions analysisOptions}) {
55 if (analysisOptions != null) {
56 ErrorProcessor processor =
57 ErrorProcessor.getProcessor(analysisOptions, error);
58 // If there is a processor for this error, defer to it.
59 if (processor != null) {
60 return processor.severity;
61 }
62 }
63
64 if (!commandLineOptions.enableTypeChecks &&
65 error.errorCode.type == ErrorType.CHECKED_MODE_COMPILE_TIME_ERROR) {
66 return ErrorSeverity.INFO;
67 } else if (commandLineOptions.hintsAreFatal && error.errorCode is HintCode) {
68 return ErrorSeverity.ERROR;
69 } else if (commandLineOptions.lintsAreFatal && error.errorCode is LintCode) {
70 return ErrorSeverity.ERROR;
71 }
72 return error.errorCode.errorSeverity;
73 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698