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

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

Issue 2974203002: Remove prefixes from messages and document why. (Closed)
Patch Set: 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/problems.dart
diff --git a/pkg/front_end/lib/src/fasta/problems.dart b/pkg/front_end/lib/src/fasta/problems.dart
index 891c57028cba53d62b8a8deb2c53ec2aa06b6693..4a3098bf291864dc05fa1b69073d0b358a11d589 100644
--- a/pkg/front_end/lib/src/fasta/problems.dart
+++ b/pkg/front_end/lib/src/fasta/problems.dart
@@ -8,42 +8,56 @@ import 'messages.dart'
show
Message,
deprecated_format,
- templateUnexpected,
- templateUnhandled,
- templateUnimplemented,
- templateUnsupported;
+ templateInternalProblemUnexpected,
+ templateInternalProblemUnhandled,
+ templateInternalProblemUnimplemented,
+ templateInternalProblemUnsupported;
/// Used to report an internal error.
///
/// Internal errors should be avoided as best as possible, but are preferred
-/// over assertion failures. The message should start with "Internal error:"
+/// over assertion failures. The message should start with an upper-case letter
/// and contain a short description that may help a developer debug the issue.
/// This method should be called instead of using `throw`, as this allows us to
/// ensure that there are no throws anywhere else in the codebase.
+///
+/// Before printing the message, the string `"Internal error: "` is prepended.
dynamic internalProblem(Message message, int charOffset, Uri uri) {
+ String text = "Internal error: ${message.message}";
+ if (message.tip != null) {
+ text += "\n${message.tip}";
+ }
if (uri == null && charOffset == -1) {
- throw message.message;
+ throw text;
} else {
- throw deprecated_format(uri, charOffset, message.message);
+ throw deprecated_format(uri, charOffset, text);
}
}
dynamic unimplemented(String what, int charOffset, Uri uri) {
return internalProblem(
- templateUnimplemented.withArguments(what), charOffset, uri);
+ templateInternalProblemUnimplemented.withArguments(what),
+ charOffset,
+ uri);
}
dynamic unhandled(String what, String where, int charOffset, Uri uri) {
return internalProblem(
- templateUnhandled.withArguments(what, where), charOffset, uri);
+ templateInternalProblemUnhandled.withArguments(what, where),
+ charOffset,
+ uri);
}
dynamic unexpected(String expected, String actual, int charOffset, Uri uri) {
return internalProblem(
- templateUnexpected.withArguments(expected, actual), charOffset, uri);
+ templateInternalProblemUnexpected.withArguments(expected, actual),
+ charOffset,
+ uri);
}
dynamic unsupported(String operation, int charOffset, Uri uri) {
return internalProblem(
- templateUnsupported.withArguments(operation), charOffset, uri);
+ templateInternalProblemUnsupported.withArguments(operation),
+ charOffset,
+ uri);
}

Powered by Google App Engine
This is Rietveld 408576698