| Index: pkg/analyzer/lib/src/error/codes.dart
|
| diff --git a/pkg/analyzer/lib/src/error/codes.dart b/pkg/analyzer/lib/src/error/codes.dart
|
| index 140c658195222779456fe4f95f7236a2f73089e4..48702e6b268fba3c33cbb677c3664a9379ec106f 100644
|
| --- a/pkg/analyzer/lib/src/error/codes.dart
|
| +++ b/pkg/analyzer/lib/src/error/codes.dart
|
| @@ -4651,10 +4651,12 @@ class StaticWarningCode extends ErrorCode {
|
| */
|
| class StrongModeCode extends ErrorCode {
|
| static const String _implicitCastMessage =
|
| - "Unsound implicit cast from '{0}' to '{1}'.";
|
| + "Unsafe implicit cast from '{0}' to '{1}'. "
|
| + "This usually indicates that type information was lost and resulted in "
|
| + "'dynamic' and/or a place that will have a failure at runtime.";
|
|
|
| static const String _implicitCastCorrection =
|
| - "Try adding an explicit cast to '{1}'.";
|
| + "Try adding an explicit cast to '{1}' or improving the type of '{0}'.";
|
|
|
| static const String _invalidOverrideMessage =
|
| "The type of '{0}.{1}' ('{2}') isn't a subtype of '{3}.{1}' ('{4}').";
|
| @@ -4725,10 +4727,50 @@ class StrongModeCode extends ErrorCode {
|
| static const StrongModeCode INFERRED_TYPE_CLOSURE = const StrongModeCode(
|
| ErrorType.HINT, 'INFERRED_TYPE_CLOSURE', _inferredTypeMessage);
|
|
|
| - static const StrongModeCode STATIC_TYPE_ERROR = const StrongModeCode(
|
| + static const StrongModeCode INVALID_CAST_LITERAL = const StrongModeCode(
|
| ErrorType.COMPILE_TIME_ERROR,
|
| - 'STATIC_TYPE_ERROR',
|
| - "Type check failed: '{0}' ('{1}') isn't of type '{2}'.");
|
| + 'INVALID_CAST_LITERAL',
|
| + "The literal '{0}' with type '{1}' isn't of expected type '{2}'.");
|
| +
|
| + static const StrongModeCode INVALID_CAST_LITERAL_LIST = const StrongModeCode(
|
| + ErrorType.COMPILE_TIME_ERROR,
|
| + 'INVALID_CAST_LITERAL_LIST',
|
| + "The list literal type '{0}' isn't of expected type '{1}'. The list's "
|
| + "type can be changed with an explicit generic type argument or by "
|
| + "changing the element types.");
|
| +
|
| + static const StrongModeCode INVALID_CAST_LITERAL_MAP = const StrongModeCode(
|
| + ErrorType.COMPILE_TIME_ERROR,
|
| + 'INVALID_CAST_LITERAL_MAP',
|
| + "The map literal type '{0}' isn't of expected type '{1}'. The maps's "
|
| + "type can be changed with an explicit generic type arguments or by "
|
| + "changing the key and value types.");
|
| +
|
| + static const StrongModeCode INVALID_CAST_FUNCTION_EXPR = const StrongModeCode(
|
| + ErrorType.COMPILE_TIME_ERROR,
|
| + 'INVALID_CAST_FUNCTION_EXPR',
|
| + "The function expression type '{0}' isn't of type '{1}'. "
|
| + "This means its parameter or return type does not match what is "
|
| + "expected. Consider changing parameter type(s) or the returned type(s).");
|
| +
|
| + static const StrongModeCode INVALID_CAST_NEW_EXPR = const StrongModeCode(
|
| + ErrorType.COMPILE_TIME_ERROR,
|
| + 'INVALID_CAST_NEW_EXPR',
|
| + "The constructor returns type '{0}' that isn't of expected type '{1}'.");
|
| +
|
| + static const StrongModeCode INVALID_CAST_METHOD = const StrongModeCode(
|
| + ErrorType.COMPILE_TIME_ERROR,
|
| + 'INVALID_CAST_METHOD',
|
| + "The method tear-off '{0}' has type '{1}' that isn't of expected type "
|
| + "'{2}'. This means its parameter or return type does not match what is "
|
| + "expected.");
|
| +
|
| + static const StrongModeCode INVALID_CAST_FUNCTION = const StrongModeCode(
|
| + ErrorType.COMPILE_TIME_ERROR,
|
| + 'INVALID_CAST_FUNCTION',
|
| + "The function '{0}' has type '{1}' that isn't of expected type "
|
| + "'{2}'. This means its parameter or return type does not match what is "
|
| + "expected.");
|
|
|
| static const StrongModeCode INVALID_SUPER_INVOCATION = const StrongModeCode(
|
| ErrorType.COMPILE_TIME_ERROR,
|
|
|