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

Unified Diff: pkg/analyzer/lib/src/generated/error.dart

Issue 2060013002: Refactor strong mode to use standard Analyzer errors (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: fix hasImplicitCasts on the CompilationUnit Created 4 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: pkg/analyzer/lib/src/generated/error.dart
diff --git a/pkg/analyzer/lib/src/generated/error.dart b/pkg/analyzer/lib/src/generated/error.dart
index 633243af35e04f2098448e380f96d2cb98d81137..074a6aad2b1ea9e037e9b1e371af055ffb8553ff 100644
--- a/pkg/analyzer/lib/src/generated/error.dart
+++ b/pkg/analyzer/lib/src/generated/error.dart
@@ -2851,6 +2851,24 @@ abstract class ErrorCode {
StaticWarningCode.UNDEFINED_SUPER_SETTER,
StaticWarningCode.VOID_RETURN_FOR_GETTER,
StaticWarningCode.MISSING_ENUM_CONSTANT_IN_SWITCH,
+ StrongModeCode.ASSIGNMENT_CAST,
+ StrongModeCode.DOWN_CAST_COMPOSITE,
+ StrongModeCode.DOWN_CAST_IMPLICIT,
+ StrongModeCode.DYNAMIC_CAST,
+ StrongModeCode.DYNAMIC_INVOKE,
+ StrongModeCode.INFERRED_TYPE,
+ StrongModeCode.INFERRED_TYPE_ALLOCATION,
+ StrongModeCode.INFERRED_TYPE_CLOSURE,
+ StrongModeCode.INFERRED_TYPE_LITERAL,
+ StrongModeCode.INVALID_FIELD_OVERRIDE,
+ StrongModeCode.INVALID_METHOD_OVERRIDE,
+ StrongModeCode.INVALID_METHOD_OVERRIDE_FROM_BASE,
+ StrongModeCode.INVALID_METHOD_OVERRIDE_FROM_MIXIN,
+ StrongModeCode.INVALID_PARAMETER_DECLARATION,
+ StrongModeCode.INVALID_SUPER_INVOCATION,
+ StrongModeCode.NON_GROUND_TYPE_CHECK_INFO,
+ StrongModeCode.STATIC_TYPE_ERROR,
+
TodoCode.TODO,
//
@@ -5807,6 +5825,117 @@ class StaticWarningCode extends ErrorCode {
}
/**
+ * This class has Strong Mode specific error codes.
+ *
+ * These error codes tend to use the same message across different severity
+ * levels, so they are grouped for clarity.
+ *
+ * All of these error codes also use the "STRONG_MODE_" prefix in their name.
+ */
+class StrongModeCode extends ErrorCode {
+ static const String _implicitCastMessage =
+ 'Unsound implicit cast from {0} to {1}';
+
+ static const String _typeCheckMessage =
+ 'Type check failed: {0} is not of type {1}';
+
+ static const String _invalidOverrideMessage =
+ 'The type of {0}.{1} ({2}) is not a '
+ 'subtype of {3}.{1} ({4}).';
+
+ static const String _inferredTypeMessage = '{0} has inferred type {1}';
+
+ static const StrongModeCode DOWN_CAST_COMPOSITE = const StrongModeCode(
+ ErrorType.STATIC_WARNING, 'DOWN_CAST_COMPOSITE', _implicitCastMessage);
+
+ static const StrongModeCode DOWN_CAST_IMPLICIT = const StrongModeCode(
+ ErrorType.HINT, 'DOWN_CAST_IMPLICIT', _implicitCastMessage);
+
+ static const StrongModeCode DYNAMIC_CAST = const StrongModeCode(
+ ErrorType.HINT, 'DYNAMIC_CAST', _implicitCastMessage);
+
+ static const StrongModeCode ASSIGNMENT_CAST = const StrongModeCode(
+ ErrorType.HINT, 'ASSIGNMENT_CAST', _implicitCastMessage);
+
+ static const StrongModeCode INVALID_PARAMETER_DECLARATION =
+ const StrongModeCode(ErrorType.COMPILE_TIME_ERROR,
+ 'INVALID_PARAMETER_DECLARATION', _typeCheckMessage);
+
+ static const StrongModeCode INFERRED_TYPE = const StrongModeCode(
+ ErrorType.HINT, 'INFERRED_TYPE', _inferredTypeMessage);
+
+ static const StrongModeCode INFERRED_TYPE_LITERAL = const StrongModeCode(
+ ErrorType.HINT, 'INFERRED_TYPE_LITERAL', _inferredTypeMessage);
+
+ static const StrongModeCode INFERRED_TYPE_ALLOCATION = const StrongModeCode(
+ ErrorType.HINT, 'INFERRED_TYPE_ALLOCATION', _inferredTypeMessage);
+
+ static const StrongModeCode INFERRED_TYPE_CLOSURE = const StrongModeCode(
+ ErrorType.HINT, 'INFERRED_TYPE_CLOSURE', _inferredTypeMessage);
+
+ static const StrongModeCode STATIC_TYPE_ERROR = const StrongModeCode(
+ ErrorType.COMPILE_TIME_ERROR,
+ 'STATIC_TYPE_ERROR',
+ 'Type check failed: {0} ({1}) is not of type {2}');
+
+ static const StrongModeCode INVALID_SUPER_INVOCATION = const StrongModeCode(
+ ErrorType.COMPILE_TIME_ERROR,
+ 'INVALID_SUPER_INVOCATION',
+ "super call must be last in an initializer "
+ "list (see https://goo.gl/EY6hDP): {0}");
+
+ static const StrongModeCode NON_GROUND_TYPE_CHECK_INFO = const StrongModeCode(
+ ErrorType.HINT,
+ 'NON_GROUND_TYPE_CHECK_INFO',
+ "Runtime check on non-ground type {0} may throw StrongModeError");
+
+ static const StrongModeCode DYNAMIC_INVOKE = const StrongModeCode(
+ ErrorType.HINT, 'DYNAMIC_INVOKE', '{0} requires a dynamic invoke');
+
+ static const StrongModeCode INVALID_METHOD_OVERRIDE = const StrongModeCode(
+ ErrorType.COMPILE_TIME_ERROR,
+ 'INVALID_METHOD_OVERRIDE',
+ 'Invalid override. $_invalidOverrideMessage');
+
+ static const StrongModeCode INVALID_METHOD_OVERRIDE_FROM_BASE =
+ const StrongModeCode(
+ ErrorType.COMPILE_TIME_ERROR,
+ 'INVALID_METHOD_OVERRIDE_FROM_BASE',
+ 'Base class introduces an invalid override. '
+ '$_invalidOverrideMessage');
+
+ static const StrongModeCode INVALID_METHOD_OVERRIDE_FROM_MIXIN =
+ const StrongModeCode(
+ ErrorType.COMPILE_TIME_ERROR,
+ 'INVALID_METHOD_OVERRIDE_FROM_MIXIN',
+ 'Mixin introduces an invalid override. $_invalidOverrideMessage');
+
+ static const StrongModeCode INVALID_FIELD_OVERRIDE = const StrongModeCode(
+ ErrorType.COMPILE_TIME_ERROR,
+ 'INVALID_FIELD_OVERRIDE',
+ 'Field declaration {3}.{1} cannot be '
+ 'overridden in {0}.');
+
+ @override
+ final ErrorType type;
+
+ /**
+ * Initialize a newly created error code to have the given [type] and [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 optional [correction] template.
+ */
+ const StrongModeCode(ErrorType type, String name, String message,
+ [String correction])
+ : type = type,
+ super('STRONG_MODE_$name', message, correction);
+
+ @override
+ ErrorSeverity get errorSeverity => type.severity;
+}
+
+/**
* The error code indicating a marker in code for work that needs to be finished
* or revisited.
*/
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/error_verifier.dart » ('j') | pkg/analyzer/lib/src/generated/type_system.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698