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

Unified Diff: pkg/front_end/lib/src/fasta/command_line_reporting.dart

Issue 2982093003: Unifying compiler context (Closed)
Patch Set: revert change to kernel-service.dart Created 3 years, 5 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: pkg/front_end/lib/src/fasta/command_line_reporting.dart
diff --git a/pkg/front_end/lib/src/fasta/command_line_reporting.dart b/pkg/front_end/lib/src/fasta/command_line_reporting.dart
index 37cd08d555b36e6645bca5e9a9a19ccc73ffbd49..07f2b6d744231ff71f465836eeb451d965c28a95 100644
--- a/pkg/front_end/lib/src/fasta/command_line_reporting.dart
+++ b/pkg/front_end/lib/src/fasta/command_line_reporting.dart
@@ -34,16 +34,9 @@ const bool hideWarnings = false;
/// command-line tool. This includes source snippets and different colors based
/// on [severity].
///
-/// It is a assumed that a formatted message is reported to a user, so
-/// [exitCode] is also set depending on the value of
-/// `CompilerContext.current.options.setExitCodeOnProblem`.
-///
/// This is shared implementation used by methods below, and isn't intended to
/// be called directly.
String formatInternal(Message message, Severity severity, Uri uri, int offset) {
- if (CompilerContext.current.options.setExitCodeOnProblem) {
- exitCode = 1;
- }
String text =
"${severityName(severity, capitalized: true)}: ${message.message}";
if (message.tip != null) {
@@ -107,16 +100,16 @@ bool isHidden(Severity severity) {
bool isFatal(Severity severity) {
switch (severity) {
case Severity.error:
- return CompilerContext.current.options.errorsAreFatal;
+ return CompilerContext.current.options.throwOnErrors;
case Severity.internalProblem:
return true;
case Severity.nit:
- return CompilerContext.current.options.nitsAreFatal;
+ return CompilerContext.current.options.throwOnNits;
case Severity.warning:
- return CompilerContext.current.options.warningsAreFatal;
+ return CompilerContext.current.options.throwOnWarnings;
}
return unhandled("$severity", "isFatal", -1, null);
}
@@ -139,11 +132,25 @@ String severityName(Severity severity, {bool capitalized: false}) {
return unhandled("$severity", "severityName", -1, null);
}
+/// Print a formatted message and throw when errors are treated as fatal.
+/// Also set [exitCode] depending on the value of
+/// `CompilerContext.current.options.setExitCodeOnProblem`.
void _printAndThrowIfFatal(
String text, Severity severity, Uri uri, int charOffset) {
+ // I believe we should only set it if we are reporting something, if we are
+ // formatting to embed the error in the program, then we probably don't want
+ // to do it in format.
+ // Note: I also want to limit dependencies to dart:io for when we use the FE
+ // outside of the VM. This default reporting is likely not going to be used in
+ // that context, but the default formatter is.
+ if (CompilerContext.current.options.setExitCodeOnProblem) {
+ exitCode = 1;
+ }
print(text);
if (isFatal(severity)) {
if (isVerbose) print(StackTrace.current);
+ // TODO(sigmund,ahe): ensure there is no circularity when InputError is
+ // handled.
throw new deprecated_InputError(uri, charOffset,
"Compilation aborted due to fatal ${severityName(severity)}.");
}

Powered by Google App Engine
This is Rietveld 408576698