rubocop 0.78.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (735) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +69 -39
  4. data/assets/output.html.erb +1 -1
  5. data/config/default.yml +1034 -139
  6. data/config/obsoletion.yml +200 -0
  7. data/exe/rubocop +2 -4
  8. data/lib/rubocop.rb +139 -66
  9. data/lib/rubocop/ast_aliases.rb +8 -0
  10. data/lib/rubocop/cached_data.rb +4 -4
  11. data/lib/rubocop/cli.rb +19 -13
  12. data/lib/rubocop/cli/command.rb +1 -0
  13. data/lib/rubocop/cli/command/auto_genenerate_config.rb +46 -19
  14. data/lib/rubocop/cli/command/base.rb +2 -0
  15. data/lib/rubocop/cli/command/execute_runner.rb +36 -12
  16. data/lib/rubocop/cli/command/init_dotfile.rb +3 -4
  17. data/lib/rubocop/cli/command/show_cops.rb +14 -13
  18. data/lib/rubocop/cli/command/suggest_extensions.rb +81 -0
  19. data/lib/rubocop/cli/command/version.rb +3 -2
  20. data/lib/rubocop/cli/environment.rb +1 -0
  21. data/lib/rubocop/comment_config.rb +54 -98
  22. data/lib/rubocop/config.rb +76 -34
  23. data/lib/rubocop/config_loader.rb +118 -114
  24. data/lib/rubocop/config_loader_resolver.rb +99 -28
  25. data/lib/rubocop/config_obsoletion.rb +67 -239
  26. data/lib/rubocop/config_obsoletion/changed_enforced_styles.rb +33 -0
  27. data/lib/rubocop/config_obsoletion/changed_parameter.rb +21 -0
  28. data/lib/rubocop/config_obsoletion/cop_rule.rb +33 -0
  29. data/lib/rubocop/config_obsoletion/extracted_cop.rb +44 -0
  30. data/lib/rubocop/config_obsoletion/parameter_rule.rb +44 -0
  31. data/lib/rubocop/config_obsoletion/removed_cop.rb +41 -0
  32. data/lib/rubocop/config_obsoletion/renamed_cop.rb +34 -0
  33. data/lib/rubocop/config_obsoletion/rule.rb +41 -0
  34. data/lib/rubocop/config_obsoletion/split_cop.rb +27 -0
  35. data/lib/rubocop/config_regeneration.rb +33 -0
  36. data/lib/rubocop/config_store.rb +31 -7
  37. data/lib/rubocop/config_validator.rb +89 -103
  38. data/lib/rubocop/cop/autocorrect_logic.rb +41 -39
  39. data/lib/rubocop/cop/badge.rb +16 -32
  40. data/lib/rubocop/cop/base.rb +450 -0
  41. data/lib/rubocop/cop/bundler/duplicated_gem.rb +30 -6
  42. data/lib/rubocop/cop/bundler/gem_comment.rb +117 -8
  43. data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +13 -20
  44. data/lib/rubocop/cop/bundler/ordered_gems.rb +2 -4
  45. data/lib/rubocop/cop/commissioner.rb +98 -74
  46. data/lib/rubocop/cop/cop.rb +84 -234
  47. data/lib/rubocop/cop/corrector.rb +63 -117
  48. data/lib/rubocop/cop/correctors/alignment_corrector.rb +13 -23
  49. data/lib/rubocop/cop/correctors/condition_corrector.rb +3 -6
  50. data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +2 -4
  51. data/lib/rubocop/cop/correctors/empty_line_corrector.rb +9 -10
  52. data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +1 -2
  53. data/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +4 -4
  54. data/lib/rubocop/cop/correctors/line_break_corrector.rb +9 -12
  55. data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +35 -6
  56. data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +1 -3
  57. data/lib/rubocop/cop/correctors/parentheses_corrector.rb +5 -8
  58. data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +10 -21
  59. data/lib/rubocop/cop/correctors/punctuation_corrector.rb +8 -10
  60. data/lib/rubocop/cop/correctors/space_corrector.rb +1 -3
  61. data/lib/rubocop/cop/correctors/string_literal_corrector.rb +6 -8
  62. data/lib/rubocop/cop/correctors/unused_arg_corrector.rb +15 -18
  63. data/lib/rubocop/cop/documentation.rb +22 -0
  64. data/lib/rubocop/cop/exclude_limit.rb +26 -0
  65. data/lib/rubocop/cop/force.rb +2 -1
  66. data/lib/rubocop/cop/gemspec/date_assignment.rb +57 -0
  67. data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +6 -5
  68. data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +4 -8
  69. data/lib/rubocop/cop/gemspec/required_ruby_version.rb +48 -20
  70. data/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +4 -2
  71. data/lib/rubocop/cop/generator.rb +14 -25
  72. data/lib/rubocop/cop/generator/configuration_injector.rb +5 -6
  73. data/lib/rubocop/cop/generator/require_file_injector.rb +2 -5
  74. data/lib/rubocop/cop/ignored_node.rb +1 -3
  75. data/lib/rubocop/cop/internal_affairs.rb +7 -1
  76. data/lib/rubocop/cop/internal_affairs/empty_line_between_expect_offense_and_correction.rb +68 -0
  77. data/lib/rubocop/cop/internal_affairs/example_description.rb +92 -0
  78. data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +8 -17
  79. data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +4 -4
  80. data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +151 -0
  81. data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +11 -14
  82. data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +12 -10
  83. data/lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb +62 -0
  84. data/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +65 -0
  85. data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +12 -7
  86. data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +11 -8
  87. data/lib/rubocop/cop/internal_affairs/style_detected_api_use.rb +148 -0
  88. data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +6 -6
  89. data/lib/rubocop/cop/layout/access_modifier_indentation.rb +12 -10
  90. data/lib/rubocop/cop/layout/argument_alignment.rb +8 -9
  91. data/lib/rubocop/cop/layout/array_alignment.rb +58 -13
  92. data/lib/rubocop/cop/layout/assignment_indentation.rb +8 -7
  93. data/lib/rubocop/cop/layout/begin_end_alignment.rb +74 -0
  94. data/lib/rubocop/cop/layout/block_alignment.rb +35 -43
  95. data/lib/rubocop/cop/layout/block_end_newline.rb +9 -11
  96. data/lib/rubocop/cop/layout/case_indentation.rb +22 -28
  97. data/lib/rubocop/cop/layout/class_structure.rb +58 -74
  98. data/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +4 -6
  99. data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +18 -30
  100. data/lib/rubocop/cop/layout/comment_indentation.rb +21 -25
  101. data/lib/rubocop/cop/layout/condition_position.rb +16 -8
  102. data/lib/rubocop/cop/layout/def_end_alignment.rb +9 -10
  103. data/lib/rubocop/cop/layout/dot_position.rb +20 -21
  104. data/lib/rubocop/cop/layout/else_alignment.rb +28 -6
  105. data/lib/rubocop/cop/layout/empty_comment.rb +29 -29
  106. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +39 -22
  107. data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +13 -13
  108. data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +136 -0
  109. data/lib/rubocop/cop/layout/empty_line_between_defs.rb +140 -39
  110. data/lib/rubocop/cop/layout/empty_lines.rb +7 -12
  111. data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +29 -38
  112. data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +13 -9
  113. data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +118 -0
  114. data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +2 -5
  115. data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +2 -5
  116. data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +2 -5
  117. data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +4 -14
  118. data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +2 -5
  119. data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +2 -5
  120. data/lib/rubocop/cop/layout/end_alignment.rb +18 -24
  121. data/lib/rubocop/cop/layout/end_of_line.rb +8 -8
  122. data/lib/rubocop/cop/layout/extra_spacing.rb +23 -42
  123. data/lib/rubocop/cop/layout/first_argument_indentation.rb +40 -13
  124. data/lib/rubocop/cop/layout/first_array_element_indentation.rb +24 -18
  125. data/lib/rubocop/cop/layout/first_array_element_line_break.rb +4 -8
  126. data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +25 -21
  127. data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +3 -7
  128. data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +6 -13
  129. data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +3 -7
  130. data/lib/rubocop/cop/layout/first_parameter_indentation.rb +8 -7
  131. data/lib/rubocop/cop/layout/hash_alignment.rb +37 -40
  132. data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +46 -30
  133. data/lib/rubocop/cop/layout/heredoc_indentation.rb +33 -117
  134. data/lib/rubocop/cop/layout/indentation_consistency.rb +9 -6
  135. data/lib/rubocop/cop/layout/indentation_style.rb +110 -0
  136. data/lib/rubocop/cop/layout/indentation_width.rb +22 -14
  137. data/lib/rubocop/cop/layout/initial_indentation.rb +7 -11
  138. data/lib/rubocop/cop/layout/leading_comment_space.rb +46 -13
  139. data/lib/rubocop/cop/layout/leading_empty_lines.rb +6 -11
  140. data/lib/rubocop/cop/layout/line_length.rb +61 -42
  141. data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +2 -5
  142. data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +3 -7
  143. data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +36 -14
  144. data/lib/rubocop/cop/layout/multiline_block_layout.rb +51 -38
  145. data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +2 -9
  146. data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +3 -7
  147. data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +6 -13
  148. data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +2 -5
  149. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +30 -19
  150. data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +2 -5
  151. data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +23 -9
  152. data/lib/rubocop/cop/layout/parameter_alignment.rb +6 -5
  153. data/lib/rubocop/cop/layout/redundant_line_break.rb +125 -0
  154. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +37 -30
  155. data/lib/rubocop/cop/layout/space_after_colon.rb +10 -8
  156. data/lib/rubocop/cop/layout/space_after_comma.rb +2 -5
  157. data/lib/rubocop/cop/layout/space_after_method_name.rb +7 -10
  158. data/lib/rubocop/cop/layout/space_after_not.rb +9 -11
  159. data/lib/rubocop/cop/layout/space_after_semicolon.rb +2 -5
  160. data/lib/rubocop/cop/layout/space_around_block_parameters.rb +45 -52
  161. data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +19 -23
  162. data/lib/rubocop/cop/layout/space_around_keyword.rb +22 -26
  163. data/lib/rubocop/cop/layout/space_around_method_call_operator.rb +98 -0
  164. data/lib/rubocop/cop/layout/space_around_operators.rb +59 -25
  165. data/lib/rubocop/cop/layout/space_before_block_braces.rb +41 -25
  166. data/lib/rubocop/cop/layout/space_before_brackets.rb +65 -0
  167. data/lib/rubocop/cop/layout/space_before_comma.rb +3 -5
  168. data/lib/rubocop/cop/layout/space_before_comment.rb +8 -9
  169. data/lib/rubocop/cop/layout/space_before_first_arg.rb +17 -15
  170. data/lib/rubocop/cop/layout/space_before_semicolon.rb +2 -5
  171. data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +11 -21
  172. data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +30 -39
  173. data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +5 -15
  174. data/lib/rubocop/cop/layout/space_inside_block_braces.rb +34 -39
  175. data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +22 -48
  176. data/lib/rubocop/cop/layout/space_inside_parens.rb +39 -22
  177. data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +5 -10
  178. data/lib/rubocop/cop/layout/space_inside_range_literal.rb +9 -18
  179. data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +18 -29
  180. data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +12 -13
  181. data/lib/rubocop/cop/layout/trailing_empty_lines.rb +10 -15
  182. data/lib/rubocop/cop/layout/trailing_whitespace.rb +42 -18
  183. data/lib/rubocop/cop/legacy/corrections_proxy.rb +43 -0
  184. data/lib/rubocop/cop/legacy/corrector.rb +27 -0
  185. data/lib/rubocop/cop/lint/ambiguous_assignment.rb +54 -0
  186. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +21 -9
  187. data/lib/rubocop/cop/lint/ambiguous_operator.rb +53 -5
  188. data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +36 -6
  189. data/lib/rubocop/cop/lint/assignment_in_condition.rb +2 -2
  190. data/lib/rubocop/cop/lint/big_decimal_new.rb +10 -10
  191. data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +55 -0
  192. data/lib/rubocop/cop/lint/boolean_symbol.rb +24 -4
  193. data/lib/rubocop/cop/lint/circular_argument_reference.rb +1 -1
  194. data/lib/rubocop/cop/lint/constant_definition_in_block.rb +100 -0
  195. data/lib/rubocop/cop/lint/constant_resolution.rb +89 -0
  196. data/lib/rubocop/cop/lint/debugger.rb +61 -21
  197. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +9 -14
  198. data/lib/rubocop/cop/lint/deprecated_constants.rb +80 -0
  199. data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +148 -0
  200. data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +8 -2
  201. data/lib/rubocop/cop/lint/duplicate_branch.rb +154 -0
  202. data/lib/rubocop/cop/lint/duplicate_case_condition.rb +3 -13
  203. data/lib/rubocop/cop/lint/duplicate_elsif_condition.rb +39 -0
  204. data/lib/rubocop/cop/lint/duplicate_hash_key.rb +2 -4
  205. data/lib/rubocop/cop/lint/duplicate_methods.rb +12 -16
  206. data/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +77 -0
  207. data/lib/rubocop/cop/lint/duplicate_require.rb +47 -0
  208. data/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +47 -0
  209. data/lib/rubocop/cop/lint/each_with_object_argument.rb +3 -1
  210. data/lib/rubocop/cop/lint/else_layout.rb +29 -5
  211. data/lib/rubocop/cop/lint/empty_block.rb +82 -0
  212. data/lib/rubocop/cop/lint/empty_class.rb +93 -0
  213. data/lib/rubocop/cop/lint/empty_conditional_body.rb +67 -0
  214. data/lib/rubocop/cop/lint/empty_ensure.rb +5 -7
  215. data/lib/rubocop/cop/lint/empty_expression.rb +2 -2
  216. data/lib/rubocop/cop/lint/empty_file.rb +48 -0
  217. data/lib/rubocop/cop/lint/empty_interpolation.rb +4 -7
  218. data/lib/rubocop/cop/lint/empty_when.rb +31 -8
  219. data/lib/rubocop/cop/lint/ensure_return.rb +29 -16
  220. data/lib/rubocop/cop/lint/erb_new_arguments.rb +19 -21
  221. data/lib/rubocop/cop/lint/flip_flop.rb +9 -3
  222. data/lib/rubocop/cop/lint/float_comparison.rb +93 -0
  223. data/lib/rubocop/cop/lint/float_out_of_range.rb +2 -3
  224. data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +45 -10
  225. data/lib/rubocop/cop/lint/hash_compare_by_identity.rb +38 -0
  226. data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +14 -16
  227. data/lib/rubocop/cop/lint/identity_comparison.rb +51 -0
  228. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +7 -7
  229. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +14 -20
  230. data/lib/rubocop/cop/lint/inherit_exception.rb +14 -9
  231. data/lib/rubocop/cop/lint/interpolation_check.rb +20 -7
  232. data/lib/rubocop/cop/lint/lambda_without_literal_block.rb +44 -0
  233. data/lib/rubocop/cop/lint/literal_as_condition.rb +24 -15
  234. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +44 -15
  235. data/lib/rubocop/cop/lint/loop.rb +31 -9
  236. data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +9 -12
  237. data/lib/rubocop/cop/lint/missing_super.rb +101 -0
  238. data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +36 -0
  239. data/lib/rubocop/cop/lint/multiple_comparison.rb +15 -15
  240. data/lib/rubocop/cop/lint/nested_method_definition.rb +21 -25
  241. data/lib/rubocop/cop/lint/nested_percent_literal.rb +17 -5
  242. data/lib/rubocop/cop/lint/next_without_accumulator.rb +2 -1
  243. data/lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb +58 -0
  244. data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +95 -15
  245. data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +12 -9
  246. data/lib/rubocop/cop/lint/number_conversion.rb +97 -23
  247. data/lib/rubocop/cop/lint/numbered_parameter_assignment.rb +47 -0
  248. data/lib/rubocop/cop/lint/or_assignment_to_constant.rb +39 -0
  249. data/lib/rubocop/cop/lint/ordered_magic_comments.rb +12 -15
  250. data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +96 -0
  251. data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +31 -12
  252. data/lib/rubocop/cop/lint/percent_string_array.rb +6 -11
  253. data/lib/rubocop/cop/lint/percent_symbol_array.rb +12 -13
  254. data/lib/rubocop/cop/lint/raise_exception.rb +87 -0
  255. data/lib/rubocop/cop/lint/rand_one.rb +5 -4
  256. data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +71 -75
  257. data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +51 -37
  258. data/lib/rubocop/cop/lint/redundant_dir_glob_sort.rb +50 -0
  259. data/lib/rubocop/cop/lint/redundant_require_statement.rb +9 -10
  260. data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +77 -0
  261. data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +72 -35
  262. data/lib/rubocop/cop/lint/redundant_string_coercion.rb +8 -15
  263. data/lib/rubocop/cop/lint/redundant_with_index.rb +13 -18
  264. data/lib/rubocop/cop/lint/redundant_with_object.rb +13 -18
  265. data/lib/rubocop/cop/lint/regexp_as_condition.rb +4 -2
  266. data/lib/rubocop/cop/lint/require_parentheses.rb +4 -6
  267. data/lib/rubocop/cop/lint/rescue_exception.rb +3 -4
  268. data/lib/rubocop/cop/lint/rescue_type.rb +10 -16
  269. data/lib/rubocop/cop/lint/return_in_void_context.rb +3 -6
  270. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +6 -9
  271. data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +15 -17
  272. data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +12 -4
  273. data/lib/rubocop/cop/lint/script_permission.rb +10 -7
  274. data/lib/rubocop/cop/lint/self_assignment.rb +78 -0
  275. data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +11 -19
  276. data/lib/rubocop/cop/lint/shadowed_argument.rb +8 -14
  277. data/lib/rubocop/cop/lint/shadowed_exception.rb +18 -30
  278. data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +21 -7
  279. data/lib/rubocop/cop/lint/struct_new_override.rb +59 -0
  280. data/lib/rubocop/cop/lint/suppressed_exception.rb +55 -18
  281. data/lib/rubocop/cop/lint/symbol_conversion.rb +188 -0
  282. data/lib/rubocop/cop/lint/syntax.rb +11 -30
  283. data/lib/rubocop/cop/lint/to_enum_arguments.rb +89 -0
  284. data/lib/rubocop/cop/lint/to_json.rb +21 -13
  285. data/lib/rubocop/cop/lint/top_level_return_with_argument.rb +34 -0
  286. data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +55 -0
  287. data/lib/rubocop/cop/lint/triple_quotes.rb +71 -0
  288. data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +5 -7
  289. data/lib/rubocop/cop/lint/unexpected_block_arity.rb +85 -0
  290. data/lib/rubocop/cop/lint/unified_integer.rb +5 -8
  291. data/lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +204 -0
  292. data/lib/rubocop/cop/lint/unreachable_code.rb +5 -7
  293. data/lib/rubocop/cop/lint/unreachable_loop.rb +186 -0
  294. data/lib/rubocop/cop/lint/unused_block_argument.rb +12 -11
  295. data/lib/rubocop/cop/lint/unused_method_argument.rb +42 -11
  296. data/lib/rubocop/cop/lint/uri_escape_unescape.rb +5 -2
  297. data/lib/rubocop/cop/lint/uri_regexp.rb +12 -47
  298. data/lib/rubocop/cop/lint/useless_access_modifier.rb +38 -22
  299. data/lib/rubocop/cop/lint/useless_assignment.rb +9 -13
  300. data/lib/rubocop/cop/lint/useless_else_without_rescue.rb +7 -11
  301. data/lib/rubocop/cop/lint/useless_method_definition.rb +68 -0
  302. data/lib/rubocop/cop/lint/useless_setter_call.rb +15 -9
  303. data/lib/rubocop/cop/lint/useless_times.rb +109 -0
  304. data/lib/rubocop/cop/lint/void.rb +7 -18
  305. data/lib/rubocop/cop/message_annotator.rb +5 -4
  306. data/lib/rubocop/cop/metrics/abc_size.rb +26 -2
  307. data/lib/rubocop/cop/metrics/block_length.rb +40 -10
  308. data/lib/rubocop/cop/metrics/block_nesting.rb +5 -10
  309. data/lib/rubocop/cop/metrics/class_length.rb +40 -11
  310. data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +38 -6
  311. data/lib/rubocop/cop/metrics/method_length.rb +32 -4
  312. data/lib/rubocop/cop/metrics/module_length.rb +29 -9
  313. data/lib/rubocop/cop/metrics/parameter_lists.rb +74 -11
  314. data/lib/rubocop/cop/metrics/perceived_complexity.rb +7 -9
  315. data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +76 -15
  316. data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +160 -0
  317. data/lib/rubocop/cop/metrics/utils/iterating_block.rb +61 -0
  318. data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +143 -0
  319. data/lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb +42 -0
  320. data/lib/rubocop/cop/migration/department_name.rb +51 -16
  321. data/lib/rubocop/cop/mixin/alignment.rb +18 -11
  322. data/lib/rubocop/cop/mixin/allowed_identifiers.rb +18 -0
  323. data/lib/rubocop/cop/mixin/allowed_methods.rb +21 -0
  324. data/lib/rubocop/cop/mixin/annotation_comment.rb +5 -0
  325. data/lib/rubocop/cop/mixin/array_min_size.rb +2 -4
  326. data/lib/rubocop/cop/mixin/auto_corrector.rb +12 -0
  327. data/lib/rubocop/cop/mixin/check_line_breakable.rb +26 -18
  328. data/lib/rubocop/cop/mixin/code_length.rb +29 -8
  329. data/lib/rubocop/cop/mixin/comments_help.rb +42 -0
  330. data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +7 -5
  331. data/lib/rubocop/cop/mixin/configurable_formatting.rb +4 -11
  332. data/lib/rubocop/cop/mixin/configurable_max.rb +1 -0
  333. data/lib/rubocop/cop/mixin/configurable_naming.rb +2 -2
  334. data/lib/rubocop/cop/mixin/configurable_numbering.rb +4 -3
  335. data/lib/rubocop/cop/mixin/def_node.rb +3 -5
  336. data/lib/rubocop/cop/mixin/documentation_comment.rb +4 -7
  337. data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +14 -14
  338. data/lib/rubocop/cop/mixin/empty_parameter.rb +2 -1
  339. data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +16 -2
  340. data/lib/rubocop/cop/mixin/enforce_superclass.rb +16 -8
  341. data/lib/rubocop/cop/mixin/first_element_line_break.rb +3 -3
  342. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +12 -9
  343. data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +3 -6
  344. data/lib/rubocop/cop/mixin/hash_transform_method.rb +183 -0
  345. data/lib/rubocop/cop/mixin/ignored_methods.rb +36 -3
  346. data/lib/rubocop/cop/mixin/ignored_pattern.rb +1 -1
  347. data/lib/rubocop/cop/mixin/interpolation.rb +1 -3
  348. data/lib/rubocop/cop/mixin/line_length_help.rb +17 -15
  349. data/lib/rubocop/cop/mixin/match_range.rb +2 -5
  350. data/lib/rubocop/cop/mixin/method_complexity.rb +26 -6
  351. data/lib/rubocop/cop/mixin/method_preference.rb +1 -2
  352. data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +4 -3
  353. data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +1 -1
  354. data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +13 -42
  355. data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +14 -14
  356. data/lib/rubocop/cop/mixin/negative_conditional.rb +6 -4
  357. data/lib/rubocop/cop/mixin/nil_methods.rb +3 -5
  358. data/lib/rubocop/cop/mixin/ordered_gem_node.rb +7 -5
  359. data/lib/rubocop/cop/mixin/parentheses.rb +1 -2
  360. data/lib/rubocop/cop/mixin/percent_array.rb +14 -9
  361. data/lib/rubocop/cop/mixin/percent_literal.rb +0 -6
  362. data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +6 -12
  363. data/lib/rubocop/cop/mixin/preferred_delimiters.rb +6 -9
  364. data/lib/rubocop/cop/mixin/range_help.rb +24 -13
  365. data/lib/rubocop/cop/mixin/rational_literal.rb +1 -0
  366. data/lib/rubocop/cop/mixin/rescue_node.rb +13 -7
  367. data/lib/rubocop/cop/mixin/safe_assignment.rb +6 -2
  368. data/lib/rubocop/cop/mixin/space_after_punctuation.rb +6 -7
  369. data/lib/rubocop/cop/mixin/space_before_punctuation.rb +5 -5
  370. data/lib/rubocop/cop/mixin/statement_modifier.rb +45 -22
  371. data/lib/rubocop/cop/mixin/string_help.rb +4 -1
  372. data/lib/rubocop/cop/mixin/string_literals_help.rb +1 -1
  373. data/lib/rubocop/cop/mixin/surrounding_space.rb +15 -31
  374. data/lib/rubocop/cop/mixin/target_ruby_version.rb +5 -1
  375. data/lib/rubocop/cop/mixin/trailing_body.rb +1 -2
  376. data/lib/rubocop/cop/mixin/trailing_comma.rb +15 -27
  377. data/lib/rubocop/cop/mixin/uncommunicative_name.rb +25 -32
  378. data/lib/rubocop/cop/mixin/unused_argument.rb +5 -9
  379. data/lib/rubocop/cop/mixin/visibility_help.rb +37 -0
  380. data/lib/rubocop/cop/naming/accessor_method_name.rb +19 -3
  381. data/lib/rubocop/cop/naming/ascii_identifiers.rb +29 -8
  382. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +17 -7
  383. data/lib/rubocop/cop/naming/block_parameter_name.rb +1 -1
  384. data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +13 -3
  385. data/lib/rubocop/cop/naming/constant_name.rb +5 -2
  386. data/lib/rubocop/cop/naming/file_name.rb +36 -34
  387. data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +12 -6
  388. data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +4 -4
  389. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +132 -24
  390. data/lib/rubocop/cop/naming/method_name.rb +31 -3
  391. data/lib/rubocop/cop/naming/method_parameter_name.rb +1 -1
  392. data/lib/rubocop/cop/naming/predicate_name.rb +10 -13
  393. data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +59 -15
  394. data/lib/rubocop/cop/naming/variable_name.rb +3 -1
  395. data/lib/rubocop/cop/naming/variable_number.rb +94 -9
  396. data/lib/rubocop/cop/offense.rb +35 -12
  397. data/lib/rubocop/cop/registry.rb +100 -24
  398. data/lib/rubocop/cop/security/eval.rb +4 -2
  399. data/lib/rubocop/cop/security/json_load.rb +8 -8
  400. data/lib/rubocop/cop/security/marshal_load.rb +4 -4
  401. data/lib/rubocop/cop/security/open.rb +15 -11
  402. data/lib/rubocop/cop/security/yaml_load.rb +8 -6
  403. data/lib/rubocop/cop/severity.rb +4 -14
  404. data/lib/rubocop/cop/style/access_modifier_declarations.rb +37 -13
  405. data/lib/rubocop/cop/style/accessor_grouping.rb +150 -0
  406. data/lib/rubocop/cop/style/alias.rb +46 -45
  407. data/lib/rubocop/cop/style/and_or.rb +30 -23
  408. data/lib/rubocop/cop/style/arguments_forwarding.rb +143 -0
  409. data/lib/rubocop/cop/style/array_coercion.rb +69 -0
  410. data/lib/rubocop/cop/style/array_join.rb +9 -9
  411. data/lib/rubocop/cop/style/ascii_comments.rb +6 -7
  412. data/lib/rubocop/cop/style/attr.rb +15 -15
  413. data/lib/rubocop/cop/style/auto_resource_cleanup.rb +9 -12
  414. data/lib/rubocop/cop/style/bare_percent_literals.rb +12 -14
  415. data/lib/rubocop/cop/style/begin_block.rb +2 -2
  416. data/lib/rubocop/cop/style/bisected_attr_accessor.rb +125 -0
  417. data/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +60 -0
  418. data/lib/rubocop/cop/style/block_comments.rb +14 -18
  419. data/lib/rubocop/cop/style/block_delimiters.rb +77 -26
  420. data/lib/rubocop/cop/style/case_equality.rb +55 -4
  421. data/lib/rubocop/cop/style/case_like_if.rb +258 -0
  422. data/lib/rubocop/cop/style/character_literal.rb +12 -15
  423. data/lib/rubocop/cop/style/class_and_module_children.rb +28 -21
  424. data/lib/rubocop/cop/style/class_check.rb +6 -11
  425. data/lib/rubocop/cop/style/class_equality_comparison.rb +67 -0
  426. data/lib/rubocop/cop/style/class_methods.rb +8 -14
  427. data/lib/rubocop/cop/style/class_methods_definitions.rb +157 -0
  428. data/lib/rubocop/cop/style/class_vars.rb +23 -7
  429. data/lib/rubocop/cop/style/collection_compact.rb +91 -0
  430. data/lib/rubocop/cop/style/collection_methods.rb +24 -15
  431. data/lib/rubocop/cop/style/colon_method_call.rb +7 -9
  432. data/lib/rubocop/cop/style/colon_method_definition.rb +6 -6
  433. data/lib/rubocop/cop/style/combinable_loops.rb +92 -0
  434. data/lib/rubocop/cop/style/command_literal.rb +22 -28
  435. data/lib/rubocop/cop/style/comment_annotation.rb +24 -21
  436. data/lib/rubocop/cop/style/commented_keyword.rb +34 -21
  437. data/lib/rubocop/cop/style/conditional_assignment.rb +75 -91
  438. data/lib/rubocop/cop/style/constant_visibility.rb +31 -2
  439. data/lib/rubocop/cop/style/copyright.rb +21 -24
  440. data/lib/rubocop/cop/style/date_time.rb +16 -5
  441. data/lib/rubocop/cop/style/def_with_parentheses.rb +9 -12
  442. data/lib/rubocop/cop/style/dir.rb +11 -12
  443. data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +87 -0
  444. data/lib/rubocop/cop/style/document_dynamic_eval_definition.rb +169 -0
  445. data/lib/rubocop/cop/style/documentation.rb +92 -18
  446. data/lib/rubocop/cop/style/documentation_method.rb +2 -1
  447. data/lib/rubocop/cop/style/double_cop_disable_directive.rb +12 -15
  448. data/lib/rubocop/cop/style/double_negation.rb +50 -6
  449. data/lib/rubocop/cop/style/each_for_simple_loop.rb +7 -10
  450. data/lib/rubocop/cop/style/each_with_object.rb +17 -19
  451. data/lib/rubocop/cop/style/empty_block_parameter.rb +9 -10
  452. data/lib/rubocop/cop/style/empty_case_condition.rb +22 -26
  453. data/lib/rubocop/cop/style/empty_else.rb +14 -22
  454. data/lib/rubocop/cop/style/empty_lambda_parameter.rb +9 -10
  455. data/lib/rubocop/cop/style/empty_literal.rb +39 -31
  456. data/lib/rubocop/cop/style/empty_method.rb +12 -23
  457. data/lib/rubocop/cop/style/encoding.rb +6 -10
  458. data/lib/rubocop/cop/style/end_block.rb +7 -4
  459. data/lib/rubocop/cop/style/endless_method.rb +101 -0
  460. data/lib/rubocop/cop/style/eval_with_location.rb +143 -54
  461. data/lib/rubocop/cop/style/even_odd.rb +9 -11
  462. data/lib/rubocop/cop/style/expand_path_arguments.rb +27 -25
  463. data/lib/rubocop/cop/style/explicit_block_argument.rb +114 -0
  464. data/lib/rubocop/cop/style/exponential_notation.rb +116 -0
  465. data/lib/rubocop/cop/style/float_division.rb +60 -11
  466. data/lib/rubocop/cop/style/for.rb +7 -13
  467. data/lib/rubocop/cop/style/format_string.rb +30 -24
  468. data/lib/rubocop/cop/style/format_string_token.rb +78 -22
  469. data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +83 -38
  470. data/lib/rubocop/cop/style/global_std_stream.rb +66 -0
  471. data/lib/rubocop/cop/style/global_vars.rb +2 -2
  472. data/lib/rubocop/cop/style/guard_clause.rb +32 -13
  473. data/lib/rubocop/cop/style/hash_as_last_array_item.rb +88 -0
  474. data/lib/rubocop/cop/style/hash_conversion.rb +133 -0
  475. data/lib/rubocop/cop/style/hash_each_methods.rb +86 -0
  476. data/lib/rubocop/cop/style/hash_except.rb +96 -0
  477. data/lib/rubocop/cop/style/hash_like_case.rb +77 -0
  478. data/lib/rubocop/cop/style/hash_syntax.rb +50 -45
  479. data/lib/rubocop/cop/style/hash_transform_keys.rb +95 -0
  480. data/lib/rubocop/cop/style/hash_transform_values.rb +92 -0
  481. data/lib/rubocop/cop/style/identical_conditional_branches.rb +10 -7
  482. data/lib/rubocop/cop/style/if_inside_else.rb +50 -2
  483. data/lib/rubocop/cop/style/if_unless_modifier.rb +76 -46
  484. data/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +11 -3
  485. data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +122 -0
  486. data/lib/rubocop/cop/style/if_with_semicolon.rb +51 -3
  487. data/lib/rubocop/cop/style/implicit_runtime_error.rb +3 -1
  488. data/lib/rubocop/cop/style/infinite_loop.rb +27 -26
  489. data/lib/rubocop/cop/style/inline_comment.rb +4 -4
  490. data/lib/rubocop/cop/style/inverse_methods.rb +34 -42
  491. data/lib/rubocop/cop/style/ip_addresses.rb +3 -4
  492. data/lib/rubocop/cop/style/keyword_parameters_order.rb +75 -0
  493. data/lib/rubocop/cop/style/lambda.rb +11 -17
  494. data/lib/rubocop/cop/style/lambda_call.rb +18 -35
  495. data/lib/rubocop/cop/style/line_end_concatenation.rb +21 -25
  496. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +58 -207
  497. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +189 -0
  498. data/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +44 -0
  499. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +19 -12
  500. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +14 -7
  501. data/lib/rubocop/cop/style/method_def_parentheses.rb +18 -24
  502. data/lib/rubocop/cop/style/min_max.rb +10 -14
  503. data/lib/rubocop/cop/style/missing_else.rb +13 -25
  504. data/lib/rubocop/cop/style/missing_respond_to_missing.rb +11 -5
  505. data/lib/rubocop/cop/style/mixin_grouping.rb +27 -40
  506. data/lib/rubocop/cop/style/mixin_usage.rb +12 -30
  507. data/lib/rubocop/cop/style/module_function.rb +70 -25
  508. data/lib/rubocop/cop/style/multiline_block_chain.rb +13 -5
  509. data/lib/rubocop/cop/style/multiline_if_modifier.rb +4 -11
  510. data/lib/rubocop/cop/style/multiline_if_then.rb +5 -11
  511. data/lib/rubocop/cop/style/multiline_memoization.rb +15 -13
  512. data/lib/rubocop/cop/style/multiline_method_signature.rb +33 -3
  513. data/lib/rubocop/cop/style/multiline_ternary_operator.rb +32 -11
  514. data/lib/rubocop/cop/style/multiline_when_then.rb +31 -11
  515. data/lib/rubocop/cop/style/multiple_comparison.rb +76 -11
  516. data/lib/rubocop/cop/style/mutable_constant.rb +41 -33
  517. data/lib/rubocop/cop/style/negated_if.rb +10 -11
  518. data/lib/rubocop/cop/style/negated_if_else_condition.rb +120 -0
  519. data/lib/rubocop/cop/style/negated_unless.rb +10 -11
  520. data/lib/rubocop/cop/style/negated_while.rb +7 -15
  521. data/lib/rubocop/cop/style/nested_modifier.rb +10 -17
  522. data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +23 -20
  523. data/lib/rubocop/cop/style/nested_ternary_operator.rb +30 -4
  524. data/lib/rubocop/cop/style/next.rb +18 -27
  525. data/lib/rubocop/cop/style/nil_comparison.rb +19 -11
  526. data/lib/rubocop/cop/style/nil_lambda.rb +53 -0
  527. data/lib/rubocop/cop/style/non_nil_check.rb +56 -34
  528. data/lib/rubocop/cop/style/not.rb +20 -26
  529. data/lib/rubocop/cop/style/numeric_literal_prefix.rb +6 -11
  530. data/lib/rubocop/cop/style/numeric_literals.rb +19 -27
  531. data/lib/rubocop/cop/style/numeric_predicate.rb +17 -24
  532. data/lib/rubocop/cop/style/one_line_conditional.rb +75 -29
  533. data/lib/rubocop/cop/style/option_hash.rb +3 -4
  534. data/lib/rubocop/cop/style/optional_arguments.rb +4 -7
  535. data/lib/rubocop/cop/style/optional_boolean_parameter.rb +53 -0
  536. data/lib/rubocop/cop/style/or_assignment.rb +14 -12
  537. data/lib/rubocop/cop/style/parallel_assignment.rb +27 -24
  538. data/lib/rubocop/cop/style/parentheses_around_condition.rb +7 -6
  539. data/lib/rubocop/cop/style/percent_literal_delimiters.rb +22 -30
  540. data/lib/rubocop/cop/style/percent_q_literals.rb +9 -12
  541. data/lib/rubocop/cop/style/perl_backrefs.rb +84 -16
  542. data/lib/rubocop/cop/style/preferred_hash_methods.rb +12 -18
  543. data/lib/rubocop/cop/style/proc.rb +8 -8
  544. data/lib/rubocop/cop/style/raise_args.rb +39 -37
  545. data/lib/rubocop/cop/style/random_with_offset.rb +30 -35
  546. data/lib/rubocop/cop/style/redundant_argument.rb +85 -0
  547. data/lib/rubocop/cop/style/redundant_assignment.rb +106 -0
  548. data/lib/rubocop/cop/style/redundant_begin.rb +79 -13
  549. data/lib/rubocop/cop/style/redundant_capital_w.rb +7 -11
  550. data/lib/rubocop/cop/style/redundant_condition.rb +43 -18
  551. data/lib/rubocop/cop/style/redundant_conditional.rb +14 -15
  552. data/lib/rubocop/cop/style/redundant_exception.rb +22 -17
  553. data/lib/rubocop/cop/style/redundant_fetch_block.rb +115 -0
  554. data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +52 -0
  555. data/lib/rubocop/cop/style/redundant_freeze.rb +16 -14
  556. data/lib/rubocop/cop/style/redundant_interpolation.rb +32 -27
  557. data/lib/rubocop/cop/style/redundant_parentheses.rb +51 -38
  558. data/lib/rubocop/cop/style/redundant_percent_q.rb +14 -17
  559. data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +104 -0
  560. data/lib/rubocop/cop/style/redundant_regexp_escape.rb +118 -0
  561. data/lib/rubocop/cop/style/redundant_return.rb +29 -29
  562. data/lib/rubocop/cop/style/redundant_self.rb +27 -29
  563. data/lib/rubocop/cop/style/redundant_self_assignment.rb +118 -0
  564. data/lib/rubocop/cop/style/redundant_sort.rb +32 -37
  565. data/lib/rubocop/cop/style/redundant_sort_by.rb +6 -9
  566. data/lib/rubocop/cop/style/regexp_literal.rb +14 -29
  567. data/lib/rubocop/cop/style/rescue_modifier.rb +39 -12
  568. data/lib/rubocop/cop/style/rescue_standard_error.rb +25 -23
  569. data/lib/rubocop/cop/style/return_nil.rb +13 -8
  570. data/lib/rubocop/cop/style/safe_navigation.rb +44 -39
  571. data/lib/rubocop/cop/style/sample.rb +14 -15
  572. data/lib/rubocop/cop/style/self_assignment.rb +26 -22
  573. data/lib/rubocop/cop/style/semicolon.rb +10 -10
  574. data/lib/rubocop/cop/style/send.rb +5 -7
  575. data/lib/rubocop/cop/style/signal_exception.rb +32 -27
  576. data/lib/rubocop/cop/style/single_argument_dig.rb +55 -0
  577. data/lib/rubocop/cop/style/single_line_block_params.rb +34 -12
  578. data/lib/rubocop/cop/style/single_line_methods.rb +65 -18
  579. data/lib/rubocop/cop/style/slicing_with_range.rb +38 -0
  580. data/lib/rubocop/cop/style/sole_nested_conditional.rb +167 -0
  581. data/lib/rubocop/cop/style/special_global_vars.rb +18 -51
  582. data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +18 -25
  583. data/lib/rubocop/cop/style/static_class.rb +97 -0
  584. data/lib/rubocop/cop/style/stderr_puts.rb +9 -13
  585. data/lib/rubocop/cop/style/string_chars.rb +39 -0
  586. data/lib/rubocop/cop/style/string_concatenation.rb +142 -0
  587. data/lib/rubocop/cop/style/string_hash_keys.rb +8 -7
  588. data/lib/rubocop/cop/style/string_literals.rb +16 -13
  589. data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +4 -3
  590. data/lib/rubocop/cop/style/string_methods.rb +7 -17
  591. data/lib/rubocop/cop/style/strip.rb +10 -14
  592. data/lib/rubocop/cop/style/struct_inheritance.rb +33 -4
  593. data/lib/rubocop/cop/style/swap_values.rb +108 -0
  594. data/lib/rubocop/cop/style/symbol_array.rb +13 -24
  595. data/lib/rubocop/cop/style/symbol_literal.rb +5 -9
  596. data/lib/rubocop/cop/style/symbol_proc.rb +50 -32
  597. data/lib/rubocop/cop/style/ternary_parentheses.rb +30 -35
  598. data/lib/rubocop/cop/style/trailing_body_on_class.rb +3 -6
  599. data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +10 -9
  600. data/lib/rubocop/cop/style/trailing_body_on_module.rb +3 -6
  601. data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +37 -27
  602. data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +43 -5
  603. data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +86 -0
  604. data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +46 -5
  605. data/lib/rubocop/cop/style/trailing_method_end_statement.rb +12 -38
  606. data/lib/rubocop/cop/style/trailing_underscore_variable.rb +16 -31
  607. data/lib/rubocop/cop/style/trivial_accessors.rb +36 -40
  608. data/lib/rubocop/cop/style/unless_else.rb +7 -11
  609. data/lib/rubocop/cop/style/unless_logical_operators.rb +105 -0
  610. data/lib/rubocop/cop/style/unpack_first.rb +5 -11
  611. data/lib/rubocop/cop/style/variable_interpolation.rb +8 -11
  612. data/lib/rubocop/cop/style/when_then.rb +5 -9
  613. data/lib/rubocop/cop/style/while_until_do.rb +6 -16
  614. data/lib/rubocop/cop/style/while_until_modifier.rb +16 -24
  615. data/lib/rubocop/cop/style/word_array.rb +6 -25
  616. data/lib/rubocop/cop/style/yoda_condition.rb +33 -19
  617. data/lib/rubocop/cop/style/zero_length_predicate.rb +25 -23
  618. data/lib/rubocop/cop/team.rb +147 -84
  619. data/lib/rubocop/cop/util.rb +43 -27
  620. data/lib/rubocop/cop/utils/format_string.rb +22 -9
  621. data/lib/rubocop/cop/variable_force.rb +15 -27
  622. data/lib/rubocop/cop/variable_force/assignment.rb +2 -2
  623. data/lib/rubocop/cop/variable_force/branch.rb +3 -9
  624. data/lib/rubocop/cop/variable_force/reference.rb +1 -3
  625. data/lib/rubocop/cop/variable_force/scope.rb +6 -9
  626. data/lib/rubocop/cop/variable_force/variable.rb +9 -12
  627. data/lib/rubocop/cops_documentation_generator.rb +270 -0
  628. data/lib/rubocop/core_ext/string.rb +2 -2
  629. data/lib/rubocop/directive_comment.rb +92 -0
  630. data/lib/rubocop/error.rb +1 -0
  631. data/lib/rubocop/ext/processed_source.rb +18 -0
  632. data/lib/rubocop/ext/regexp_node.rb +87 -0
  633. data/lib/rubocop/ext/regexp_parser.rb +92 -0
  634. data/lib/rubocop/file_finder.rb +12 -13
  635. data/lib/rubocop/formatter/auto_gen_config_formatter.rb +2 -1
  636. data/lib/rubocop/formatter/base_formatter.rb +0 -4
  637. data/lib/rubocop/formatter/clang_style_formatter.rb +5 -3
  638. data/lib/rubocop/formatter/disabled_config_formatter.rb +39 -30
  639. data/lib/rubocop/formatter/emacs_style_formatter.rb +2 -0
  640. data/lib/rubocop/formatter/formatter_set.rb +6 -6
  641. data/lib/rubocop/formatter/git_hub_actions_formatter.rb +44 -0
  642. data/lib/rubocop/formatter/html_formatter.rb +6 -10
  643. data/lib/rubocop/formatter/json_formatter.rb +1 -5
  644. data/lib/rubocop/formatter/junit_formatter.rb +78 -0
  645. data/lib/rubocop/formatter/offense_count_formatter.rb +2 -2
  646. data/lib/rubocop/formatter/pacman_formatter.rb +1 -1
  647. data/lib/rubocop/formatter/progress_formatter.rb +3 -4
  648. data/lib/rubocop/formatter/quiet_formatter.rb +1 -1
  649. data/lib/rubocop/formatter/simple_text_formatter.rb +40 -7
  650. data/lib/rubocop/formatter/tap_formatter.rb +7 -3
  651. data/lib/rubocop/formatter/worst_offenders_formatter.rb +2 -2
  652. data/lib/rubocop/lockfile.rb +40 -0
  653. data/lib/rubocop/magic_comment.rb +33 -4
  654. data/lib/rubocop/name_similarity.rb +18 -10
  655. data/lib/rubocop/options.rb +124 -77
  656. data/lib/rubocop/path_util.rb +20 -22
  657. data/lib/rubocop/platform.rb +1 -1
  658. data/lib/rubocop/rake_task.rb +12 -11
  659. data/lib/rubocop/remote_config.rb +6 -10
  660. data/lib/rubocop/result_cache.rb +50 -31
  661. data/lib/rubocop/rspec/cop_helper.rb +11 -35
  662. data/lib/rubocop/rspec/expect_offense.rb +129 -40
  663. data/lib/rubocop/rspec/shared_contexts.rb +78 -35
  664. data/lib/rubocop/runner.rb +112 -75
  665. data/lib/rubocop/string_interpreter.rb +3 -0
  666. data/lib/rubocop/target_finder.rb +53 -50
  667. data/lib/rubocop/target_ruby.rb +264 -0
  668. data/lib/rubocop/util.rb +16 -0
  669. data/lib/rubocop/version.rb +71 -7
  670. data/lib/rubocop/yaml_duplication_checker.rb +1 -0
  671. metadata +208 -94
  672. data/bin/console +0 -10
  673. data/bin/setup +0 -7
  674. data/lib/rubocop/ast/builder.rb +0 -82
  675. data/lib/rubocop/ast/node.rb +0 -644
  676. data/lib/rubocop/ast/node/alias_node.rb +0 -24
  677. data/lib/rubocop/ast/node/and_node.rb +0 -29
  678. data/lib/rubocop/ast/node/args_node.rb +0 -29
  679. data/lib/rubocop/ast/node/array_node.rb +0 -57
  680. data/lib/rubocop/ast/node/block_node.rb +0 -117
  681. data/lib/rubocop/ast/node/break_node.rb +0 -17
  682. data/lib/rubocop/ast/node/case_node.rb +0 -56
  683. data/lib/rubocop/ast/node/class_node.rb +0 -31
  684. data/lib/rubocop/ast/node/def_node.rb +0 -71
  685. data/lib/rubocop/ast/node/defined_node.rb +0 -17
  686. data/lib/rubocop/ast/node/ensure_node.rb +0 -17
  687. data/lib/rubocop/ast/node/float_node.rb +0 -12
  688. data/lib/rubocop/ast/node/for_node.rb +0 -53
  689. data/lib/rubocop/ast/node/hash_node.rb +0 -109
  690. data/lib/rubocop/ast/node/if_node.rb +0 -175
  691. data/lib/rubocop/ast/node/int_node.rb +0 -12
  692. data/lib/rubocop/ast/node/keyword_splat_node.rb +0 -45
  693. data/lib/rubocop/ast/node/mixin/basic_literal_node.rb +0 -16
  694. data/lib/rubocop/ast/node/mixin/binary_operator_node.rb +0 -43
  695. data/lib/rubocop/ast/node/mixin/collection_node.rb +0 -15
  696. data/lib/rubocop/ast/node/mixin/conditional_node.rb +0 -45
  697. data/lib/rubocop/ast/node/mixin/hash_element_node.rb +0 -125
  698. data/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +0 -261
  699. data/lib/rubocop/ast/node/mixin/method_identifier_predicates.rb +0 -114
  700. data/lib/rubocop/ast/node/mixin/modifier_node.rb +0 -17
  701. data/lib/rubocop/ast/node/mixin/numeric_node.rb +0 -21
  702. data/lib/rubocop/ast/node/mixin/parameterized_node.rb +0 -61
  703. data/lib/rubocop/ast/node/mixin/predicate_operator_node.rb +0 -35
  704. data/lib/rubocop/ast/node/module_node.rb +0 -24
  705. data/lib/rubocop/ast/node/or_node.rb +0 -29
  706. data/lib/rubocop/ast/node/pair_node.rb +0 -63
  707. data/lib/rubocop/ast/node/range_node.rb +0 -18
  708. data/lib/rubocop/ast/node/regexp_node.rb +0 -35
  709. data/lib/rubocop/ast/node/resbody_node.rb +0 -24
  710. data/lib/rubocop/ast/node/retry_node.rb +0 -17
  711. data/lib/rubocop/ast/node/return_node.rb +0 -24
  712. data/lib/rubocop/ast/node/self_class_node.rb +0 -24
  713. data/lib/rubocop/ast/node/send_node.rb +0 -13
  714. data/lib/rubocop/ast/node/str_node.rb +0 -16
  715. data/lib/rubocop/ast/node/super_node.rb +0 -21
  716. data/lib/rubocop/ast/node/symbol_node.rb +0 -12
  717. data/lib/rubocop/ast/node/until_node.rb +0 -35
  718. data/lib/rubocop/ast/node/when_node.rb +0 -53
  719. data/lib/rubocop/ast/node/while_node.rb +0 -35
  720. data/lib/rubocop/ast/node/yield_node.rb +0 -21
  721. data/lib/rubocop/ast/sexp.rb +0 -16
  722. data/lib/rubocop/ast/traversal.rb +0 -183
  723. data/lib/rubocop/cop/layout/tab.rb +0 -75
  724. data/lib/rubocop/cop/lint/end_in_method.rb +0 -40
  725. data/lib/rubocop/cop/lint/useless_comparison.rb +0 -28
  726. data/lib/rubocop/cop/mixin/classish_length.rb +0 -37
  727. data/lib/rubocop/cop/mixin/parser_diagnostic.rb +0 -37
  728. data/lib/rubocop/cop/mixin/too_many_lines.rb +0 -35
  729. data/lib/rubocop/cop/style/braces_around_hash_parameters.rb +0 -209
  730. data/lib/rubocop/cop/style/method_missing_super.rb +0 -34
  731. data/lib/rubocop/formatter/disabled_lines_formatter.rb +0 -57
  732. data/lib/rubocop/node_pattern.rb +0 -801
  733. data/lib/rubocop/processed_source.rb +0 -216
  734. data/lib/rubocop/string_util.rb +0 -14
  735. data/lib/rubocop/token.rb +0 -114
