1 #!/usr/bin/env python 2 # 3 # Copyright 2007 The Closure Linter Authors. All Rights Reserved. 4 # 5 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # you may not use this file except in compliance with the License. 7 # You may obtain a copy of the License at 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS-IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 17 """Error codes for JavaScript style checker.""" 18 19 __author__ = ('robbyw (at] google.com (Robert Walker)', 20 'ajp (at] google.com (Andy Perelson)') 21 22 23 def ByName(name): 24 """Get the error code for the given error name. 25 26 Args: 27 name: The name of the error 28 29 Returns: 30 The error code 31 """ 32 return globals()[name] 33 34 35 # "File-fatal" errors - these errors stop further parsing of a single file 36 FILE_NOT_FOUND = -1 37 FILE_DOES_NOT_PARSE = -2 38 39 # Spacing 40 EXTRA_SPACE = 1 41 MISSING_SPACE = 2 42 EXTRA_LINE = 3 43 MISSING_LINE = 4 44 ILLEGAL_TAB = 5 45 WRONG_INDENTATION = 6 46 WRONG_BLANK_LINE_COUNT = 7 47 48 # Semicolons 49 MISSING_SEMICOLON = 10 50 MISSING_SEMICOLON_AFTER_FUNCTION = 11 51 ILLEGAL_SEMICOLON_AFTER_FUNCTION = 12 52 REDUNDANT_SEMICOLON = 13 53 54 # Miscellaneous 55 ILLEGAL_PROTOTYPE_MEMBER_VALUE = 100 56 LINE_TOO_LONG = 110 57 LINE_STARTS_WITH_OPERATOR = 120 58 COMMA_AT_END_OF_LITERAL = 121 59 MULTI_LINE_STRING = 130 60 UNNECESSARY_DOUBLE_QUOTED_STRING = 131 61 UNUSED_PRIVATE_MEMBER = 132 62 63 # Requires, provides 64 GOOG_REQUIRES_NOT_ALPHABETIZED = 140 65 GOOG_PROVIDES_NOT_ALPHABETIZED = 141 66 MISSING_GOOG_REQUIRE = 142 67 MISSING_GOOG_PROVIDE = 143 68 EXTRA_GOOG_REQUIRE = 144 69 EXTRA_GOOG_PROVIDE = 145 70 71 # JsDoc 72 INVALID_JSDOC_TAG = 200 73 INVALID_USE_OF_DESC_TAG = 201 74 NO_BUG_NUMBER_AFTER_BUG_TAG = 202 75 MISSING_PARAMETER_DOCUMENTATION = 210 76 EXTRA_PARAMETER_DOCUMENTATION = 211 77 WRONG_PARAMETER_DOCUMENTATION = 212 78 MISSING_JSDOC_TAG_TYPE = 213 79 MISSING_JSDOC_TAG_DESCRIPTION = 214 80 MISSING_JSDOC_PARAM_NAME = 215 81 OUT_OF_ORDER_JSDOC_TAG_TYPE = 216 82 MISSING_RETURN_DOCUMENTATION = 217 83 UNNECESSARY_RETURN_DOCUMENTATION = 218 84 MISSING_BRACES_AROUND_TYPE = 219 85 MISSING_MEMBER_DOCUMENTATION = 220 86 MISSING_PRIVATE = 221 87 EXTRA_PRIVATE = 222 88 INVALID_OVERRIDE_PRIVATE = 223 89 INVALID_INHERIT_DOC_PRIVATE = 224 90 MISSING_JSDOC_TAG_THIS = 225 91 UNNECESSARY_BRACES_AROUND_INHERIT_DOC = 226 92 INVALID_AUTHOR_TAG_DESCRIPTION = 227 93 JSDOC_PREFER_QUESTION_TO_PIPE_NULL = 230 94 JSDOC_ILLEGAL_QUESTION_WITH_PIPE = 231 95 JSDOC_MISSING_OPTIONAL_TYPE = 232 96 JSDOC_MISSING_OPTIONAL_PREFIX = 233 97 JSDOC_TAG_DESCRIPTION_ENDS_WITH_INVALID_CHARACTER = 240 98 # TODO(robbyw): Split this in to more specific syntax problems. 99 INCORRECT_SUPPRESS_SYNTAX = 250 100 INVALID_SUPPRESS_TYPE = 251 101 UNNECESSARY_SUPPRESS = 252 102 103 # File ending 104 FILE_MISSING_NEWLINE = 300 105 FILE_IN_BLOCK = 301 106 107 # Interfaces 108 INTERFACE_CONSTRUCTOR_CANNOT_HAVE_PARAMS = 400 109 INTERFACE_METHOD_CANNOT_HAVE_CODE = 401 110 111 # Comments 112 MISSING_END_OF_SCOPE_COMMENT = 500 113 MALFORMED_END_OF_SCOPE_COMMENT = 501 114 115 # ActionScript specific errors: 116 # TODO(user): move these errors to their own file and move all JavaScript 117 # specific errors to their own file as well. 118 # All ActionScript specific errors should have error number at least 1000. 119 FUNCTION_MISSING_RETURN_TYPE = 1132 120 PARAMETER_MISSING_TYPE = 1133 121 VAR_MISSING_TYPE = 1134 122 PARAMETER_MISSING_DEFAULT_VALUE = 1135 123 IMPORTS_NOT_ALPHABETIZED = 1140 124 IMPORT_CONTAINS_WILDCARD = 1141 125 UNUSED_IMPORT = 1142 126 INVALID_TRACE_SEVERITY_LEVEL = 1250 127 MISSING_TRACE_SEVERITY_LEVEL = 1251 128 MISSING_TRACE_MESSAGE = 1252 129 REMOVE_TRACE_BEFORE_SUBMIT = 1253 130 REMOVE_COMMENT_BEFORE_SUBMIT = 1254 131 # End of list of ActionScript specific errors. 132 133 NEW_ERRORS = frozenset([ 134 # Errors added after 2.0.2: 135 WRONG_INDENTATION, 136 MISSING_SEMICOLON, 137 # Errors added after 2.3.4: 138 MISSING_END_OF_SCOPE_COMMENT, 139 MALFORMED_END_OF_SCOPE_COMMENT, 140 UNUSED_PRIVATE_MEMBER, 141 # Errors added after 2.3.5: 142 ]) 143