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

Side by Side Diff: pkg/compiler/lib/src/diagnostics/diagnostic_listener.dart

Issue 1864433004: Repeats and fixes the changes landed & reverted as CL 1789553003. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updates to external dependents Created 4 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 unified diff | Download patch
« no previous file with comments | « pkg/compiler/lib/src/compiler.dart ('k') | pkg/compiler/lib/src/mirrors/analyze.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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 dart2js.diagnostic_listener; 5 library dart2js.diagnostic_listener;
6 6
7 import '../options.dart' show
8 DiagnosticOptions;
7 import 'source_span.dart' show 9 import 'source_span.dart' show
8 SourceSpan; 10 SourceSpan;
9 import 'spannable.dart' show 11 import 'spannable.dart' show
10 Spannable; 12 Spannable;
11 import '../elements/elements.dart' show 13 import '../elements/elements.dart' show
12 Element; 14 Element;
13 import 'messages.dart'; 15 import 'messages.dart';
14 16
15 class DiagnosticOptions {
16 /// Emit terse diagnostics without howToFix.
17 final bool terseDiagnostics;
18
19 /// List of packages for which warnings and hints are reported. If `null`,
20 /// no package warnings or hints are reported. If empty, all warnings and
21 /// hints are reported.
22 final List<String> _shownPackageWarnings;
23
24 /// If `true`, warnings are not reported.
25 final bool suppressWarnings;
26
27 /// If `true`, warnings cause the compilation to fail.
28 final bool fatalWarnings;
29
30 /// If `true`, hints are not reported.
31 final bool suppressHints;
32
33 const DiagnosticOptions({
34 this.suppressWarnings: false,
35 this.fatalWarnings: false,
36 this.suppressHints: false,
37 this.terseDiagnostics: false,
38 List<String> shownPackageWarnings: null})
39 : _shownPackageWarnings = shownPackageWarnings;
40
41
42 /// Returns `true` if warnings and hints are shown for all packages.
43 bool get showAllPackageWarnings {
44 return _shownPackageWarnings != null && _shownPackageWarnings.isEmpty;
45 }
46
47 /// Returns `true` if warnings and hints are hidden for all packages.
48 bool get hidePackageWarnings => _shownPackageWarnings == null;
49
50 /// Returns `true` if warnings should be should for [uri].
51 bool showPackageWarningsFor(Uri uri) {
52 if (showAllPackageWarnings) {
53 return true;
54 }
55 if (_shownPackageWarnings != null) {
56 return uri.scheme == 'package' &&
57 _shownPackageWarnings.contains(uri.pathSegments.first);
58 }
59 return false;
60 }
61 }
62
63 // TODO(johnniwinther): Rename and cleanup this interface. Add severity enum. 17 // TODO(johnniwinther): Rename and cleanup this interface. Add severity enum.
64 abstract class DiagnosticReporter { 18 abstract class DiagnosticReporter {
65 DiagnosticOptions get options => const DiagnosticOptions(); 19 DiagnosticOptions get options;
66 20
67 // TODO(karlklose): rename log to something like reportInfo. 21 // TODO(karlklose): rename log to something like reportInfo.
68 void log(message); 22 void log(message);
69 23
70 internalError(Spannable spannable, message); 24 internalError(Spannable spannable, message);
71 25
72 /// Creates a [SourceSpan] for [node] in scope of the current element. 26 /// Creates a [SourceSpan] for [node] in scope of the current element.
73 /// 27 ///
74 /// If [node] is a [Node] or [Token] we assert in checked mode that the 28 /// If [node] is a [Node] or [Token] we assert in checked mode that the
75 /// corresponding tokens can be found within the tokens of the current 29 /// corresponding tokens can be found within the tokens of the current
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 [Map arguments = const {}]); 78 [Map arguments = const {}]);
125 } 79 }
126 80
127 class DiagnosticMessage { 81 class DiagnosticMessage {
128 final SourceSpan sourceSpan; 82 final SourceSpan sourceSpan;
129 final Spannable spannable; 83 final Spannable spannable;
130 final Message message; 84 final Message message;
131 85
132 DiagnosticMessage(this.sourceSpan, this.spannable, this.message); 86 DiagnosticMessage(this.sourceSpan, this.spannable, this.message);
133 } 87 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/compiler.dart ('k') | pkg/compiler/lib/src/mirrors/analyze.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698