@@ -0,0 +1,200 @@
1
+ # Configuration of obsolete/deprecated cops used by `ConfigObsoletion`
2
+
3
+ # Cops that were renamed
4
+ renamed:
5
+ Layout/AlignArguments: Layout/ArgumentAlignment
6
+ Layout/AlignArray: Layout/ArrayAlignment
7
+ Layout/AlignHash: Layout/HashAlignment
8
+ Layout/AlignParameters: Layout/ParameterAlignment
9
+ Layout/IndentArray: Layout/FirstArrayElementIndentation
10
+ Layout/IndentAssignment: Layout/AssignmentIndentation
11
+ Layout/IndentFirstArgument: Layout/FirstArgumentIndentation
12
+ Layout/IndentFirstArrayElement: Layout/FirstArrayElementIndentation
13
+ Layout/IndentFirstHashElement: Layout/FirstHashElementIndentation
14
+ Layout/IndentFirstParameter: Layout/FirstParameterIndentation
15
+ Layout/IndentHash: Layout/FirstHashElementIndentation
16
+ Layout/IndentHeredoc: Layout/HeredocIndentation
17
+ Layout/LeadingBlankLines: Layout/LeadingEmptyLines
18
+ Layout/Tab: Layout/IndentationStyle
19
+ Layout/TrailingBlankLines: Layout/TrailingEmptyLines
20
+ Lint/BlockAlignment: Layout/BlockAlignment
21
+ Lint/DefEndAlignment: Layout/DefEndAlignment
22
+ Lint/DuplicatedKey: Lint/DuplicateHashKey
23
+ Lint/EndAlignment: Layout/EndAlignment
24
+ Lint/EndInMethod: Style/EndBlock
25
+ Lint/Eval: Security/Eval
26
+ Lint/HandleExceptions: Lint/SuppressedException
27
+ Lint/MultipleCompare: Lint/MultipleComparison
28
+ Lint/StringConversionInInterpolation: Lint/RedundantStringCoercion
29
+ Lint/UnneededCopDisableDirective: Lint/RedundantCopDisableDirective
30
+ Lint/UnneededCopEnableDirective: Lint/RedundantCopEnableDirective
31
+ Lint/UnneededRequireStatement: Lint/RedundantRequireStatement
32
+ Lint/UnneededSplatExpansion: Lint/RedundantSplatExpansion
33
+ Metrics/LineLength: Layout/LineLength
34
+ Naming/UncommunicativeBlockParamName: Naming/BlockParameterName
35
+ Naming/UncommunicativeMethodParamName: Naming/MethodParameterName
36
+ Style/AccessorMethodName: Naming/AccessorMethodName
37
+ Style/AsciiIdentifiers: Naming/AsciiIdentifiers
38
+ Style/ClassAndModuleCamelCase: Naming/ClassAndModuleCamelCase
39
+ Style/ConstantName: Naming/ConstantName
40
+ Style/DeprecatedHashMethods: Style/PreferredHashMethods
41
+ Style/FileName: Naming/FileName
42
+ Style/FlipFlop: Lint/FlipFlop
43
+ Style/MethodCallParentheses: Style/MethodCallWithoutArgsParentheses
44
+ Style/MethodName: Naming/MethodName
45
+ Style/OpMethod: Naming/BinaryOperatorParameterName
46
+ Style/PredicateName: Naming/PredicateName
47
+ Style/SingleSpaceBeforeFirstArg: Layout/SpaceBeforeFirstArg
48
+ Style/UnneededCapitalW: Style/RedundantCapitalW
49
+ Style/UnneededCondition: Style/RedundantCondition
50
+ Style/UnneededInterpolation: Style/RedundantInterpolation
51
+ Style/UnneededPercentQ: Style/RedundantPercentQ
52
+ Style/UnneededSort: Style/RedundantSort
53
+ Style/VariableName: Naming/VariableName
54
+ Style/VariableNumber: Naming/VariableNumber
55
+
56
+ # Cops that were removed
57
+ removed:
58
+ Layout/SpaceAfterControlKeyword:
59
+ alternatives: Layout/SpaceAroundKeyword
60
+ Layout/SpaceBeforeModifierKeyword:
61
+ alternatives: Layout/SpaceAroundKeyword
62
+ Lint/InvalidCharacterLiteral:
63
+ reason: it was never being actually triggered
64
+ Lint/RescueWithoutErrorClass:
65
+ alternatives: Style/RescueStandardError
66
+ Lint/SpaceBeforeFirstArg:
67
+ reason: >
68
+ it was a duplicate of `Layout/SpaceBeforeFirstArg`. Please use
69
+ `Layout/SpaceBeforeFirstArg` instead
70
+ Lint/UselessComparison:
71
+ reason: >
72
+ it has been superseded by
73
+ `Lint/BinaryOperatorWithIdenticalOperands`. Please use
74
+ `Lint/BinaryOperatorWithIdenticalOperands` instead
75
+ Style/BracesAroundHashParameters: true
76
+ Style/MethodMissingSuper:
77
+ reason: >
78
+ it has been superseded by `Lint/MissingSuper`. Please use
79
+ `Lint/MissingSuper` instead
80
+ Style/SpaceAfterControlKeyword:
81
+ alternatives: Layout/SpaceAroundKeyword
82
+ Style/SpaceBeforeModifierKeyword:
83
+ alternatives: Layout/SpaceAroundKeyword
84
+ Style/TrailingComma:
85
+ alternatives:
86
+ - Style/TrailingCommaInArguments
87
+ - Style/TrailingCommaInArrayLiteral
88
+ - Style/TrailingCommaInHashLiteral
89
+ Style/TrailingCommaInLiteral:
90
+ alternatives:
91
+ - Style/TrailingCommaInArrayLiteral
92
+ - Style/TrailingCommaInHashLiteral
93
+
94
+ # Cops split into multiple other cops
95
+ split:
96
+ Style/MethodMissing:
97
+ alternatives:
98
+ - Style/MethodMissingSuper
99
+ - Style/MissingRespondToMissing
100
+
101
+ # Cops that were extracted into a different gem
102
+ extracted:
103
+ Performance/*: rubocop-performance
104
+ Rails/*: rubocop-rails
105
+
106
+ # Cop parameters that have been changed
107
+ # Can be treated as a warning instead of a failure with `severity: warning`
108
+ changed_parameters:
109
+ - cops:
110
+ - Layout/SpaceAroundOperators
111
+ - Style/SpaceAroundOperators
112
+ parameters: MultiSpaceAllowedForOperators
113
+ reason: >
114
+ If your intention was to allow extra spaces for alignment, please
115
+ use `AllowForAlignment: true` instead.
116
+ - cops: Style/Encoding
117
+ parameters:
118
+ - EnforcedStyle
119
+ - SupportedStyles
120
+ - AutoCorrectEncodingComment
121
+ reason: '`Style/Encoding` no longer supports styles. The "never" behavior is always assumed.'
122
+ - cops: Style/IfUnlessModifier
123
+ parameters: MaxLineLength
124
+ reason: >
125
+ `Style/IfUnlessModifier: MaxLineLength` has been removed.
126
+ Use `Layout/LineLength: Max` instead
127
+ - cops: Style/WhileUntilModifier
128
+ parameters: MaxLineLength
129
+ reason: >
130
+ `Style/WhileUntilModifier: MaxLineLength` has been removed.
131
+ Use `Layout/LineLength: Max` instead
132
+ - cops: AllCops
133
+ parameters: RunRailsCops
134
+ reason: |-
135
+ Use the following configuration instead:
136
+ Rails:
137
+ Enabled: true
138
+ - cops: Layout/CaseIndentation
139
+ parameters: IndentWhenRelativeTo
140
+ alternative: EnforcedStyle
141
+ - cops:
142
+ - Lint/BlockAlignment
143
+ - Layout/BlockAlignment
144
+ - Lint/EndAlignment
145
+ - Layout/EndAlignment
146
+ - Lint/DefEndAlignment
147
+ - Layout/DefEndAlignment
148
+ parameters: AlignWith
149
+ alternative: EnforcedStyleAlignWith
150
+ - cops: Rails/UniqBeforePluck
151
+ parameters: EnforcedMode
152
+ alternative: EnforcedStyle
153
+ - cops: Style/MethodCallWithArgsParentheses
154
+ parameters: IgnoredMethodPatterns
155
+ alternative: IgnoredPatterns
156
+ - cops:
157
+ - Performance/Count
158
+ - Performance/Detect
159
+ parameters: SafeMode
160
+ reason: "`SafeMode` has been removed. Use `SafeAutoCorrect` instead."
161
+ - cops: Bundler/GemComment
162
+ parameters: Whitelist
163
+ alternative: IgnoredGems
164
+ - cops:
165
+ - Lint/SafeNavigationChain
166
+ - Lint/SafeNavigationConsistency
167
+ - Style/NestedParenthesizedCalls
168
+ - Style/SafeNavigation
169
+ - Style/TrivialAccessors
170
+ parameters: Whitelist
171
+ alternative: AllowedMethods
172
+ - cops: Style/IpAddresses
173
+ parameters: Whitelist
174
+ alternative: AllowedAddresses
175
+ - cops: Naming/HeredocDelimiterNaming
176
+ parameters: Blacklist
177
+ alternative: ForbiddenDelimiters
178
+ - cops: Naming/PredicateName
179
+ parameters: NamePrefixBlacklist
180
+ alternative: ForbiddenPrefixes
181
+ - cops: Naming/PredicateName
182
+ parameters: NameWhitelist
183
+ alternative: AllowedMethods
184
+ - cops:
185
+ - Metrics/BlockLength
186
+ - Metrics/MethodLength
187
+ parameters: ExcludedMethods
188
+ alternative: IgnoredMethods
189
+ severity: warning
190
+ - cops: Lint/Debugger
191
+ parameters: DebuggerReceivers
192
+ reason: "`DebuggerReceivers` is no longer necessary, method receivers should be specified in `DebuggerMethods` instead."
193
+ severity: warning
194
+
195
+ # Enforced styles that have been removed or replaced
196
+ changed_enforced_styles:
197
+ - cops: Layout/IndentationConsistency
198
+ parameters: EnforcedStyle
199
+ value: rails
200
+ alternative: indented_internal_methods
data/exe/rubocop CHANGED
@@ -9,9 +9,7 @@ require 'benchmark'
9
9
  cli = RuboCop::CLI.new
10
10
  result = 0
11
11
 
12
- time = Benchmark.realtime do
13
- result = cli.run
14
- end
12
+ time = Benchmark.realtime { result = cli.run }
15
13
 
16
- puts "Finished in #{time} seconds" if cli.options[:debug]
14
+ puts "Finished in #{time} seconds" if cli.options[:debug] || cli.options[:display_time]
17
15
  exit result
data/lib/rubocop.rb CHANGED
@@ -1,84 +1,46 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'parser'
3
+ require 'English'
4
+ before_us = $LOADED_FEATURES.dup
4
5
  require 'rainbow'
5
6
 
6
- require 'English'
7
7
  require 'set'
8
8
  require 'forwardable'
9
- require 'unicode/display_width/no_string_ext'
9
+ require 'regexp_parser'
10
+ require 'unicode/display_width'
10
11
 
12
+ # we have to require RuboCop's version, before rubocop-ast's
11
13
  require_relative 'rubocop/version'
14
+ require 'rubocop-ast'
15
+
16
+ require_relative 'rubocop/ast_aliases'
17
+ require_relative 'rubocop/ext/regexp_node'
18
+ require_relative 'rubocop/ext/regexp_parser'
12
19
 
13
20
  require_relative 'rubocop/core_ext/string'
21
+ require_relative 'rubocop/ext/processed_source'
22
+
14
23
  require_relative 'rubocop/path_util'
15
24
  require_relative 'rubocop/file_finder'
16
25
  require_relative 'rubocop/platform'
17
- require_relative 'rubocop/string_util'
18
26
  require_relative 'rubocop/name_similarity'
19
- require_relative 'rubocop/node_pattern'
20
27
  require_relative 'rubocop/string_interpreter'
21
- require_relative 'rubocop/ast/sexp'
22
- require_relative 'rubocop/ast/node'
23
- require_relative 'rubocop/ast/node/mixin/method_identifier_predicates'
24
- require_relative 'rubocop/ast/node/mixin/binary_operator_node'
25
- require_relative 'rubocop/ast/node/mixin/collection_node'
26
- require_relative 'rubocop/ast/node/mixin/conditional_node'
27
- require_relative 'rubocop/ast/node/mixin/hash_element_node'
28
- require_relative 'rubocop/ast/node/mixin/method_dispatch_node'
29
- require_relative 'rubocop/ast/node/mixin/modifier_node'
30
- require_relative 'rubocop/ast/node/mixin/numeric_node'
31
- require_relative 'rubocop/ast/node/mixin/parameterized_node'
32
- require_relative 'rubocop/ast/node/mixin/predicate_operator_node'
33
- require_relative 'rubocop/ast/node/mixin/basic_literal_node'
34
- require_relative 'rubocop/ast/node/alias_node'
35
- require_relative 'rubocop/ast/node/and_node'
36
- require_relative 'rubocop/ast/node/args_node'
37
- require_relative 'rubocop/ast/node/array_node'
38
- require_relative 'rubocop/ast/node/block_node'
39
- require_relative 'rubocop/ast/node/break_node'
40
- require_relative 'rubocop/ast/node/case_node'
41
- require_relative 'rubocop/ast/node/class_node'
42
- require_relative 'rubocop/ast/node/def_node'
43
- require_relative 'rubocop/ast/node/defined_node'
44
- require_relative 'rubocop/ast/node/ensure_node'
45
- require_relative 'rubocop/ast/node/for_node'
46
- require_relative 'rubocop/ast/node/float_node'
47
- require_relative 'rubocop/ast/node/hash_node'
48
- require_relative 'rubocop/ast/node/if_node'
49
- require_relative 'rubocop/ast/node/int_node'
50
- require_relative 'rubocop/ast/node/keyword_splat_node'
51
- require_relative 'rubocop/ast/node/module_node'
52
- require_relative 'rubocop/ast/node/or_node'
53
- require_relative 'rubocop/ast/node/pair_node'
54
- require_relative 'rubocop/ast/node/range_node'
55
- require_relative 'rubocop/ast/node/regexp_node'
56
- require_relative 'rubocop/ast/node/resbody_node'
57
- require_relative 'rubocop/ast/node/retry_node'
58
- require_relative 'rubocop/ast/node/return_node'
59
- require_relative 'rubocop/ast/node/self_class_node'
60
- require_relative 'rubocop/ast/node/send_node'
61
- require_relative 'rubocop/ast/node/str_node'
62
- require_relative 'rubocop/ast/node/super_node'
63
- require_relative 'rubocop/ast/node/symbol_node'
64
- require_relative 'rubocop/ast/node/until_node'
65
- require_relative 'rubocop/ast/node/when_node'
66
- require_relative 'rubocop/ast/node/while_node'
67
- require_relative 'rubocop/ast/node/yield_node'
68
- require_relative 'rubocop/ast/builder'
69
- require_relative 'rubocop/ast/traversal'
70
28
  require_relative 'rubocop/error'
71
29
  require_relative 'rubocop/warning'
30
+ require_relative 'rubocop/util'
72
31
 
73
32
  require_relative 'rubocop/cop/util'
74
33
  require_relative 'rubocop/cop/offense'
75
34
  require_relative 'rubocop/cop/message_annotator'
76
35
  require_relative 'rubocop/cop/ignored_node'
77
36
  require_relative 'rubocop/cop/autocorrect_logic'
37
+ require_relative 'rubocop/cop/exclude_limit'
78
38
  require_relative 'rubocop/cop/badge'
79
39
  require_relative 'rubocop/cop/registry'
40
+ require_relative 'rubocop/cop/base'
80
41
  require_relative 'rubocop/cop/cop'
81
42
  require_relative 'rubocop/cop/commissioner'
43
+ require_relative 'rubocop/cop/documentation'
82
44
  require_relative 'rubocop/cop/corrector'
83
45
  require_relative 'rubocop/cop/force'
84
46
  require_relative 'rubocop/cop/severity'
@@ -99,11 +61,13 @@ require_relative 'rubocop/cop/mixin/annotation_comment'
99
61
  require_relative 'rubocop/cop/mixin/array_min_size'
100
62
  require_relative 'rubocop/cop/mixin/array_syntax'
101
63
  require_relative 'rubocop/cop/mixin/alignment'
64
+ require_relative 'rubocop/cop/mixin/allowed_identifiers'
65
+ require_relative 'rubocop/cop/mixin/allowed_methods'
66
+ require_relative 'rubocop/cop/mixin/auto_corrector'
102
67
  require_relative 'rubocop/cop/mixin/check_assignment'
103
68
  require_relative 'rubocop/cop/mixin/check_line_breakable'
104
69
  require_relative 'rubocop/cop/mixin/configurable_max'
105
70
  require_relative 'rubocop/cop/mixin/code_length' # relies on configurable_max
106
- require_relative 'rubocop/cop/mixin/classish_length' # relies on code_length
107
71
  require_relative 'rubocop/cop/mixin/configurable_enforced_style'
108
72
  require_relative 'rubocop/cop/mixin/configurable_formatting'
109
73
  require_relative 'rubocop/cop/mixin/configurable_naming'
@@ -119,12 +83,15 @@ require_relative 'rubocop/cop/mixin/enforce_superclass'
119
83
  require_relative 'rubocop/cop/mixin/first_element_line_break'
120
84
  require_relative 'rubocop/cop/mixin/frozen_string_literal'
121
85
  require_relative 'rubocop/cop/mixin/hash_alignment_styles'
86
+ require_relative 'rubocop/cop/mixin/hash_transform_method'
122
87
  require_relative 'rubocop/cop/mixin/ignored_pattern'
123
88
  require_relative 'rubocop/cop/mixin/ignored_methods'
124
89
  require_relative 'rubocop/cop/mixin/integer_node'
125
90
  require_relative 'rubocop/cop/mixin/interpolation'
126
91
  require_relative 'rubocop/cop/mixin/line_length_help'
127
92
  require_relative 'rubocop/cop/mixin/match_range'
93
+ require_relative 'rubocop/cop/metrics/utils/repeated_csend_discount'
94
+ require_relative 'rubocop/cop/metrics/utils/repeated_attribute_discount'
128
95
  require_relative 'rubocop/cop/mixin/method_complexity'
129
96
  require_relative 'rubocop/cop/mixin/method_preference'
130
97
  require_relative 'rubocop/cop/mixin/min_body_length'
@@ -138,7 +105,6 @@ require_relative 'rubocop/cop/mixin/nil_methods'
138
105
  require_relative 'rubocop/cop/mixin/on_normal_if_unless'
139
106
  require_relative 'rubocop/cop/mixin/ordered_gem_node'
140
107
  require_relative 'rubocop/cop/mixin/parentheses'
141
- require_relative 'rubocop/cop/mixin/parser_diagnostic'
142
108
  require_relative 'rubocop/cop/mixin/percent_array'
143
109
  require_relative 'rubocop/cop/mixin/percent_literal'
144
110
  require_relative 'rubocop/cop/mixin/preceding_following_alignment'
@@ -153,11 +119,12 @@ require_relative 'rubocop/cop/mixin/statement_modifier'
153
119
  require_relative 'rubocop/cop/mixin/string_help'
154
120
  require_relative 'rubocop/cop/mixin/string_literals_help'
155
121
  require_relative 'rubocop/cop/mixin/target_ruby_version'
156
- require_relative 'rubocop/cop/mixin/too_many_lines'
157
122
  require_relative 'rubocop/cop/mixin/trailing_body'
158
123
  require_relative 'rubocop/cop/mixin/trailing_comma'
159
124
  require_relative 'rubocop/cop/mixin/uncommunicative_name'
160
125
  require_relative 'rubocop/cop/mixin/unused_argument'
126
+ require_relative 'rubocop/cop/mixin/visibility_help'
127
+ require_relative 'rubocop/cop/mixin/comments_help' # relies on visibility_help
161
128
 
162
129
  require_relative 'rubocop/cop/utils/format_string'
163
130
 
@@ -184,6 +151,7 @@ require_relative 'rubocop/cop/bundler/gem_comment'
184
151
  require_relative 'rubocop/cop/bundler/insecure_protocol_source'
185
152
  require_relative 'rubocop/cop/bundler/ordered_gems'
186
153
 
154
+ require_relative 'rubocop/cop/gemspec/date_assignment'
187
155
  require_relative 'rubocop/cop/gemspec/duplicated_assignment'
188
156
  require_relative 'rubocop/cop/gemspec/ordered_dependencies'
189
157
  require_relative 'rubocop/cop/gemspec/required_ruby_version'
@@ -193,6 +161,7 @@ require_relative 'rubocop/cop/layout/access_modifier_indentation'
193
161
  require_relative 'rubocop/cop/layout/argument_alignment'
194
162
  require_relative 'rubocop/cop/layout/array_alignment'
195
163
  require_relative 'rubocop/cop/layout/assignment_indentation'
164
+ require_relative 'rubocop/cop/layout/begin_end_alignment'
196
165
  require_relative 'rubocop/cop/layout/block_alignment'
197
166
  require_relative 'rubocop/cop/layout/block_end_newline'
198
167
  require_relative 'rubocop/cop/layout/case_indentation'
@@ -207,13 +176,15 @@ require_relative 'rubocop/cop/layout/else_alignment'
207
176
  require_relative 'rubocop/cop/layout/empty_comment'
208
177
  require_relative 'rubocop/cop/layout/empty_line_after_guard_clause'
209
178
  require_relative 'rubocop/cop/layout/empty_line_after_magic_comment'
179
+ require_relative 'rubocop/cop/layout/empty_line_after_multiline_condition'
210
180
  require_relative 'rubocop/cop/layout/empty_line_between_defs'
211
181
  require_relative 'rubocop/cop/layout/empty_lines_around_access_modifier'
212
182
  require_relative 'rubocop/cop/layout/empty_lines_around_arguments'
183
+ require_relative 'rubocop/cop/layout/empty_lines_around_attribute_accessor'
213
184
  require_relative 'rubocop/cop/layout/empty_lines_around_begin_body'
214
185
  require_relative 'rubocop/cop/layout/empty_lines_around_block_body'
215
186
  require_relative 'rubocop/cop/layout/empty_lines_around_class_body'
216
- require_relative 'rubocop/cop/layout/empty_lines_around_exception_handling_keywords' # rubocop:disable Layout/LineLength
187
+ require_relative 'rubocop/cop/layout/empty_lines_around_exception_handling_keywords'
217
188
  require_relative 'rubocop/cop/layout/empty_lines_around_method_body'
218
189
  require_relative 'rubocop/cop/layout/empty_lines_around_module_body'
219
190
  require_relative 'rubocop/cop/layout/empty_lines'
@@ -232,6 +203,7 @@ require_relative 'rubocop/cop/layout/hash_alignment'
232
203
  require_relative 'rubocop/cop/layout/heredoc_argument_closing_parenthesis'
233
204
  require_relative 'rubocop/cop/layout/heredoc_indentation'
234
205
  require_relative 'rubocop/cop/layout/indentation_consistency'
206
+ require_relative 'rubocop/cop/layout/indentation_style'
235
207
  require_relative 'rubocop/cop/layout/indentation_width'
236
208
  require_relative 'rubocop/cop/layout/initial_indentation'
237
209
  require_relative 'rubocop/cop/layout/leading_comment_space'
@@ -249,6 +221,7 @@ require_relative 'rubocop/cop/layout/multiline_method_call_indentation'
249
221
  require_relative 'rubocop/cop/layout/multiline_method_definition_brace_layout'
250
222
  require_relative 'rubocop/cop/layout/multiline_operation_indentation'
251
223
  require_relative 'rubocop/cop/layout/parameter_alignment'
224
+ require_relative 'rubocop/cop/layout/redundant_line_break'
252
225
  require_relative 'rubocop/cop/layout/rescue_ensure_alignment'
253
226
  require_relative 'rubocop/cop/layout/space_after_colon'
254
227
  require_relative 'rubocop/cop/layout/space_after_comma'
@@ -258,8 +231,10 @@ require_relative 'rubocop/cop/layout/space_after_semicolon'
258
231
  require_relative 'rubocop/cop/layout/space_around_block_parameters'
259
232
  require_relative 'rubocop/cop/layout/space_around_equals_in_parameter_default'
260
233
  require_relative 'rubocop/cop/layout/space_around_keyword'
234
+ require_relative 'rubocop/cop/layout/space_around_method_call_operator'
261
235
  require_relative 'rubocop/cop/layout/space_around_operators'
262
236
  require_relative 'rubocop/cop/layout/space_before_block_braces'
237
+ require_relative 'rubocop/cop/layout/space_before_brackets'
263
238
  require_relative 'rubocop/cop/layout/space_before_comma'
264
239
  require_relative 'rubocop/cop/layout/space_before_comment'
265
240
  require_relative 'rubocop/cop/layout/space_before_first_arg'
@@ -274,59 +249,85 @@ require_relative 'rubocop/cop/layout/space_inside_percent_literal_delimiters'
274
249
  require_relative 'rubocop/cop/layout/space_inside_range_literal'
275
250
  require_relative 'rubocop/cop/layout/space_inside_reference_brackets'
276
251
  require_relative 'rubocop/cop/layout/space_inside_string_interpolation'
277
- require_relative 'rubocop/cop/layout/tab'
278
252
  require_relative 'rubocop/cop/layout/trailing_empty_lines'
279
253
  require_relative 'rubocop/cop/layout/trailing_whitespace'
280
254
 
255
+ require_relative 'rubocop/cop/lint/ambiguous_assignment'
281
256
  require_relative 'rubocop/cop/lint/ambiguous_block_association'
282
257
  require_relative 'rubocop/cop/lint/ambiguous_operator'
283
258
  require_relative 'rubocop/cop/lint/ambiguous_regexp_literal'
284
259
  require_relative 'rubocop/cop/lint/assignment_in_condition'
285
260
  require_relative 'rubocop/cop/lint/big_decimal_new'
261
+ require_relative 'rubocop/cop/lint/binary_operator_with_identical_operands'
286
262
  require_relative 'rubocop/cop/lint/boolean_symbol'
287
263
  require_relative 'rubocop/cop/lint/circular_argument_reference'
264
+ require_relative 'rubocop/cop/lint/constant_definition_in_block'
265
+ require_relative 'rubocop/cop/lint/constant_resolution'
288
266
  require_relative 'rubocop/cop/lint/debugger'
289
267
  require_relative 'rubocop/cop/lint/deprecated_class_methods'
268
+ require_relative 'rubocop/cop/lint/deprecated_constants'
269
+ require_relative 'rubocop/cop/lint/deprecated_open_ssl_constant'
290
270
  require_relative 'rubocop/cop/lint/disjunctive_assignment_in_constructor'
271
+ require_relative 'rubocop/cop/lint/duplicate_branch'
291
272
  require_relative 'rubocop/cop/lint/duplicate_case_condition'
273
+ require_relative 'rubocop/cop/lint/duplicate_elsif_condition'
292
274
  require_relative 'rubocop/cop/lint/duplicate_hash_key'
293
275
  require_relative 'rubocop/cop/lint/duplicate_methods'
276
+ require_relative 'rubocop/cop/lint/duplicate_regexp_character_class_element'
277
+ require_relative 'rubocop/cop/lint/duplicate_require'
278
+ require_relative 'rubocop/cop/lint/duplicate_rescue_exception'
294
279
  require_relative 'rubocop/cop/lint/each_with_object_argument'
295
280
  require_relative 'rubocop/cop/lint/else_layout'
281
+ require_relative 'rubocop/cop/lint/empty_block'
282
+ require_relative 'rubocop/cop/lint/empty_class'
283
+ require_relative 'rubocop/cop/lint/empty_conditional_body'
296
284
  require_relative 'rubocop/cop/lint/empty_ensure'
297
285
  require_relative 'rubocop/cop/lint/empty_expression'
286
+ require_relative 'rubocop/cop/lint/empty_file'
298
287
  require_relative 'rubocop/cop/lint/empty_interpolation'
299
288
  require_relative 'rubocop/cop/lint/empty_when'
300
- require_relative 'rubocop/cop/lint/end_in_method'
301
289
  require_relative 'rubocop/cop/lint/ensure_return'
302
290
  require_relative 'rubocop/cop/lint/erb_new_arguments'
303
291
  require_relative 'rubocop/cop/lint/flip_flop'
292
+ require_relative 'rubocop/cop/lint/float_comparison'
304
293
  require_relative 'rubocop/cop/lint/float_out_of_range'
305
294
  require_relative 'rubocop/cop/lint/format_parameter_mismatch'
295
+ require_relative 'rubocop/cop/lint/hash_compare_by_identity'
306
296
  require_relative 'rubocop/cop/lint/heredoc_method_call_position'
297
+ require_relative 'rubocop/cop/lint/identity_comparison'
307
298
  require_relative 'rubocop/cop/lint/implicit_string_concatenation'
308
299
  require_relative 'rubocop/cop/lint/inherit_exception'
309
300
  require_relative 'rubocop/cop/lint/ineffective_access_modifier'
310
301
  require_relative 'rubocop/cop/lint/interpolation_check'
302
+ require_relative 'rubocop/cop/lint/lambda_without_literal_block'
311
303
  require_relative 'rubocop/cop/lint/literal_as_condition'
312
304
  require_relative 'rubocop/cop/lint/literal_in_interpolation'
313
305
  require_relative 'rubocop/cop/lint/loop'
314
306
  require_relative 'rubocop/cop/lint/missing_cop_enable_directive'
307
+ require_relative 'rubocop/cop/lint/missing_super'
308
+ require_relative 'rubocop/cop/lint/mixed_regexp_capture_types'
315
309
  require_relative 'rubocop/cop/lint/multiple_comparison'
316
310
  require_relative 'rubocop/cop/lint/nested_method_definition'
317
311
  require_relative 'rubocop/cop/lint/nested_percent_literal'
318
312
  require_relative 'rubocop/cop/lint/next_without_accumulator'
313
+ require_relative 'rubocop/cop/lint/no_return_in_begin_end_blocks'
319
314
  require_relative 'rubocop/cop/lint/non_deterministic_require_order'
320
315
  require_relative 'rubocop/cop/lint/non_local_exit_from_iterator'
321
316
  require_relative 'rubocop/cop/lint/number_conversion'
317
+ require_relative 'rubocop/cop/lint/numbered_parameter_assignment'
318
+ require_relative 'rubocop/cop/lint/or_assignment_to_constant'
322
319
  require_relative 'rubocop/cop/lint/ordered_magic_comments'
320
+ require_relative 'rubocop/cop/lint/out_of_range_regexp_ref'
323
321
  require_relative 'rubocop/cop/lint/parentheses_as_grouped_expression'
324
322
  require_relative 'rubocop/cop/lint/percent_string_array'
325
323
  require_relative 'rubocop/cop/lint/percent_symbol_array'
324
+ require_relative 'rubocop/cop/lint/raise_exception'
326
325
  require_relative 'rubocop/cop/lint/rand_one'
327
326
  require_relative 'rubocop/cop/lint/redundant_cop_disable_directive'
328
327
  require_relative 'rubocop/cop/lint/redundant_cop_enable_directive'
328
+ require_relative 'rubocop/cop/lint/redundant_dir_glob_sort'
329
329
  require_relative 'rubocop/cop/lint/redundant_require_statement'
330
+ require_relative 'rubocop/cop/lint/redundant_safe_navigation'
330
331
  require_relative 'rubocop/cop/lint/redundant_splat_expansion'
331
332
  require_relative 'rubocop/cop/lint/redundant_string_coercion'
332
333
  require_relative 'rubocop/cop/lint/redundant_with_index'
@@ -340,30 +341,43 @@ require_relative 'rubocop/cop/lint/safe_navigation_consistency'
340
341
  require_relative 'rubocop/cop/lint/safe_navigation_chain'
341
342
  require_relative 'rubocop/cop/lint/safe_navigation_with_empty'
342
343
  require_relative 'rubocop/cop/lint/script_permission'
344
+ require_relative 'rubocop/cop/lint/self_assignment'
343
345
  require_relative 'rubocop/cop/lint/send_with_mixin_argument'
344
346
  require_relative 'rubocop/cop/lint/shadowed_argument'
345
347
  require_relative 'rubocop/cop/lint/shadowed_exception'
346
348
  require_relative 'rubocop/cop/lint/shadowing_outer_local_variable'
349
+ require_relative 'rubocop/cop/lint/struct_new_override'
347
350
  require_relative 'rubocop/cop/lint/suppressed_exception'
351
+ require_relative 'rubocop/cop/lint/symbol_conversion'
348
352
  require_relative 'rubocop/cop/lint/syntax'
353
+ require_relative 'rubocop/cop/lint/to_enum_arguments'
349
354
  require_relative 'rubocop/cop/lint/to_json'
355
+ require_relative 'rubocop/cop/lint/top_level_return_with_argument'
356
+ require_relative 'rubocop/cop/lint/trailing_comma_in_attribute_declaration'
357
+ require_relative 'rubocop/cop/lint/triple_quotes'
350
358
  require_relative 'rubocop/cop/lint/underscore_prefixed_variable_name'
359
+ require_relative 'rubocop/cop/lint/unexpected_block_arity'
351
360
  require_relative 'rubocop/cop/lint/unified_integer'
361
+ require_relative 'rubocop/cop/lint/unmodified_reduce_accumulator'
352
362
  require_relative 'rubocop/cop/lint/unreachable_code'
363
+ require_relative 'rubocop/cop/lint/unreachable_loop'
353
364
  require_relative 'rubocop/cop/lint/unused_block_argument'
354
365
  require_relative 'rubocop/cop/lint/unused_method_argument'
355
366
  require_relative 'rubocop/cop/lint/uri_escape_unescape'
356
367
  require_relative 'rubocop/cop/lint/uri_regexp'
357
368
  require_relative 'rubocop/cop/lint/useless_access_modifier'
358
369
  require_relative 'rubocop/cop/lint/useless_assignment'
359
- require_relative 'rubocop/cop/lint/useless_comparison'
360
370
  require_relative 'rubocop/cop/lint/useless_else_without_rescue'
371
+ require_relative 'rubocop/cop/lint/useless_method_definition'
361
372
  require_relative 'rubocop/cop/lint/useless_setter_call'
373
+ require_relative 'rubocop/cop/lint/useless_times'
362
374
  require_relative 'rubocop/cop/lint/void'
363
375
 
376
+ require_relative 'rubocop/cop/metrics/utils/iterating_block'
364
377
  require_relative 'rubocop/cop/metrics/cyclomatic_complexity'
365
378
  # relies on cyclomatic_complexity
366
379
  require_relative 'rubocop/cop/metrics/utils/abc_size_calculator'
380
+ require_relative 'rubocop/cop/metrics/utils/code_length_calculator'
367
381
  require_relative 'rubocop/cop/metrics/abc_size'
368
382
  require_relative 'rubocop/cop/metrics/block_length'
369
383
  require_relative 'rubocop/cop/metrics/block_nesting'
@@ -391,26 +405,34 @@ require_relative 'rubocop/cop/naming/variable_name'
391
405
  require_relative 'rubocop/cop/naming/variable_number'
392
406
 
393
407
  require_relative 'rubocop/cop/style/access_modifier_declarations'
408
+ require_relative 'rubocop/cop/style/accessor_grouping'
394
409
  require_relative 'rubocop/cop/style/alias'
395
410
  require_relative 'rubocop/cop/style/and_or'
411
+ require_relative 'rubocop/cop/style/arguments_forwarding'
412
+ require_relative 'rubocop/cop/style/array_coercion'
396
413
  require_relative 'rubocop/cop/style/array_join'
397
414
  require_relative 'rubocop/cop/style/ascii_comments'
398
415
  require_relative 'rubocop/cop/style/attr'
399
416
  require_relative 'rubocop/cop/style/auto_resource_cleanup'
400
417
  require_relative 'rubocop/cop/style/bare_percent_literals'
401
418
  require_relative 'rubocop/cop/style/begin_block'
419
+ require_relative 'rubocop/cop/style/bisected_attr_accessor'
402
420
  require_relative 'rubocop/cop/style/block_comments'
403
421
  require_relative 'rubocop/cop/style/block_delimiters'
404
- require_relative 'rubocop/cop/style/braces_around_hash_parameters'
405
422
  require_relative 'rubocop/cop/style/case_equality'
423
+ require_relative 'rubocop/cop/style/case_like_if'
406
424
  require_relative 'rubocop/cop/style/character_literal'
407
425
  require_relative 'rubocop/cop/style/class_and_module_children'
408
426
  require_relative 'rubocop/cop/style/class_check'
427
+ require_relative 'rubocop/cop/style/class_equality_comparison'
409
428
  require_relative 'rubocop/cop/style/class_methods'
429
+ require_relative 'rubocop/cop/style/class_methods_definitions'
410
430
  require_relative 'rubocop/cop/style/class_vars'
431
+ require_relative 'rubocop/cop/style/collection_compact'
411
432
  require_relative 'rubocop/cop/style/collection_methods'
412
433
  require_relative 'rubocop/cop/style/colon_method_call'
413
434
  require_relative 'rubocop/cop/style/colon_method_definition'
435
+ require_relative 'rubocop/cop/style/combinable_loops'
414
436
  require_relative 'rubocop/cop/style/command_literal'
415
437
  require_relative 'rubocop/cop/style/comment_annotation'
416
438
  require_relative 'rubocop/cop/style/commented_keyword'
@@ -420,8 +442,10 @@ require_relative 'rubocop/cop/style/copyright'
420
442
  require_relative 'rubocop/cop/style/date_time'
421
443
  require_relative 'rubocop/cop/style/def_with_parentheses'
422
444
  require_relative 'rubocop/cop/style/dir'
445
+ require_relative 'rubocop/cop/style/disable_cops_within_source_code_directive'
423
446
  require_relative 'rubocop/cop/style/documentation_method'
424
447
  require_relative 'rubocop/cop/style/documentation'
448
+ require_relative 'rubocop/cop/style/document_dynamic_eval_definition'
425
449
  require_relative 'rubocop/cop/style/double_cop_disable_directive'
426
450
  require_relative 'rubocop/cop/style/double_negation'
427
451
  require_relative 'rubocop/cop/style/each_for_simple_loop'
@@ -432,37 +456,55 @@ require_relative 'rubocop/cop/style/empty_else'
432
456
  require_relative 'rubocop/cop/style/empty_lambda_parameter'
433
457
  require_relative 'rubocop/cop/style/empty_literal'
434
458
  require_relative 'rubocop/cop/style/empty_method'
459
+ require_relative 'rubocop/cop/style/endless_method'
435
460
  require_relative 'rubocop/cop/style/encoding'
436
461
  require_relative 'rubocop/cop/style/end_block'
437
462
  require_relative 'rubocop/cop/style/eval_with_location'
438
463
  require_relative 'rubocop/cop/style/even_odd'
439
464
  require_relative 'rubocop/cop/style/expand_path_arguments'
465
+ require_relative 'rubocop/cop/style/explicit_block_argument'
466
+ require_relative 'rubocop/cop/style/exponential_notation'
440
467
  require_relative 'rubocop/cop/style/float_division'
441
468
  require_relative 'rubocop/cop/style/for'
442
469
  require_relative 'rubocop/cop/style/format_string'
443
470
  require_relative 'rubocop/cop/style/format_string_token'
444
471
  require_relative 'rubocop/cop/style/frozen_string_literal_comment'
472
+ require_relative 'rubocop/cop/style/global_std_stream'
445
473
  require_relative 'rubocop/cop/style/global_vars'
446
474
  require_relative 'rubocop/cop/style/guard_clause'
475
+ require_relative 'rubocop/cop/style/hash_as_last_array_item'
476
+ require_relative 'rubocop/cop/style/hash_conversion'
477
+ require_relative 'rubocop/cop/style/hash_each_methods'
478
+ require_relative 'rubocop/cop/style/hash_except'
479
+ require_relative 'rubocop/cop/style/hash_like_case'
447
480
  require_relative 'rubocop/cop/style/hash_syntax'
481
+ require_relative 'rubocop/cop/style/hash_transform_keys'
482
+ require_relative 'rubocop/cop/style/hash_transform_values'
448
483
  require_relative 'rubocop/cop/style/identical_conditional_branches'
449
484
  require_relative 'rubocop/cop/style/if_inside_else'
450
485
  require_relative 'rubocop/cop/style/if_unless_modifier'
451
486
  require_relative 'rubocop/cop/style/if_unless_modifier_of_if_unless'
487
+ require_relative 'rubocop/cop/style/if_with_boolean_literal_branches'
452
488
  require_relative 'rubocop/cop/style/if_with_semicolon'
453
489
  require_relative 'rubocop/cop/style/implicit_runtime_error'
454
490
  require_relative 'rubocop/cop/style/infinite_loop'
455
491
  require_relative 'rubocop/cop/style/inverse_methods'
456
492
  require_relative 'rubocop/cop/style/inline_comment'
457
493
  require_relative 'rubocop/cop/style/ip_addresses'
494
+ require_relative 'rubocop/cop/style/keyword_parameters_order'
458
495
  require_relative 'rubocop/cop/style/lambda'
459
496
  require_relative 'rubocop/cop/style/lambda_call'
460
497
  require_relative 'rubocop/cop/style/line_end_concatenation'
461
498
  require_relative 'rubocop/cop/style/method_call_without_args_parentheses'
462
499
  require_relative 'rubocop/cop/style/method_call_with_args_parentheses'
500
+ require_relative 'rubocop/cop/style/redundant_assignment'
501
+ require_relative 'rubocop/cop/style/redundant_fetch_block'
502
+ require_relative 'rubocop/cop/style/redundant_file_extension_in_require'
503
+ require_relative 'rubocop/cop/style/redundant_self_assignment'
504
+ require_relative 'rubocop/cop/style/sole_nested_conditional'
505
+ require_relative 'rubocop/cop/style/static_class'
463
506
  require_relative 'rubocop/cop/style/method_called_on_do_end_block'
464
507
  require_relative 'rubocop/cop/style/method_def_parentheses'
465
- require_relative 'rubocop/cop/style/method_missing_super'
466
508
  require_relative 'rubocop/cop/style/min_max'
467
509
  require_relative 'rubocop/cop/style/missing_else'
468
510
  require_relative 'rubocop/cop/style/missing_respond_to_missing'
@@ -479,6 +521,7 @@ require_relative 'rubocop/cop/style/multiline_when_then'
479
521
  require_relative 'rubocop/cop/style/multiple_comparison'
480
522
  require_relative 'rubocop/cop/style/mutable_constant'
481
523
  require_relative 'rubocop/cop/style/negated_if'
524
+ require_relative 'rubocop/cop/style/negated_if_else_condition'
482
525
  require_relative 'rubocop/cop/style/negated_unless'
483
526
  require_relative 'rubocop/cop/style/negated_while'
484
527
  require_relative 'rubocop/cop/style/nested_modifier'
@@ -486,6 +529,7 @@ require_relative 'rubocop/cop/style/nested_parenthesized_calls'
486
529
  require_relative 'rubocop/cop/style/nested_ternary_operator'
487
530
  require_relative 'rubocop/cop/style/next'
488
531
  require_relative 'rubocop/cop/style/nil_comparison'
532
+ require_relative 'rubocop/cop/style/nil_lambda'
489
533
  require_relative 'rubocop/cop/style/non_nil_check'
490
534
  require_relative 'rubocop/cop/style/not'
491
535
  require_relative 'rubocop/cop/style/numeric_literals'
@@ -495,6 +539,7 @@ require_relative 'rubocop/cop/style/one_line_conditional'
495
539
  require_relative 'rubocop/cop/style/or_assignment'
496
540
  require_relative 'rubocop/cop/style/option_hash'
497
541
  require_relative 'rubocop/cop/style/optional_arguments'
542
+ require_relative 'rubocop/cop/style/optional_boolean_parameter'
498
543
  require_relative 'rubocop/cop/style/parallel_assignment'
499
544
  require_relative 'rubocop/cop/style/parentheses_around_condition'
500
545
  require_relative 'rubocop/cop/style/percent_literal_delimiters'
@@ -504,6 +549,7 @@ require_relative 'rubocop/cop/style/preferred_hash_methods'
504
549
  require_relative 'rubocop/cop/style/proc'
505
550
  require_relative 'rubocop/cop/style/raise_args'
506
551
  require_relative 'rubocop/cop/style/random_with_offset'
552
+ require_relative 'rubocop/cop/style/redundant_argument'
507
553
  require_relative 'rubocop/cop/style/redundant_begin'
508
554
  require_relative 'rubocop/cop/style/redundant_capital_w'
509
555
  require_relative 'rubocop/cop/style/redundant_condition'
@@ -513,6 +559,8 @@ require_relative 'rubocop/cop/style/redundant_freeze'
513
559
  require_relative 'rubocop/cop/style/redundant_interpolation'
514
560
  require_relative 'rubocop/cop/style/redundant_parentheses'
515
561
  require_relative 'rubocop/cop/style/redundant_percent_q'
562
+ require_relative 'rubocop/cop/style/redundant_regexp_character_class'
563
+ require_relative 'rubocop/cop/style/redundant_regexp_escape'
516
564
  require_relative 'rubocop/cop/style/redundant_return'
517
565
  require_relative 'rubocop/cop/style/redundant_self'
518
566
  require_relative 'rubocop/cop/style/redundant_sort'
@@ -527,17 +575,22 @@ require_relative 'rubocop/cop/style/self_assignment'
527
575
  require_relative 'rubocop/cop/style/semicolon'
528
576
  require_relative 'rubocop/cop/style/send'
529
577
  require_relative 'rubocop/cop/style/signal_exception'
578
+ require_relative 'rubocop/cop/style/single_argument_dig'
530
579
  require_relative 'rubocop/cop/style/single_line_block_params'
531
580
  require_relative 'rubocop/cop/style/single_line_methods'
581
+ require_relative 'rubocop/cop/style/slicing_with_range'
532
582
  require_relative 'rubocop/cop/style/special_global_vars'
533
583
  require_relative 'rubocop/cop/style/stabby_lambda_parentheses'
534
584
  require_relative 'rubocop/cop/style/stderr_puts'
585
+ require_relative 'rubocop/cop/style/string_chars'
586
+ require_relative 'rubocop/cop/style/string_concatenation'
535
587
  require_relative 'rubocop/cop/style/string_hash_keys'
536
588
  require_relative 'rubocop/cop/style/string_literals'
537
589
  require_relative 'rubocop/cop/style/string_literals_in_interpolation'
538
590
  require_relative 'rubocop/cop/style/string_methods'
539
591
  require_relative 'rubocop/cop/style/strip'
540
592
  require_relative 'rubocop/cop/style/struct_inheritance'
593
+ require_relative 'rubocop/cop/style/swap_values'
541
594
  require_relative 'rubocop/cop/style/symbol_array'
542
595
  require_relative 'rubocop/cop/style/symbol_literal'
543
596
  require_relative 'rubocop/cop/style/symbol_proc'
@@ -547,11 +600,13 @@ require_relative 'rubocop/cop/style/trailing_body_on_method_definition'
547
600
  require_relative 'rubocop/cop/style/trailing_body_on_module'
548
601
  require_relative 'rubocop/cop/style/trailing_comma_in_arguments'
549
602
  require_relative 'rubocop/cop/style/trailing_comma_in_array_literal'
603
+ require_relative 'rubocop/cop/style/trailing_comma_in_block_args'
550
604
  require_relative 'rubocop/cop/style/trailing_comma_in_hash_literal'
551
605
  require_relative 'rubocop/cop/style/trailing_method_end_statement'
552
606
  require_relative 'rubocop/cop/style/trailing_underscore_variable'
553
607
  require_relative 'rubocop/cop/style/trivial_accessors'
554
608
  require_relative 'rubocop/cop/style/unless_else'
609
+ require_relative 'rubocop/cop/style/unless_logical_operators'
555
610
  require_relative 'rubocop/cop/style/unpack_first'
556
611
  require_relative 'rubocop/cop/style/variable_interpolation'
557
612
  require_relative 'rubocop/cop/style/when_then'
@@ -574,12 +629,13 @@ require_relative 'rubocop/formatter/simple_text_formatter'
574
629
  # relies on simple text
575
630
  require_relative 'rubocop/formatter/clang_style_formatter'
576
631
  require_relative 'rubocop/formatter/disabled_config_formatter'
577
- require_relative 'rubocop/formatter/disabled_lines_formatter'
578
632
  require_relative 'rubocop/formatter/emacs_style_formatter'
579
633
  require_relative 'rubocop/formatter/file_list_formatter'
580
634
  require_relative 'rubocop/formatter/fuubar_style_formatter'
635
+ require_relative 'rubocop/formatter/git_hub_actions_formatter'
581
636
  require_relative 'rubocop/formatter/html_formatter'
582
637
  require_relative 'rubocop/formatter/json_formatter'
638
+ require_relative 'rubocop/formatter/junit_formatter'
583
639
  require_relative 'rubocop/formatter/offense_count_formatter'
584
640
  require_relative 'rubocop/formatter/progress_formatter'
585
641
  require_relative 'rubocop/formatter/quiet_formatter'
@@ -595,14 +651,23 @@ require_relative 'rubocop/cached_data'
595
651
  require_relative 'rubocop/config'
596
652
  require_relative 'rubocop/config_loader_resolver'
597
653
  require_relative 'rubocop/config_loader'
654
+ require_relative 'rubocop/config_obsoletion/rule'
655
+ require_relative 'rubocop/config_obsoletion/cop_rule'
656
+ require_relative 'rubocop/config_obsoletion/parameter_rule'
657
+ require_relative 'rubocop/config_obsoletion/changed_enforced_styles'
658
+ require_relative 'rubocop/config_obsoletion/changed_parameter'
659
+ require_relative 'rubocop/config_obsoletion/extracted_cop'
660
+ require_relative 'rubocop/config_obsoletion/removed_cop'
661
+ require_relative 'rubocop/config_obsoletion/renamed_cop'
662
+ require_relative 'rubocop/config_obsoletion/split_cop'
598
663
  require_relative 'rubocop/config_obsoletion'
599
664
  require_relative 'rubocop/config_store'
600
665
  require_relative 'rubocop/config_validator'
666
+ require_relative 'rubocop/lockfile'
601
667
  require_relative 'rubocop/target_finder'
602
- require_relative 'rubocop/token'
668
+ require_relative 'rubocop/directive_comment'
603
669
  require_relative 'rubocop/comment_config'
604
670
  require_relative 'rubocop/magic_comment'
605
- require_relative 'rubocop/processed_source'
606
671
  require_relative 'rubocop/result_cache'
607
672
  require_relative 'rubocop/runner'
608
673
  require_relative 'rubocop/cli'
@@ -613,7 +678,15 @@ require_relative 'rubocop/cli/command/auto_genenerate_config'
613
678
  require_relative 'rubocop/cli/command/execute_runner'
614
679
  require_relative 'rubocop/cli/command/init_dotfile'
615
680
  require_relative 'rubocop/cli/command/show_cops'
681
+ require_relative 'rubocop/cli/command/suggest_extensions'
616
682
  require_relative 'rubocop/cli/command/version'
683
+ require_relative 'rubocop/config_regeneration'
617
684
  require_relative 'rubocop/options'
618
685
  require_relative 'rubocop/remote_config'
686
+ require_relative 'rubocop/target_ruby'
619
687
  require_relative 'rubocop/yaml_duplication_checker'
688
+
689
+ unless File.exist?("#{__dir__}/../rubocop.gemspec") # Check if we are a gem
690
+ RuboCop::ResultCache.rubocop_required_features = $LOADED_FEATURES - before_us
691
+ end
692
+ RuboCop::AST.rubocop_loaded if RuboCop::AST.respond_to?(:rubocop_loaded)