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

Unified Diff: pkg/front_end/lib/src/scanner/errors.dart

Issue 2486923007: Create pkg/front_end/src/base and begin populating with general use classes. (Closed)
Patch Set: Fix formatting Created 4 years, 1 month 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
« no previous file with comments | « pkg/front_end/lib/src/base/uri_kind.dart ('k') | pkg/front_end/lib/src/scanner/syntactic_entity.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/front_end/lib/src/scanner/errors.dart
diff --git a/pkg/front_end/lib/src/scanner/errors.dart b/pkg/front_end/lib/src/scanner/errors.dart
index e5f66def1546d0a4d031edf0d72301342d6f9e05..bcf0c56585f52f7fcf62353e86605a15427dc998 100644
--- a/pkg/front_end/lib/src/scanner/errors.dart
+++ b/pkg/front_end/lib/src/scanner/errors.dart
@@ -2,284 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-/**
- * An error code associated with an [AnalysisError].
- *
- * Generally, we want to provide messages that consist of three sentences. From
- * the user's perspective these sentences should explain:
- *
- * 1. what is wrong,
- * 2. why is it wrong, and
- * 3. how do I fix it.
- *
- * However, we combine the first two in the [message] and the last in the
- * [correction].
- *
- * When composing messages (including correction messages) keep the following
- * guidelines in mind.
- *
- * 1. The message should be a complete sentence starting with an uppercase
- * letter, and ending with a period.
- *
- * 2. Reserved words and embedded identifiers should be in single quotes, so
- * prefer double quotes for the complete message. For example,
- * ```
- * "The class '{0}' can't use 'super'."
- * ```
- * Notice that the word 'class' in the preceding message is not quoted as it
- * refers to the concept 'class', not the reserved word. On the other hand,
- * 'super' refers to the reserved word. Do not quote 'null' and numeric literals.
- *
- * 3. Do not try to compose messages, as it can make translating them hard.
- *
- * 4. Try to keep the error messages short, but informative.
- *
- * 5. Use simple words and terminology, assume the reader of the message doesn't
- * have an advanced degree in math, and that English is not the reader's native
- * language. Do not assume any formal computer science training. For example, do
- * not use Latin abbreviations (prefer "that is" over "i.e.", and "for example"
- * over "e.g."). Also avoid phrases such as "if and only if" and "iff"; that
- * level of precision is unnecessary.
- *
- * 6. Prefer contractions when they are in common use, for example, prefer
- * "can't" over "cannot". Using "cannot", "must not", "shall not", etc. is
- * off-putting to people new to programming.
- *
- * 7. Use common terminology, preferably from the Dart Language Specification.
- * This increases the user's chance of finding a good explanation on the web.
- *
- * 8. Do not try to be cute or funny. It is extremely frustrating to work on a
- * product that crashes with a "tongue-in-cheek" message, especially if you did
- * not want to use this product to begin with.
- *
- * 9. Do not lie, that is, do not write error messages containing phrases like
- * "can't happen". If the user ever saw this message, it would be a lie. Prefer
- * messages like: "Internal error: This function should not be called when 'x'
- * is null.".
- *
- * 10. Prefer to not use the imperative tone. That is, the message should not
- * sound accusing or like it is ordering the user around. The computer should
- * describe the problem, not criticize the user for violating the specification.
- */
-abstract class ErrorCode {
- /**
- * The name of the error code.
- */
- final String name;
-
- /**
- * The template used to create the message to be displayed for this error. The
- * message should indicate what is wrong and why it is wrong.
- */
- final String message;
-
- /**
- * The template used to create the correction to be displayed for this error,
- * or `null` if there is no correction information for this error. The
- * correction should indicate how the user can fix the error.
- */
- final String correction;
-
- /**
- * Initialize a newly created error code to have the given [name]. The message
- * associated with the error will be created from the given [message]
- * template. The correction associated with the error will be created from the
- * given [correction] template.
- */
- const ErrorCode(this.name, this.message, [this.correction]);
-
- /**
- * The severity of the error.
- */
- ErrorSeverity get errorSeverity;
-
- /**
- * The type of the error.
- */
- ErrorType get type;
-
- /**
- * The unique name of this error code.
- */
- String get uniqueName => "$runtimeType.$name";
-
- @override
- String toString() => uniqueName;
-}
-
-/**
- * The severity of an [ErrorCode].
- */
-class ErrorSeverity implements Comparable<ErrorSeverity> {
- /**
- * The severity representing a non-error. This is never used for any error
- * code, but is useful for clients.
- */
- static const ErrorSeverity NONE = const ErrorSeverity('NONE', 0, " ", "none");
-
- /**
- * The severity representing an informational level analysis issue.
- */
- static const ErrorSeverity INFO = const ErrorSeverity('INFO', 1, "I", "info");
-
- /**
- * The severity representing a warning. Warnings can become errors if the `-Werror` command
- * line flag is specified.
- */
- static const ErrorSeverity WARNING =
- const ErrorSeverity('WARNING', 2, "W", "warning");
-
- /**
- * The severity representing an error.
- */
- static const ErrorSeverity ERROR =
- const ErrorSeverity('ERROR', 3, "E", "error");
-
- static const List<ErrorSeverity> values = const [NONE, INFO, WARNING, ERROR];
-
- /**
- * The name of this error code.
- */
- final String name;
-
- /**
- * The ordinal value of the error code.
- */
- final int ordinal;
-
- /**
- * The name of the severity used when producing machine output.
- */
- final String machineCode;
-
- /**
- * The name of the severity used when producing readable output.
- */
- final String displayName;
-
- /**
- * Initialize a newly created severity with the given names.
- */
- const ErrorSeverity(
- this.name, this.ordinal, this.machineCode, this.displayName);
-
- @override
- int get hashCode => ordinal;
-
- @override
- int compareTo(ErrorSeverity other) => ordinal - other.ordinal;
-
- /**
- * Return the severity constant that represents the greatest severity.
- */
- ErrorSeverity max(ErrorSeverity severity) =>
- this.ordinal >= severity.ordinal ? this : severity;
-
- @override
- String toString() => name;
-}
-
-/**
- * The type of an [ErrorCode].
- */
-class ErrorType implements Comparable<ErrorType> {
- /**
- * Task (todo) comments in user code.
- */
- static const ErrorType TODO = const ErrorType('TODO', 0, ErrorSeverity.INFO);
-
- /**
- * Extra analysis run over the code to follow best practices, which are not in
- * the Dart Language Specification.
- */
- static const ErrorType HINT = const ErrorType('HINT', 1, ErrorSeverity.INFO);
-
- /**
- * Compile-time errors are errors that preclude execution. A compile time
- * error must be reported by a Dart compiler before the erroneous code is
- * executed.
- */
- static const ErrorType COMPILE_TIME_ERROR =
- const ErrorType('COMPILE_TIME_ERROR', 2, ErrorSeverity.ERROR);
-
- /**
- * Checked mode compile-time errors are errors that preclude execution in
- * checked mode.
- */
- static const ErrorType CHECKED_MODE_COMPILE_TIME_ERROR = const ErrorType(
- 'CHECKED_MODE_COMPILE_TIME_ERROR', 3, ErrorSeverity.ERROR);
-
- /**
- * Static warnings are those warnings reported by the static checker. They
- * have no effect on execution. Static warnings must be provided by Dart
- * compilers used during development.
- */
- static const ErrorType STATIC_WARNING =
- const ErrorType('STATIC_WARNING', 4, ErrorSeverity.WARNING);
-
- /**
- * Many, but not all, static warnings relate to types, in which case they are
- * known as static type warnings.
- */
- static const ErrorType STATIC_TYPE_WARNING =
- const ErrorType('STATIC_TYPE_WARNING', 5, ErrorSeverity.WARNING);
-
- /**
- * Syntactic errors are errors produced as a result of input that does not
- * conform to the grammar.
- */
- static const ErrorType SYNTACTIC_ERROR =
- const ErrorType('SYNTACTIC_ERROR', 6, ErrorSeverity.ERROR);
-
- /**
- * Lint warnings describe style and best practice recommendations that can be
- * used to formalize a project's style guidelines.
- */
- static const ErrorType LINT = const ErrorType('LINT', 7, ErrorSeverity.INFO);
-
- static const List<ErrorType> values = const [
- TODO,
- HINT,
- COMPILE_TIME_ERROR,
- CHECKED_MODE_COMPILE_TIME_ERROR,
- STATIC_WARNING,
- STATIC_TYPE_WARNING,
- SYNTACTIC_ERROR,
- LINT
- ];
-
- /**
- * The name of this error type.
- */
- final String name;
-
- /**
- * The ordinal value of the error type.
- */
- final int ordinal;
-
- /**
- * The severity of this type of error.
- */
- final ErrorSeverity severity;
-
- /**
- * Initialize a newly created error type to have the given [name] and
- * [severity].
- */
- const ErrorType(this.name, this.ordinal, this.severity);
-
- String get displayName => name.toLowerCase().replaceAll('_', ' ');
-
- @override
- int get hashCode => ordinal;
-
- @override
- int compareTo(ErrorType other) => ordinal - other.ordinal;
-
- @override
- String toString() => name;
-}
+import 'package:front_end/src/base/errors.dart';
/**
* The error codes used for errors detected by the scanner.
« no previous file with comments | « pkg/front_end/lib/src/base/uri_kind.dart ('k') | pkg/front_end/lib/src/scanner/syntactic_entity.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698