OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library analyzer.src.error.codes; | 5 library analyzer.src.error.codes; |
6 | 6 |
7 import 'package:analyzer/error/error.dart'; | 7 import 'package:analyzer/error/error.dart'; |
8 | 8 |
9 export 'package:analyzer/src/analysis_options/error/option_codes.dart'; | 9 export 'package:analyzer/src/analysis_options/error/option_codes.dart'; |
10 export 'package:analyzer/src/dart/error/hint_codes.dart'; | 10 export 'package:analyzer/src/dart/error/hint_codes.dart'; |
(...skipping 4633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4644 /** | 4644 /** |
4645 * This class has Strong Mode specific error codes. | 4645 * This class has Strong Mode specific error codes. |
4646 * | 4646 * |
4647 * These error codes tend to use the same message across different severity | 4647 * These error codes tend to use the same message across different severity |
4648 * levels, so they are grouped for clarity. | 4648 * levels, so they are grouped for clarity. |
4649 * | 4649 * |
4650 * All of these error codes also use the "STRONG_MODE_" prefix in their name. | 4650 * All of these error codes also use the "STRONG_MODE_" prefix in their name. |
4651 */ | 4651 */ |
4652 class StrongModeCode extends ErrorCode { | 4652 class StrongModeCode extends ErrorCode { |
4653 static const String _implicitCastMessage = | 4653 static const String _implicitCastMessage = |
4654 "Unsound implicit cast from '{0}' to '{1}'."; | 4654 "Unsafe implicit cast from '{0}' to '{1}'. " |
| 4655 "This usually indicates that type information was lost and resulted in " |
| 4656 "'dynamic' and/or a place that will have a failure at runtime."; |
4655 | 4657 |
4656 static const String _implicitCastCorrection = | 4658 static const String _implicitCastCorrection = |
4657 "Try adding an explicit cast to '{1}'."; | 4659 "Try adding an explicit cast to '{1}' or improving the type of '{0}'."; |
4658 | 4660 |
4659 static const String _invalidOverrideMessage = | 4661 static const String _invalidOverrideMessage = |
4660 "The type of '{0}.{1}' ('{2}') isn't a subtype of '{3}.{1}' ('{4}')."; | 4662 "The type of '{0}.{1}' ('{2}') isn't a subtype of '{3}.{1}' ('{4}')."; |
4661 | 4663 |
4662 /** | 4664 /** |
4663 * This is appended to the end of an error message about implicit dynamic. | 4665 * This is appended to the end of an error message about implicit dynamic. |
4664 * | 4666 * |
4665 * The idea is to make sure the user is aware that this error message is the | 4667 * The idea is to make sure the user is aware that this error message is the |
4666 * result of turning on a particular option, and they are free to turn it | 4668 * result of turning on a particular option, and they are free to turn it |
4667 * back off. | 4669 * back off. |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4718 | 4720 |
4719 static const StrongModeCode INFERRED_TYPE_LITERAL = const StrongModeCode( | 4721 static const StrongModeCode INFERRED_TYPE_LITERAL = const StrongModeCode( |
4720 ErrorType.HINT, 'INFERRED_TYPE_LITERAL', _inferredTypeMessage); | 4722 ErrorType.HINT, 'INFERRED_TYPE_LITERAL', _inferredTypeMessage); |
4721 | 4723 |
4722 static const StrongModeCode INFERRED_TYPE_ALLOCATION = const StrongModeCode( | 4724 static const StrongModeCode INFERRED_TYPE_ALLOCATION = const StrongModeCode( |
4723 ErrorType.HINT, 'INFERRED_TYPE_ALLOCATION', _inferredTypeMessage); | 4725 ErrorType.HINT, 'INFERRED_TYPE_ALLOCATION', _inferredTypeMessage); |
4724 | 4726 |
4725 static const StrongModeCode INFERRED_TYPE_CLOSURE = const StrongModeCode( | 4727 static const StrongModeCode INFERRED_TYPE_CLOSURE = const StrongModeCode( |
4726 ErrorType.HINT, 'INFERRED_TYPE_CLOSURE', _inferredTypeMessage); | 4728 ErrorType.HINT, 'INFERRED_TYPE_CLOSURE', _inferredTypeMessage); |
4727 | 4729 |
4728 static const StrongModeCode STATIC_TYPE_ERROR = const StrongModeCode( | 4730 static const StrongModeCode INVALID_CAST_LITERAL = const StrongModeCode( |
4729 ErrorType.COMPILE_TIME_ERROR, | 4731 ErrorType.COMPILE_TIME_ERROR, |
4730 'STATIC_TYPE_ERROR', | 4732 'INVALID_CAST_LITERAL', |
4731 "Type check failed: '{0}' ('{1}') isn't of type '{2}'."); | 4733 "The literal '{0}' with type '{1}' isn't of expected type '{2}'."); |
| 4734 |
| 4735 static const StrongModeCode INVALID_CAST_LITERAL_LIST = const StrongModeCode( |
| 4736 ErrorType.COMPILE_TIME_ERROR, |
| 4737 'INVALID_CAST_LITERAL_LIST', |
| 4738 "The list literal type '{0}' isn't of expected type '{1}'. The list's " |
| 4739 "type can be changed with an explicit generic type argument or by " |
| 4740 "changing the element types."); |
| 4741 |
| 4742 static const StrongModeCode INVALID_CAST_LITERAL_MAP = const StrongModeCode( |
| 4743 ErrorType.COMPILE_TIME_ERROR, |
| 4744 'INVALID_CAST_LITERAL_MAP', |
| 4745 "The map literal type '{0}' isn't of expected type '{1}'. The maps's " |
| 4746 "type can be changed with an explicit generic type arguments or by " |
| 4747 "changing the key and value types."); |
| 4748 |
| 4749 static const StrongModeCode INVALID_CAST_FUNCTION_EXPR = const StrongModeCode( |
| 4750 ErrorType.COMPILE_TIME_ERROR, |
| 4751 'INVALID_CAST_FUNCTION_EXPR', |
| 4752 "The function expression type '{0}' isn't of type '{1}'. " |
| 4753 "This means its parameter or return type does not match what is " |
| 4754 "expected. Consider changing parameter type(s) or the returned type(s)."); |
| 4755 |
| 4756 static const StrongModeCode INVALID_CAST_NEW_EXPR = const StrongModeCode( |
| 4757 ErrorType.COMPILE_TIME_ERROR, |
| 4758 'INVALID_CAST_NEW_EXPR', |
| 4759 "The constructor returns type '{0}' that isn't of expected type '{1}'."); |
| 4760 |
| 4761 static const StrongModeCode INVALID_CAST_METHOD = const StrongModeCode( |
| 4762 ErrorType.COMPILE_TIME_ERROR, |
| 4763 'INVALID_CAST_METHOD', |
| 4764 "The method tear-off '{0}' has type '{1}' that isn't of expected type " |
| 4765 "'{2}'. This means its parameter or return type does not match what is " |
| 4766 "expected."); |
| 4767 |
| 4768 static const StrongModeCode INVALID_CAST_FUNCTION = const StrongModeCode( |
| 4769 ErrorType.COMPILE_TIME_ERROR, |
| 4770 'INVALID_CAST_FUNCTION', |
| 4771 "The function '{0}' has type '{1}' that isn't of expected type " |
| 4772 "'{2}'. This means its parameter or return type does not match what is " |
| 4773 "expected."); |
4732 | 4774 |
4733 static const StrongModeCode INVALID_SUPER_INVOCATION = const StrongModeCode( | 4775 static const StrongModeCode INVALID_SUPER_INVOCATION = const StrongModeCode( |
4734 ErrorType.COMPILE_TIME_ERROR, | 4776 ErrorType.COMPILE_TIME_ERROR, |
4735 'INVALID_SUPER_INVOCATION', | 4777 'INVALID_SUPER_INVOCATION', |
4736 "super call must be last in an initializer " | 4778 "super call must be last in an initializer " |
4737 "list (see https://goo.gl/EY6hDP): '{0}'."); | 4779 "list (see https://goo.gl/EY6hDP): '{0}'."); |
4738 | 4780 |
4739 static const StrongModeCode NON_GROUND_TYPE_CHECK_INFO = const StrongModeCode( | 4781 static const StrongModeCode NON_GROUND_TYPE_CHECK_INFO = const StrongModeCode( |
4740 ErrorType.HINT, | 4782 ErrorType.HINT, |
4741 'NON_GROUND_TYPE_CHECK_INFO', | 4783 'NON_GROUND_TYPE_CHECK_INFO', |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4845 * created from the optional [correction] template. | 4887 * created from the optional [correction] template. |
4846 */ | 4888 */ |
4847 const StrongModeCode(ErrorType type, String name, String message, | 4889 const StrongModeCode(ErrorType type, String name, String message, |
4848 [String correction]) | 4890 [String correction]) |
4849 : type = type, | 4891 : type = type, |
4850 super('STRONG_MODE_$name', message, correction); | 4892 super('STRONG_MODE_$name', message, correction); |
4851 | 4893 |
4852 @override | 4894 @override |
4853 ErrorSeverity get errorSeverity => type.severity; | 4895 ErrorSeverity get errorSeverity => type.severity; |
4854 } | 4896 } |
OLD | NEW |