| 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.error.error; |     5 library analyzer.error.error; | 
|     6  |     6  | 
|     7 import 'dart:collection'; |     7 import 'dart:collection'; | 
|     8  |     8  | 
|     9 import 'package:analyzer/dart/element/element.dart'; |     9 import 'package:analyzer/dart/element/element.dart'; | 
|    10 import 'package:analyzer/error/listener.dart'; |    10 import 'package:analyzer/error/listener.dart'; | 
| (...skipping 874 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   885         _uniqueNameToCodeMap[errorCode.uniqueName] = errorCode; |   885         _uniqueNameToCodeMap[errorCode.uniqueName] = errorCode; | 
|   886       } |   886       } | 
|   887     } |   887     } | 
|   888     return _uniqueNameToCodeMap[uniqueName]; |   888     return _uniqueNameToCodeMap[uniqueName]; | 
|   889   } |   889   } | 
|   890 } |   890 } | 
|   891  |   891  | 
|   892 /** |   892 /** | 
|   893  * The properties that can be associated with an [AnalysisError]. |   893  * The properties that can be associated with an [AnalysisError]. | 
|   894  */ |   894  */ | 
|   895 class ErrorProperty<V> extends Enum<ErrorProperty> { |   895 class ErrorProperty<V> implements Comparable<ErrorProperty> { | 
|   896   /** |   896   /** | 
|   897    * A property whose value is a list of [FieldElement]s that are final, but |   897    * A property whose value is a list of [FieldElement]s that are final, but | 
|   898    * not initialized by a constructor. |   898    * not initialized by a constructor. | 
|   899    */ |   899    */ | 
|   900   static const ErrorProperty<List<FieldElement>> NOT_INITIALIZED_FIELDS = |   900   static const ErrorProperty<List<FieldElement>> NOT_INITIALIZED_FIELDS = | 
|   901       const ErrorProperty<List<FieldElement>>('NOT_INITIALIZED_FIELDS', 0); |   901       const ErrorProperty<List<FieldElement>>('NOT_INITIALIZED_FIELDS', 0); | 
|   902  |   902  | 
|   903   /** |   903   /** | 
|   904    * A property whose value is the name of the library that is used by all |   904    * A property whose value is the name of the library that is used by all | 
|   905    * of the "part of" directives, so should be used in the "library" directive. |   905    * of the "part of" directives, so should be used in the "library" directive. | 
|   906    * Is `null` if there is no a single name used by all of the parts. |   906    * Is `null` if there is no a single name used by all of the parts. | 
|   907    */ |   907    */ | 
|   908   static const ErrorProperty<String> PARTS_LIBRARY_NAME = |   908   static const ErrorProperty<String> PARTS_LIBRARY_NAME = | 
|   909       const ErrorProperty<String>('PARTS_LIBRARY_NAME', 1); |   909       const ErrorProperty<String>('PARTS_LIBRARY_NAME', 1); | 
|   910  |   910  | 
|   911   /** |   911   /** | 
|   912    * A property whose value is a list of [ExecutableElement] that should |   912    * A property whose value is a list of [ExecutableElement] that should | 
|   913    * be but are not implemented by a concrete class. |   913    * be but are not implemented by a concrete class. | 
|   914    */ |   914    */ | 
|   915   static const ErrorProperty<List<ExecutableElement>> UNIMPLEMENTED_METHODS = |   915   static const ErrorProperty<List<ExecutableElement>> UNIMPLEMENTED_METHODS = | 
|   916       const ErrorProperty<List<ExecutableElement>>('UNIMPLEMENTED_METHODS', 2); |   916       const ErrorProperty<List<ExecutableElement>>('UNIMPLEMENTED_METHODS', 2); | 
|   917  |   917  | 
|   918   static const List<ErrorProperty> values = const [ |   918   static const List<ErrorProperty> values = const [ | 
|   919     NOT_INITIALIZED_FIELDS, |   919     NOT_INITIALIZED_FIELDS, | 
|   920     PARTS_LIBRARY_NAME, |   920     PARTS_LIBRARY_NAME, | 
|   921     UNIMPLEMENTED_METHODS |   921     UNIMPLEMENTED_METHODS | 
|   922   ]; |   922   ]; | 
|   923  |   923  | 
|   924   const ErrorProperty(String name, int ordinal) : super(name, ordinal); |   924   /** | 
 |   925    * The name of this property. | 
 |   926    */ | 
 |   927   final String name; | 
 |   928  | 
 |   929   /** | 
 |   930    * The ordinal value of the property. | 
 |   931    */ | 
 |   932   final int ordinal; | 
 |   933  | 
 |   934   const ErrorProperty(this.name, this.ordinal); | 
 |   935  | 
 |   936   @override | 
 |   937   int get hashCode => ordinal; | 
 |   938  | 
 |   939   @override | 
 |   940   int compareTo(ErrorProperty other) => ordinal - other.ordinal; | 
 |   941  | 
 |   942   @override | 
 |   943   String toString() => name; | 
|   925 } |   944 } | 
|   926  |   945  | 
|   927 /** |   946 /** | 
|   928  * The severity of an [ErrorCode]. |   947  * The severity of an [ErrorCode]. | 
|   929  */ |   948  */ | 
|   930 class ErrorSeverity extends Enum<ErrorSeverity> { |   949 class ErrorSeverity implements Comparable<ErrorSeverity> { | 
|   931   /** |   950   /** | 
|   932    * The severity representing a non-error. This is never used for any error |   951    * The severity representing a non-error. This is never used for any error | 
|   933    * code, but is useful for clients. |   952    * code, but is useful for clients. | 
|   934    */ |   953    */ | 
|   935   static const ErrorSeverity NONE = const ErrorSeverity('NONE', 0, " ", "none"); |   954   static const ErrorSeverity NONE = const ErrorSeverity('NONE', 0, " ", "none"); | 
|   936  |   955  | 
|   937   /** |   956   /** | 
|   938    * The severity representing an informational level analysis issue. |   957    * The severity representing an informational level analysis issue. | 
|   939    */ |   958    */ | 
|   940   static const ErrorSeverity INFO = const ErrorSeverity('INFO', 1, "I", "info"); |   959   static const ErrorSeverity INFO = const ErrorSeverity('INFO', 1, "I", "info"); | 
|   941  |   960  | 
|   942   /** |   961   /** | 
|   943    * The severity representing a warning. Warnings can become errors if the `-We
      rror` command |   962    * The severity representing a warning. Warnings can become errors if the `-We
      rror` command | 
|   944    * line flag is specified. |   963    * line flag is specified. | 
|   945    */ |   964    */ | 
|   946   static const ErrorSeverity WARNING = |   965   static const ErrorSeverity WARNING = | 
|   947       const ErrorSeverity('WARNING', 2, "W", "warning"); |   966       const ErrorSeverity('WARNING', 2, "W", "warning"); | 
|   948  |   967  | 
|   949   /** |   968   /** | 
|   950    * The severity representing an error. |   969    * The severity representing an error. | 
|   951    */ |   970    */ | 
|   952   static const ErrorSeverity ERROR = |   971   static const ErrorSeverity ERROR = | 
|   953       const ErrorSeverity('ERROR', 3, "E", "error"); |   972       const ErrorSeverity('ERROR', 3, "E", "error"); | 
|   954  |   973  | 
|   955   static const List<ErrorSeverity> values = const [NONE, INFO, WARNING, ERROR]; |   974   static const List<ErrorSeverity> values = const [NONE, INFO, WARNING, ERROR]; | 
|   956  |   975  | 
|   957   /** |   976   /** | 
 |   977    * The name of this error code. | 
 |   978    */ | 
 |   979   final String name; | 
 |   980  | 
 |   981   /** | 
 |   982    * The ordinal value of the error code. | 
 |   983    */ | 
 |   984   final int ordinal; | 
 |   985  | 
 |   986   /** | 
|   958    * The name of the severity used when producing machine output. |   987    * The name of the severity used when producing machine output. | 
|   959    */ |   988    */ | 
|   960   final String machineCode; |   989   final String machineCode; | 
|   961  |   990  | 
|   962   /** |   991   /** | 
|   963    * The name of the severity used when producing readable output. |   992    * The name of the severity used when producing readable output. | 
|   964    */ |   993    */ | 
|   965   final String displayName; |   994   final String displayName; | 
|   966  |   995  | 
|   967   /** |   996   /** | 
|   968    * Initialize a newly created severity with the given names. |   997    * Initialize a newly created severity with the given names. | 
|   969    * |  | 
|   970    * Parameters: |  | 
|   971    * 0: the name of the severity used when producing machine output |  | 
|   972    * 1: the name of the severity used when producing readable output |  | 
|   973    */ |   998    */ | 
|   974   const ErrorSeverity( |   999   const ErrorSeverity( | 
|   975       String name, int ordinal, this.machineCode, this.displayName) |  1000       this.name, this.ordinal, this.machineCode, this.displayName); | 
|   976       : super(name, ordinal); |  1001  | 
 |  1002   @override | 
 |  1003   int get hashCode => ordinal; | 
 |  1004  | 
 |  1005   @override | 
 |  1006   int compareTo(ErrorSeverity other) => ordinal - other.ordinal; | 
|   977  |  1007  | 
|   978   /** |  1008   /** | 
|   979    * Return the severity constant that represents the greatest severity. |  1009    * Return the severity constant that represents the greatest severity. | 
|   980    */ |  1010    */ | 
|   981   ErrorSeverity max(ErrorSeverity severity) => |  1011   ErrorSeverity max(ErrorSeverity severity) => | 
|   982       this.ordinal >= severity.ordinal ? this : severity; |  1012       this.ordinal >= severity.ordinal ? this : severity; | 
 |  1013  | 
 |  1014   @override | 
 |  1015   String toString() => name; | 
|   983 } |  1016 } | 
|   984  |  1017  | 
|   985 /** |  1018 /** | 
|   986  * The type of an [ErrorCode]. |  1019  * The type of an [ErrorCode]. | 
|   987  */ |  1020  */ | 
|   988 class ErrorType extends Enum<ErrorType> { |  1021 class ErrorType implements Comparable<ErrorType> { | 
|   989   /** |  1022   /** | 
|   990    * Task (todo) comments in user code. |  1023    * Task (todo) comments in user code. | 
|   991    */ |  1024    */ | 
|   992   static const ErrorType TODO = const ErrorType('TODO', 0, ErrorSeverity.INFO); |  1025   static const ErrorType TODO = const ErrorType('TODO', 0, ErrorSeverity.INFO); | 
|   993  |  1026  | 
|   994   /** |  1027   /** | 
|   995    * Extra analysis run over the code to follow best practices, which are not in |  1028    * Extra analysis run over the code to follow best practices, which are not in | 
|   996    * the Dart Language Specification. |  1029    * the Dart Language Specification. | 
|   997    */ |  1030    */ | 
|   998   static const ErrorType HINT = const ErrorType('HINT', 1, ErrorSeverity.INFO); |  1031   static const ErrorType HINT = const ErrorType('HINT', 1, ErrorSeverity.INFO); | 
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1045     HINT, |  1078     HINT, | 
|  1046     COMPILE_TIME_ERROR, |  1079     COMPILE_TIME_ERROR, | 
|  1047     CHECKED_MODE_COMPILE_TIME_ERROR, |  1080     CHECKED_MODE_COMPILE_TIME_ERROR, | 
|  1048     STATIC_WARNING, |  1081     STATIC_WARNING, | 
|  1049     STATIC_TYPE_WARNING, |  1082     STATIC_TYPE_WARNING, | 
|  1050     SYNTACTIC_ERROR, |  1083     SYNTACTIC_ERROR, | 
|  1051     LINT |  1084     LINT | 
|  1052   ]; |  1085   ]; | 
|  1053  |  1086  | 
|  1054   /** |  1087   /** | 
 |  1088    * The name of this error type. | 
 |  1089    */ | 
 |  1090   final String name; | 
 |  1091  | 
 |  1092   /** | 
 |  1093    * The ordinal value of the error type. | 
 |  1094    */ | 
 |  1095   final int ordinal; | 
 |  1096  | 
 |  1097   /** | 
|  1055    * The severity of this type of error. |  1098    * The severity of this type of error. | 
|  1056    */ |  1099    */ | 
|  1057   final ErrorSeverity severity; |  1100   final ErrorSeverity severity; | 
|  1058  |  1101  | 
|  1059   /** |  1102   /** | 
|  1060    * Initialize a newly created error type to have the given [name] and |  1103    * Initialize a newly created error type to have the given [name] and | 
|  1061    * [severity]. |  1104    * [severity]. | 
|  1062    */ |  1105    */ | 
|  1063   const ErrorType(String name, int ordinal, this.severity) |  1106   const ErrorType(this.name, this.ordinal, this.severity); | 
|  1064       : super(name, ordinal); |  | 
|  1065  |  1107  | 
|  1066   String get displayName => name.toLowerCase().replaceAll('_', ' '); |  1108   String get displayName => name.toLowerCase().replaceAll('_', ' '); | 
 |  1109  | 
 |  1110   @override | 
 |  1111   int get hashCode => ordinal; | 
 |  1112  | 
 |  1113   @override | 
 |  1114   int compareTo(ErrorType other) => ordinal - other.ordinal; | 
 |  1115  | 
 |  1116   @override | 
 |  1117   String toString() => name; | 
|  1067 } |  1118 } | 
| OLD | NEW |