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

Unified Diff: dart/sdk/lib/_internal/compiler/implementation/source_file_provider.dart

Issue 17588005: Warn about overriding operator== but not hashCode. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Update comments (according to my dictionary whitelist is a word). Created 7 years, 6 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
Index: dart/sdk/lib/_internal/compiler/implementation/source_file_provider.dart
diff --git a/dart/sdk/lib/_internal/compiler/implementation/source_file_provider.dart b/dart/sdk/lib/_internal/compiler/implementation/source_file_provider.dart
index 9916c985d617290964d59ce2ebc6356e8390e0b2..b99053279c4c4bb8c9117551c13ad7442362f9bb 100644
--- a/dart/sdk/lib/_internal/compiler/implementation/source_file_provider.dart
+++ b/dart/sdk/lib/_internal/compiler/implementation/source_file_provider.dart
@@ -53,10 +53,12 @@ class SourceFileProvider {
class FormattingDiagnosticHandler {
final SourceFileProvider provider;
bool showWarnings = true;
+ bool showHints = true;
bool verbose = false;
bool isAborting = false;
bool enableColors = false;
bool throwOnError = false;
+ api.Diagnostic lastKind = null;
final int FATAL = api.Diagnostic.CRASH.ordinal | api.Diagnostic.ERROR.ordinal;
final int INFO =
@@ -67,7 +69,7 @@ class FormattingDiagnosticHandler {
(provider == null) ? new SourceFileProvider() : provider;
void info(var message, [api.Diagnostic kind = api.Diagnostic.VERBOSE_INFO]) {
- if (!verbose && identical(kind, api.Diagnostic.VERBOSE_INFO)) return;
+ if (!verbose && kind == api.Diagnostic.VERBOSE_INFO) return;
if (enableColors) {
print('${colors.green("info:")} $message');
} else {
@@ -81,33 +83,45 @@ class FormattingDiagnosticHandler {
if (identical(kind.name, 'source map')) return;
if (isAborting) return;
- isAborting = identical(kind, api.Diagnostic.CRASH);
+ isAborting = (kind == api.Diagnostic.CRASH);
bool fatal = (kind.ordinal & FATAL) != 0;
bool isInfo = (kind.ordinal & INFO) != 0;
- if (isInfo && uri == null && !identical(kind, api.Diagnostic.INFO)) {
+ if (isInfo && uri == null && kind != api.Diagnostic.INFO) {
info(message, kind);
return;
}
+ // [previousKind]/[lastKind] records the previous non-INFO kind we saw.
+ // This is used to suppress info about a warning when warnings are
+ // suppressed, and similar for hints.
+ var previousKind = lastKind;
+ if (previousKind != api.Diagnostic.INFO) {
+ lastKind = kind;
+ }
var color;
- if (!enableColors) {
- color = (x) => x;
- } else if (identical(kind, api.Diagnostic.ERROR)) {
+ if (kind == api.Diagnostic.ERROR) {
color = colors.red;
- } else if (identical(kind, api.Diagnostic.WARNING)) {
- color = colors.magenta;
- } else if (identical(kind, api.Diagnostic.LINT)) {
+ } else if (kind == api.Diagnostic.WARNING) {
+ if (!showWarnings) return;
color = colors.magenta;
- } else if (identical(kind, api.Diagnostic.CRASH)) {
+ } else if (kind == api.Diagnostic.HINT) {
+ if (!showHints) return;
+ color = colors.cyan;
+ } else if (kind == api.Diagnostic.CRASH) {
color = colors.red;
- } else if (identical(kind, api.Diagnostic.INFO)) {
+ } else if (kind == api.Diagnostic.INFO) {
+ if (lastKind == api.Diagnostic.WARNING && !showWarnings) return;
+ if (lastKind == api.Diagnostic.HINT && !showHints) return;
color = colors.green;
} else {
throw 'Unknown kind: $kind (${kind.ordinal})';
}
+ if (!enableColors) {
+ color = (x) => x;
+ }
if (uri == null) {
assert(fatal);
print(color(message));
- } else if (fatal || showWarnings) {
+ } else {
SourceFile file = provider.sourceFiles[uri.toString()];
if (file == null) {
throw '$uri: file is null';

Powered by Google App Engine
This is Rietveld 408576698