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

Side by Side Diff: lib/src/analyzer_impl.dart

Issue 1382023002: Support for --fatal-hints. (Closed) Base URL: https://github.com/dart-lang/analyzer_cli.git@master
Patch Set: Created 5 years, 2 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
« no previous file with comments | « no previous file | lib/src/error_formatter.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library analyzer_cli.src.analyzer_impl; 5 library analyzer_cli.src.analyzer_impl;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 import 'dart:io'; 8 import 'dart:io';
9 9
10 import 'package:analyzer/src/generated/element.dart'; 10 import 'package:analyzer/src/generated/element.dart';
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 this.options, this.startTime); 58 this.options, this.startTime);
59 59
60 /// Returns the maximal [ErrorSeverity] of the recorded errors. 60 /// Returns the maximal [ErrorSeverity] of the recorded errors.
61 ErrorSeverity get maxErrorSeverity { 61 ErrorSeverity get maxErrorSeverity {
62 var status = ErrorSeverity.NONE; 62 var status = ErrorSeverity.NONE;
63 for (AnalysisErrorInfo errorInfo in errorInfos) { 63 for (AnalysisErrorInfo errorInfo in errorInfos) {
64 for (AnalysisError error in errorInfo.errors) { 64 for (AnalysisError error in errorInfo.errors) {
65 if (!_isDesiredError(error)) { 65 if (!_isDesiredError(error)) {
66 continue; 66 continue;
67 } 67 }
68 var severity = computeSeverity(error, options.enableTypeChecks); 68 var severity = computeSeverity(error, options);
69 status = status.max(severity); 69 status = status.max(severity);
70 } 70 }
71 } 71 }
72 return status; 72 return status;
73 } 73 }
74 74
75 void addCompilationUnitSource(CompilationUnitElement unit, 75 void addCompilationUnitSource(CompilationUnitElement unit,
76 Set<LibraryElement> libraries, Set<CompilationUnitElement> units) { 76 Set<LibraryElement> libraries, Set<CompilationUnitElement> units) {
77 if (unit == null || units.contains(unit)) { 77 if (unit == null || units.contains(unit)) {
78 return; 78 return;
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 if (status == ErrorSeverity.WARNING && options.warningsAreFatal) { 183 if (status == ErrorSeverity.WARNING && options.warningsAreFatal) {
184 status = ErrorSeverity.ERROR; 184 status = ErrorSeverity.ERROR;
185 } 185 }
186 return status; 186 return status;
187 } 187 }
188 188
189 bool _isDesiredError(AnalysisError error) { 189 bool _isDesiredError(AnalysisError error) {
190 if (error.errorCode.type == ErrorType.TODO) { 190 if (error.errorCode.type == ErrorType.TODO) {
191 return false; 191 return false;
192 } 192 }
193 if (computeSeverity(error, options.enableTypeChecks) == 193 if (computeSeverity(error, options) ==
194 ErrorSeverity.INFO && 194 ErrorSeverity.INFO &&
195 options.disableHints) { 195 options.disableHints) {
196 return false; 196 return false;
197 } 197 }
198 return true; 198 return true;
199 } 199 }
200 200
201 /// Determine whether the given URI refers to a package other than the package 201 /// Determine whether the given URI refers to a package other than the package
202 /// being analyzed. 202 /// being analyzed.
203 bool _isOtherPackage(Uri uri) { 203 bool _isOtherPackage(Uri uri) {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 // passed in from batch mode which removes the batch flag to prevent the 235 // passed in from batch mode which removes the batch flag to prevent the
236 // "cannot have the batch flag and source file" error message. 236 // "cannot have the batch flag and source file" error message.
237 StringSink sink = options.machineFormat ? errorSink : outSink; 237 StringSink sink = options.machineFormat ? errorSink : outSink;
238 238
239 // Print errors. 239 // Print errors.
240 ErrorFormatter formatter = 240 ErrorFormatter formatter =
241 new ErrorFormatter(sink, options, _isDesiredError); 241 new ErrorFormatter(sink, options, _isDesiredError);
242 formatter.formatErrors(errorInfos); 242 formatter.formatErrors(errorInfos);
243 } 243 }
244 244
245 /// Compute the severity of the error; however, if 245 /// Compute the severity of the error; however:
246 /// [enableTypeChecks] is false, then de-escalate checked-mode compile time 246 /// * if [options.enableTypeChecks] is false, then de-escalate checked-mode
247 /// errors to a severity of [ErrorSeverity.INFO]. 247 /// compile time errors to a severity of [ErrorSeverity.INFO].
248 /// * if [options.hintsAreFatal] is true, escalate hints to errors.
248 static ErrorSeverity computeSeverity( 249 static ErrorSeverity computeSeverity(
249 AnalysisError error, bool enableTypeChecks) { 250 AnalysisError error, CommandLineOptions options) {
250 if (!enableTypeChecks && 251 if (!options.enableTypeChecks &&
251 error.errorCode.type == ErrorType.CHECKED_MODE_COMPILE_TIME_ERROR) { 252 error.errorCode.type == ErrorType.CHECKED_MODE_COMPILE_TIME_ERROR) {
252 return ErrorSeverity.INFO; 253 return ErrorSeverity.INFO;
253 } 254 }
255 if (options.hintsAreFatal && error.errorCode is HintCode) {
256 return ErrorSeverity.ERROR;
257 }
254 return error.errorCode.errorSeverity; 258 return error.errorCode.errorSeverity;
255 } 259 }
256 260
257 /// Return the corresponding package directory or `null` if none is found. 261 /// Return the corresponding package directory or `null` if none is found.
258 static JavaFile getPackageDirectoryFor(JavaFile sourceFile) { 262 static JavaFile getPackageDirectoryFor(JavaFile sourceFile) {
259 // We are going to ask parent file, so get absolute path. 263 // We are going to ask parent file, so get absolute path.
260 sourceFile = sourceFile.getAbsoluteFile(); 264 sourceFile = sourceFile.getAbsoluteFile();
261 // Look in the containing directories. 265 // Look in the containing directories.
262 JavaFile dir = sourceFile.getParentFile(); 266 JavaFile dir = sourceFile.getParentFile();
263 while (dir != null) { 267 while (dir != null) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 } 306 }
303 307
304 @override 308 @override
305 void logInformation2(String message, Object exception) { 309 void logInformation2(String message, Object exception) {
306 outSink.writeln(message); 310 outSink.writeln(message);
307 if (exception != null) { 311 if (exception != null) {
308 outSink.writeln(exception.toString()); 312 outSink.writeln(exception.toString());
309 } 313 }
310 } 314 }
311 } 315 }
OLDNEW
« no previous file with comments | « no previous file | lib/src/error_formatter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698