rubocop 1.12.1 → 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 (395) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -2
  3. data/config/default.yml +10 -0
  4. data/exe/rubocop +1 -3
  5. data/lib/rubocop.rb +1 -1
  6. data/lib/rubocop/cached_data.rb +1 -3
  7. data/lib/rubocop/cli.rb +4 -6
  8. data/lib/rubocop/cli/command/auto_genenerate_config.rb +9 -19
  9. data/lib/rubocop/cli/command/init_dotfile.rb +1 -3
  10. data/lib/rubocop/cli/command/show_cops.rb +1 -4
  11. data/lib/rubocop/comment_config.rb +2 -7
  12. data/lib/rubocop/config.rb +11 -26
  13. data/lib/rubocop/config_loader.rb +5 -11
  14. data/lib/rubocop/config_loader_resolver.rb +22 -14
  15. data/lib/rubocop/config_obsoletion/cop_rule.rb +1 -2
  16. data/lib/rubocop/config_store.rb +1 -2
  17. data/lib/rubocop/config_validator.rb +5 -10
  18. data/lib/rubocop/cop/autocorrect_logic.rb +3 -8
  19. data/lib/rubocop/cop/badge.rb +1 -2
  20. data/lib/rubocop/cop/base.rb +8 -6
  21. data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -2
  22. data/lib/rubocop/cop/bundler/gem_comment.rb +42 -8
  23. data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -4
  24. data/lib/rubocop/cop/commissioner.rb +2 -8
  25. data/lib/rubocop/cop/cop.rb +4 -18
  26. data/lib/rubocop/cop/corrector.rb +1 -4
  27. data/lib/rubocop/cop/correctors/alignment_corrector.rb +3 -6
  28. data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +2 -4
  29. data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +1 -2
  30. data/lib/rubocop/cop/correctors/line_break_corrector.rb +3 -6
  31. data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +1 -3
  32. data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +1 -3
  33. data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +2 -8
  34. data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +1 -2
  35. data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -4
  36. data/lib/rubocop/cop/generator.rb +1 -4
  37. data/lib/rubocop/cop/generator/configuration_injector.rb +1 -2
  38. data/lib/rubocop/cop/generator/require_file_injector.rb +2 -5
  39. data/lib/rubocop/cop/internal_affairs/example_description.rb +6 -4
  40. data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +2 -5
  41. data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +1 -3
  42. data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -3
  43. data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -2
  44. data/lib/rubocop/cop/internal_affairs/style_detected_api_use.rb +1 -2
  45. data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +1 -3
  46. data/lib/rubocop/cop/layout/access_modifier_indentation.rb +1 -2
  47. data/lib/rubocop/cop/layout/argument_alignment.rb +2 -4
  48. data/lib/rubocop/cop/layout/assignment_indentation.rb +2 -4
  49. data/lib/rubocop/cop/layout/begin_end_alignment.rb +1 -4
  50. data/lib/rubocop/cop/layout/block_alignment.rb +7 -19
  51. data/lib/rubocop/cop/layout/case_indentation.rb +1 -3
  52. data/lib/rubocop/cop/layout/class_structure.rb +4 -10
  53. data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +4 -15
  54. data/lib/rubocop/cop/layout/comment_indentation.rb +1 -5
  55. data/lib/rubocop/cop/layout/def_end_alignment.rb +2 -6
  56. data/lib/rubocop/cop/layout/dot_position.rb +1 -3
  57. data/lib/rubocop/cop/layout/else_alignment.rb +1 -3
  58. data/lib/rubocop/cop/layout/empty_comment.rb +5 -12
  59. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +2 -5
  60. data/lib/rubocop/cop/layout/empty_line_between_defs.rb +2 -6
  61. data/lib/rubocop/cop/layout/empty_lines.rb +1 -3
  62. data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +8 -18
  63. data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +2 -8
  64. data/lib/rubocop/cop/layout/end_alignment.rb +1 -2
  65. data/lib/rubocop/cop/layout/end_of_line.rb +1 -1
  66. data/lib/rubocop/cop/layout/extra_spacing.rb +3 -7
  67. data/lib/rubocop/cop/layout/first_array_element_indentation.rb +1 -2
  68. data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -2
  69. data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +2 -5
  70. data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -2
  71. data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -2
  72. data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -2
  73. data/lib/rubocop/cop/layout/hash_alignment.rb +3 -6
  74. data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -9
  75. data/lib/rubocop/cop/layout/heredoc_indentation.rb +2 -6
  76. data/lib/rubocop/cop/layout/indentation_style.rb +1 -3
  77. data/lib/rubocop/cop/layout/indentation_width.rb +1 -2
  78. data/lib/rubocop/cop/layout/initial_indentation.rb +1 -4
  79. data/lib/rubocop/cop/layout/line_length.rb +4 -15
  80. data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -2
  81. data/lib/rubocop/cop/layout/multiline_block_layout.rb +7 -15
  82. data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -2
  83. data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -2
  84. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +4 -10
  85. data/lib/rubocop/cop/layout/redundant_line_break.rb +125 -0
  86. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +3 -6
  87. data/lib/rubocop/cop/layout/space_after_colon.rb +1 -3
  88. data/lib/rubocop/cop/layout/space_after_method_name.rb +2 -4
  89. data/lib/rubocop/cop/layout/space_around_block_parameters.rb +6 -14
  90. data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +1 -2
  91. data/lib/rubocop/cop/layout/space_around_keyword.rb +3 -6
  92. data/lib/rubocop/cop/layout/space_around_operators.rb +4 -9
  93. data/lib/rubocop/cop/layout/space_before_block_braces.rb +1 -2
  94. data/lib/rubocop/cop/layout/space_before_brackets.rb +1 -3
  95. data/lib/rubocop/cop/layout/space_before_comment.rb +1 -3
  96. data/lib/rubocop/cop/layout/space_before_first_arg.rb +5 -11
  97. data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +2 -4
  98. data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +5 -10
  99. data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +2 -7
  100. data/lib/rubocop/cop/layout/space_inside_block_braces.rb +5 -10
  101. data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +1 -2
  102. data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +1 -2
  103. data/lib/rubocop/cop/legacy/corrections_proxy.rb +2 -8
  104. data/lib/rubocop/cop/legacy/corrector.rb +1 -3
  105. data/lib/rubocop/cop/lint/ambiguous_assignment.rb +1 -6
  106. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +14 -7
  107. data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -2
  108. data/lib/rubocop/cop/lint/constant_resolution.rb +1 -2
  109. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +2 -4
  110. data/lib/rubocop/cop/lint/deprecated_constants.rb +3 -3
  111. data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +2 -5
  112. data/lib/rubocop/cop/lint/duplicate_branch.rb +1 -2
  113. data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -3
  114. data/lib/rubocop/cop/lint/duplicate_methods.rb +3 -7
  115. data/lib/rubocop/cop/lint/else_layout.rb +1 -3
  116. data/lib/rubocop/cop/lint/empty_ensure.rb +1 -3
  117. data/lib/rubocop/cop/lint/empty_file.rb +1 -3
  118. data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -3
  119. data/lib/rubocop/cop/lint/ensure_return.rb +1 -3
  120. data/lib/rubocop/cop/lint/erb_new_arguments.rb +3 -7
  121. data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -2
  122. data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +3 -6
  123. data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +1 -2
  124. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -2
  125. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +3 -7
  126. data/lib/rubocop/cop/lint/inherit_exception.rb +1 -2
  127. data/lib/rubocop/cop/lint/interpolation_check.rb +3 -11
  128. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +3 -6
  129. data/lib/rubocop/cop/lint/loop.rb +1 -2
  130. data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +3 -7
  131. data/lib/rubocop/cop/lint/missing_super.rb +1 -2
  132. data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -2
  133. data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -2
  134. data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -3
  135. data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +1 -3
  136. data/lib/rubocop/cop/lint/number_conversion.rb +1 -2
  137. data/lib/rubocop/cop/lint/ordered_magic_comments.rb +1 -2
  138. data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +1 -3
  139. data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -3
  140. data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -3
  141. data/lib/rubocop/cop/lint/raise_exception.rb +1 -2
  142. data/lib/rubocop/cop/lint/rand_one.rb +1 -2
  143. data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +8 -20
  144. data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +1 -3
  145. data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +3 -7
  146. data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -2
  147. data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -4
  148. data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -4
  149. data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -3
  150. data/lib/rubocop/cop/lint/require_parentheses.rb +2 -4
  151. data/lib/rubocop/cop/lint/rescue_exception.rb +1 -2
  152. data/lib/rubocop/cop/lint/rescue_type.rb +2 -7
  153. data/lib/rubocop/cop/lint/return_in_void_context.rb +1 -2
  154. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -2
  155. data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +4 -10
  156. data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -2
  157. data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +2 -7
  158. data/lib/rubocop/cop/lint/shadowed_argument.rb +4 -11
  159. data/lib/rubocop/cop/lint/shadowed_exception.rb +7 -8
  160. data/lib/rubocop/cop/lint/struct_new_override.rb +1 -2
  161. data/lib/rubocop/cop/lint/symbol_conversion.rb +2 -4
  162. data/lib/rubocop/cop/lint/syntax.rb +1 -3
  163. data/lib/rubocop/cop/lint/to_json.rb +1 -2
  164. data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -3
  165. data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -3
  166. data/lib/rubocop/cop/lint/unreachable_code.rb +2 -5
  167. data/lib/rubocop/cop/lint/unreachable_loop.rb +2 -5
  168. data/lib/rubocop/cop/lint/unused_block_argument.rb +4 -8
  169. data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -2
  170. data/lib/rubocop/cop/lint/useless_access_modifier.rb +2 -4
  171. data/lib/rubocop/cop/lint/useless_assignment.rb +4 -9
  172. data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -3
  173. data/lib/rubocop/cop/lint/void.rb +4 -11
  174. data/lib/rubocop/cop/message_annotator.rb +1 -3
  175. data/lib/rubocop/cop/metrics/block_nesting.rb +2 -7
  176. data/lib/rubocop/cop/metrics/class_length.rb +1 -3
  177. data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -2
  178. data/lib/rubocop/cop/metrics/module_length.rb +2 -6
  179. data/lib/rubocop/cop/metrics/parameter_lists.rb +2 -5
  180. data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -2
  181. data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +4 -7
  182. data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +2 -7
  183. data/lib/rubocop/cop/migration/department_name.rb +3 -7
  184. data/lib/rubocop/cop/mixin/alignment.rb +2 -4
  185. data/lib/rubocop/cop/mixin/code_length.rb +1 -3
  186. data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +2 -2
  187. data/lib/rubocop/cop/mixin/configurable_formatting.rb +3 -8
  188. data/lib/rubocop/cop/mixin/def_node.rb +2 -5
  189. data/lib/rubocop/cop/mixin/documentation_comment.rb +2 -5
  190. data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +3 -7
  191. data/lib/rubocop/cop/mixin/empty_parameter.rb +1 -3
  192. data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +1 -3
  193. data/lib/rubocop/cop/mixin/enforce_superclass.rb +2 -6
  194. data/lib/rubocop/cop/mixin/first_element_line_break.rb +1 -3
  195. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +3 -9
  196. data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +3 -6
  197. data/lib/rubocop/cop/mixin/hash_transform_method.rb +7 -22
  198. data/lib/rubocop/cop/mixin/interpolation.rb +1 -3
  199. data/lib/rubocop/cop/mixin/line_length_help.rb +2 -4
  200. data/lib/rubocop/cop/mixin/match_range.rb +2 -5
  201. data/lib/rubocop/cop/mixin/method_complexity.rb +1 -3
  202. data/lib/rubocop/cop/mixin/method_preference.rb +1 -2
  203. data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +1 -2
  204. data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +1 -3
  205. data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +7 -17
  206. data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +1 -2
  207. data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -2
  208. data/lib/rubocop/cop/mixin/ordered_gem_node.rb +1 -4
  209. data/lib/rubocop/cop/mixin/percent_array.rb +1 -3
  210. data/lib/rubocop/cop/mixin/percent_literal.rb +0 -6
  211. data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +5 -11
  212. data/lib/rubocop/cop/mixin/preferred_delimiters.rb +3 -6
  213. data/lib/rubocop/cop/mixin/range_help.rb +10 -13
  214. data/lib/rubocop/cop/mixin/rescue_node.rb +2 -6
  215. data/lib/rubocop/cop/mixin/safe_assignment.rb +1 -2
  216. data/lib/rubocop/cop/mixin/space_after_punctuation.rb +2 -4
  217. data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -2
  218. data/lib/rubocop/cop/mixin/statement_modifier.rb +1 -3
  219. data/lib/rubocop/cop/mixin/trailing_body.rb +1 -2
  220. data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -2
  221. data/lib/rubocop/cop/mixin/uncommunicative_name.rb +3 -7
  222. data/lib/rubocop/cop/mixin/unused_argument.rb +1 -3
  223. data/lib/rubocop/cop/naming/ascii_identifiers.rb +2 -4
  224. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -2
  225. data/lib/rubocop/cop/naming/file_name.rb +7 -16
  226. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +2 -3
  227. data/lib/rubocop/cop/naming/method_name.rb +1 -2
  228. data/lib/rubocop/cop/naming/predicate_name.rb +1 -2
  229. data/lib/rubocop/cop/offense.rb +3 -8
  230. data/lib/rubocop/cop/registry.rb +3 -11
  231. data/lib/rubocop/cop/style/access_modifier_declarations.rb +1 -3
  232. data/lib/rubocop/cop/style/accessor_grouping.rb +1 -3
  233. data/lib/rubocop/cop/style/alias.rb +5 -12
  234. data/lib/rubocop/cop/style/arguments_forwarding.rb +1 -3
  235. data/lib/rubocop/cop/style/ascii_comments.rb +1 -2
  236. data/lib/rubocop/cop/style/attr.rb +1 -3
  237. data/lib/rubocop/cop/style/auto_resource_cleanup.rb +2 -5
  238. data/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +1 -3
  239. data/lib/rubocop/cop/style/case_like_if.rb +1 -2
  240. data/lib/rubocop/cop/style/character_literal.rb +2 -4
  241. data/lib/rubocop/cop/style/class_and_module_children.rb +3 -6
  242. data/lib/rubocop/cop/style/class_methods.rb +1 -3
  243. data/lib/rubocop/cop/style/collection_compact.rb +1 -3
  244. data/lib/rubocop/cop/style/colon_method_call.rb +1 -3
  245. data/lib/rubocop/cop/style/combinable_loops.rb +3 -2
  246. data/lib/rubocop/cop/style/command_literal.rb +3 -8
  247. data/lib/rubocop/cop/style/comment_annotation.rb +3 -6
  248. data/lib/rubocop/cop/style/commented_keyword.rb +2 -8
  249. data/lib/rubocop/cop/style/conditional_assignment.rb +10 -24
  250. data/lib/rubocop/cop/style/copyright.rb +3 -6
  251. data/lib/rubocop/cop/style/date_time.rb +2 -5
  252. data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -2
  253. data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -2
  254. data/lib/rubocop/cop/style/empty_case_condition.rb +2 -7
  255. data/lib/rubocop/cop/style/empty_else.rb +3 -9
  256. data/lib/rubocop/cop/style/empty_literal.rb +4 -8
  257. data/lib/rubocop/cop/style/empty_method.rb +3 -7
  258. data/lib/rubocop/cop/style/end_block.rb +1 -2
  259. data/lib/rubocop/cop/style/endless_method.rb +1 -3
  260. data/lib/rubocop/cop/style/eval_with_location.rb +2 -4
  261. data/lib/rubocop/cop/style/expand_path_arguments.rb +1 -3
  262. data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -4
  263. data/lib/rubocop/cop/style/format_string_token.rb +1 -4
  264. data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +3 -8
  265. data/lib/rubocop/cop/style/guard_clause.rb +3 -7
  266. data/lib/rubocop/cop/style/hash_conversion.rb +28 -3
  267. data/lib/rubocop/cop/style/hash_each_methods.rb +1 -2
  268. data/lib/rubocop/cop/style/hash_like_case.rb +1 -2
  269. data/lib/rubocop/cop/style/hash_syntax.rb +4 -9
  270. data/lib/rubocop/cop/style/identical_conditional_branches.rb +1 -3
  271. data/lib/rubocop/cop/style/if_unless_modifier.rb +41 -13
  272. data/lib/rubocop/cop/style/infinite_loop.rb +2 -5
  273. data/lib/rubocop/cop/style/inverse_methods.rb +3 -7
  274. data/lib/rubocop/cop/style/ip_addresses.rb +1 -2
  275. data/lib/rubocop/cop/style/lambda.rb +2 -4
  276. data/lib/rubocop/cop/style/lambda_call.rb +1 -2
  277. data/lib/rubocop/cop/style/line_end_concatenation.rb +5 -12
  278. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +1 -1
  279. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +7 -13
  280. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -2
  281. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -4
  282. data/lib/rubocop/cop/style/method_def_parentheses.rb +4 -8
  283. data/lib/rubocop/cop/style/min_max.rb +1 -2
  284. data/lib/rubocop/cop/style/missing_else.rb +2 -4
  285. data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -2
  286. data/lib/rubocop/cop/style/mixin_grouping.rb +4 -10
  287. data/lib/rubocop/cop/style/mixin_usage.rb +1 -2
  288. data/lib/rubocop/cop/style/module_function.rb +3 -6
  289. data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -2
  290. data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -3
  291. data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -2
  292. data/lib/rubocop/cop/style/multiple_comparison.rb +2 -4
  293. data/lib/rubocop/cop/style/mutable_constant.rb +4 -10
  294. data/lib/rubocop/cop/style/negated_if.rb +1 -2
  295. data/lib/rubocop/cop/style/negated_unless.rb +1 -2
  296. data/lib/rubocop/cop/style/nested_modifier.rb +3 -7
  297. data/lib/rubocop/cop/style/nested_ternary_operator.rb +2 -3
  298. data/lib/rubocop/cop/style/next.rb +4 -9
  299. data/lib/rubocop/cop/style/non_nil_check.rb +2 -5
  300. data/lib/rubocop/cop/style/numeric_literals.rb +3 -11
  301. data/lib/rubocop/cop/style/numeric_predicate.rb +2 -7
  302. data/lib/rubocop/cop/style/one_line_conditional.rb +1 -2
  303. data/lib/rubocop/cop/style/option_hash.rb +1 -3
  304. data/lib/rubocop/cop/style/optional_arguments.rb +2 -5
  305. data/lib/rubocop/cop/style/or_assignment.rb +2 -6
  306. data/lib/rubocop/cop/style/parallel_assignment.rb +6 -9
  307. data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -3
  308. data/lib/rubocop/cop/style/percent_q_literals.rb +1 -2
  309. data/lib/rubocop/cop/style/perl_backrefs.rb +2 -9
  310. data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -4
  311. data/lib/rubocop/cop/style/proc.rb +1 -2
  312. data/lib/rubocop/cop/style/raise_args.rb +4 -8
  313. data/lib/rubocop/cop/style/random_with_offset.rb +3 -8
  314. data/lib/rubocop/cop/style/redundant_argument.rb +2 -11
  315. data/lib/rubocop/cop/style/redundant_assignment.rb +1 -3
  316. data/lib/rubocop/cop/style/redundant_begin.rb +4 -4
  317. data/lib/rubocop/cop/style/redundant_capital_w.rb +1 -2
  318. data/lib/rubocop/cop/style/redundant_condition.rb +2 -5
  319. data/lib/rubocop/cop/style/redundant_conditional.rb +3 -6
  320. data/lib/rubocop/cop/style/redundant_exception.rb +3 -6
  321. data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -1
  322. data/lib/rubocop/cop/style/redundant_freeze.rb +1 -2
  323. data/lib/rubocop/cop/style/redundant_interpolation.rb +1 -2
  324. data/lib/rubocop/cop/style/redundant_parentheses.rb +8 -20
  325. data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -2
  326. data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -4
  327. data/lib/rubocop/cop/style/redundant_return.rb +3 -5
  328. data/lib/rubocop/cop/style/redundant_self.rb +2 -6
  329. data/lib/rubocop/cop/style/redundant_self_assignment.rb +2 -2
  330. data/lib/rubocop/cop/style/redundant_sort.rb +2 -5
  331. data/lib/rubocop/cop/style/regexp_literal.rb +4 -8
  332. data/lib/rubocop/cop/style/rescue_modifier.rb +4 -0
  333. data/lib/rubocop/cop/style/rescue_standard_error.rb +3 -7
  334. data/lib/rubocop/cop/style/return_nil.rb +1 -2
  335. data/lib/rubocop/cop/style/safe_navigation.rb +10 -21
  336. data/lib/rubocop/cop/style/send.rb +1 -2
  337. data/lib/rubocop/cop/style/signal_exception.rb +3 -7
  338. data/lib/rubocop/cop/style/single_argument_dig.rb +1 -2
  339. data/lib/rubocop/cop/style/single_line_block_params.rb +2 -5
  340. data/lib/rubocop/cop/style/single_line_methods.rb +15 -4
  341. data/lib/rubocop/cop/style/sole_nested_conditional.rb +1 -2
  342. data/lib/rubocop/cop/style/special_global_vars.rb +6 -18
  343. data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +1 -2
  344. data/lib/rubocop/cop/style/stderr_puts.rb +2 -6
  345. data/lib/rubocop/cop/style/string_chars.rb +2 -1
  346. data/lib/rubocop/cop/style/string_concatenation.rb +8 -10
  347. data/lib/rubocop/cop/style/string_literals.rb +2 -5
  348. data/lib/rubocop/cop/style/struct_inheritance.rb +9 -1
  349. data/lib/rubocop/cop/style/symbol_literal.rb +1 -3
  350. data/lib/rubocop/cop/style/symbol_proc.rb +4 -9
  351. data/lib/rubocop/cop/style/ternary_parentheses.rb +3 -6
  352. data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -2
  353. data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +2 -6
  354. data/lib/rubocop/cop/style/trailing_method_end_statement.rb +2 -5
  355. data/lib/rubocop/cop/style/trailing_underscore_variable.rb +4 -10
  356. data/lib/rubocop/cop/style/trivial_accessors.rb +2 -4
  357. data/lib/rubocop/cop/style/unless_else.rb +1 -2
  358. data/lib/rubocop/cop/style/unless_logical_operators.rb +2 -2
  359. data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
  360. data/lib/rubocop/cop/style/when_then.rb +1 -3
  361. data/lib/rubocop/cop/style/while_until_modifier.rb +1 -2
  362. data/lib/rubocop/cop/style/word_array.rb +1 -2
  363. data/lib/rubocop/cop/style/yoda_condition.rb +3 -11
  364. data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -2
  365. data/lib/rubocop/cop/team.rb +2 -5
  366. data/lib/rubocop/cop/util.rb +4 -10
  367. data/lib/rubocop/cop/utils/format_string.rb +1 -3
  368. data/lib/rubocop/cop/variable_force.rb +6 -15
  369. data/lib/rubocop/cop/variable_force/assignment.rb +1 -2
  370. data/lib/rubocop/cop/variable_force/branch.rb +1 -2
  371. data/lib/rubocop/cop/variable_force/reference.rb +1 -3
  372. data/lib/rubocop/cop/variable_force/scope.rb +4 -8
  373. data/lib/rubocop/cop/variable_force/variable.rb +2 -4
  374. data/lib/rubocop/cops_documentation_generator.rb +7 -21
  375. data/lib/rubocop/file_finder.rb +1 -3
  376. data/lib/rubocop/formatter/disabled_config_formatter.rb +3 -8
  377. data/lib/rubocop/formatter/git_hub_actions_formatter.rb +1 -5
  378. data/lib/rubocop/formatter/html_formatter.rb +4 -10
  379. data/lib/rubocop/formatter/json_formatter.rb +1 -5
  380. data/lib/rubocop/formatter/junit_formatter.rb +3 -9
  381. data/lib/rubocop/formatter/progress_formatter.rb +1 -3
  382. data/lib/rubocop/options.rb +27 -41
  383. data/lib/rubocop/path_util.rb +1 -3
  384. data/lib/rubocop/rake_task.rb +3 -0
  385. data/lib/rubocop/remote_config.rb +4 -7
  386. data/lib/rubocop/result_cache.rb +5 -12
  387. data/lib/rubocop/rspec/cop_helper.rb +1 -1
  388. data/lib/rubocop/rspec/expect_offense.rb +4 -9
  389. data/lib/rubocop/rspec/shared_contexts.rb +4 -15
  390. data/lib/rubocop/runner.rb +7 -14
  391. data/lib/rubocop/target_finder.rb +11 -16
  392. data/lib/rubocop/target_ruby.rb +4 -8
  393. data/lib/rubocop/version.rb +1 -1
  394. metadata +5 -5
  395. data/lib/rubocop/core_ext/hash.rb +0 -20
@@ -45,8 +45,7 @@ module RuboCop
45
45
  PATTERN
46
46
 
47
47
  def on_send(node)
48
- exception?(node, &check(node)) ||
49
- exception_new_with_message?(node, &check(node))
48
+ exception?(node, &check(node)) || exception_new_with_message?(node, &check(node))
50
49
  end
51
50
 
52
51
  private
@@ -21,8 +21,7 @@ module RuboCop
21
21
  #
22
22
  # 0 # just use 0 instead
23
23
  class RandOne < Base
24
- MSG = '`%<method>s` always returns `0`. ' \
25
- 'Perhaps you meant `rand(2)` or `rand`?'
24
+ MSG = '`%<method>s` always returns `0`. Perhaps you meant `rand(2)` or `rand`?'
26
25
  RESTRICT_ON_SEND = %i[rand].freeze
27
26
 
28
27
  # @!method rand_one?(node)
@@ -69,9 +69,7 @@ module RuboCop
69
69
  # Eat the entire comment, the preceding space, and the preceding
70
70
  # newline if there is one.
71
71
  original_begin = range.begin_pos
72
- range = range_with_surrounding_space(range: range,
73
- side: :left,
74
- newlines: true)
72
+ range = range_with_surrounding_space(range: range, side: :left, newlines: true)
75
73
 
76
74
  range_with_surrounding_space(range: range,
77
75
  side: :right,
@@ -93,9 +91,7 @@ module RuboCop
93
91
 
94
92
  range = range_with_surrounding_comma(range, :right)
95
93
  # Eat following spaces up to EOL, but not the newline itself.
96
- range_with_surrounding_space(range: range,
97
- side: :right,
98
- newlines: false)
94
+ range_with_surrounding_space(range: range, side: :right, newlines: false)
99
95
  end
100
96
 
101
97
  def each_redundant_disable(cop_disabled_line_ranges, offenses,
@@ -103,13 +99,9 @@ module RuboCop
103
99
  disabled_ranges = cop_disabled_line_ranges[COP_NAME] || [0..0]
104
100
 
105
101
  cop_disabled_line_ranges.each do |cop, line_ranges|
106
- each_already_disabled(line_ranges,
107
- disabled_ranges) do |comment|
108
- yield comment, cop
109
- end
102
+ each_already_disabled(line_ranges, disabled_ranges) { |comment| yield comment, cop }
110
103
 
111
- each_line_range(line_ranges, disabled_ranges, offenses,
112
- cop, &block)
104
+ each_line_range(line_ranges, disabled_ranges, offenses, cop, &block)
113
105
  end
114
106
  end
115
107
 
@@ -119,8 +111,7 @@ module RuboCop
119
111
  comment = processed_source.comment_at_line(line_range.begin)
120
112
  next if ignore_offense?(disabled_ranges, line_range)
121
113
 
122
- redundant_cop = find_redundant(comment, offenses, cop, line_range,
123
- line_ranges[ix + 1])
114
+ redundant_cop = find_redundant(comment, offenses, cop, line_range, line_ranges[ix + 1])
124
115
  yield comment, redundant_cop if redundant_cop
125
116
  end
126
117
  end
@@ -151,8 +142,7 @@ module RuboCop
151
142
  # comment. If the disable all comment is truly redundant, we will
152
143
  # detect that when examining the comments of another cop, and we
153
144
  # get the full line range for the disable all.
154
- if (next_line_range.nil? ||
155
- line_range.last != next_line_range.first) &&
145
+ if (next_line_range.nil? || line_range.last != next_line_range.first) &&
156
146
  offenses.none? { |o| line_range.cover?(o.line) }
157
147
  'all'
158
148
  end
@@ -180,8 +170,7 @@ module RuboCop
180
170
 
181
171
  def add_offenses(redundant_cops)
182
172
  redundant_cops.each do |comment, cops|
183
- if all_disabled?(comment) ||
184
- directive_count(comment) == cops.size
173
+ if all_disabled?(comment) || directive_count(comment) == cops.size
185
174
  add_offense_for_entire_comment(comment, cops)
186
175
  else
187
176
  add_offense_for_some_cops(comment, cops)
@@ -229,8 +218,7 @@ module RuboCop
229
218
  return unless offset
230
219
 
231
220
  offset += haystack.begin_pos
232
- Parser::Source::Range.new(haystack.source_buffer, offset,
233
- offset + needle.size)
221
+ Parser::Source::Range.new(haystack.source_buffer, offset, offset + needle.size)
234
222
  end
235
223
 
236
224
  def trailing_range?(ranges, range)
@@ -53,9 +53,7 @@ module RuboCop
53
53
  return if respond_to_nil_specific_method?(node)
54
54
 
55
55
  range = range_between(node.loc.dot.begin_pos, node.source_range.end_pos)
56
- add_offense(range) do |corrector|
57
- corrector.replace(node.loc.dot, '.')
58
- end
56
+ add_offense(range) { |corrector| corrector.replace(node.loc.dot, '.') }
59
57
  end
60
58
 
61
59
  private
@@ -94,8 +94,7 @@ module RuboCop
94
94
 
95
95
  def on_splat(node)
96
96
  redundant_splat_expansion(node) do
97
- if array_splat?(node) &&
98
- (method_argument?(node) || part_of_an_array?(node))
97
+ if array_splat?(node) && (method_argument?(node) || part_of_an_array?(node))
99
98
  return if allow_percent_literal_array_argument? &&
100
99
  use_percent_literal_array_argument?(node)
101
100
 
@@ -103,9 +102,7 @@ module RuboCop
103
102
  autocorrect(corrector, node)
104
103
  end
105
104
  else
106
- add_offense(node) do |corrector|
107
- autocorrect(corrector, node)
108
- end
105
+ add_offense(node) { |corrector| autocorrect(corrector, node) }
109
106
  end
110
107
  end
111
108
  end
@@ -124,8 +121,7 @@ module RuboCop
124
121
  return if array_new_inside_array_literal?(expanded_item)
125
122
 
126
123
  grandparent = node.parent.parent
127
- return if grandparent &&
128
- !ASSIGNMENT_TYPES.include?(grandparent.type)
124
+ return if grandparent && !ASSIGNMENT_TYPES.include?(grandparent.type)
129
125
  end
130
126
 
131
127
  yield
@@ -22,8 +22,7 @@ module RuboCop
22
22
  extend AutoCorrector
23
23
 
24
24
  MSG_DEFAULT = 'Redundant use of `Object#to_s` in interpolation.'
25
- MSG_SELF = 'Use `self` instead of `Object#to_s` in ' \
26
- 'interpolation.'
25
+ MSG_SELF = 'Use `self` instead of `Object#to_s` in interpolation.'
27
26
 
28
27
  # @!method to_s_without_args?(node)
29
28
  def_node_matcher :to_s_without_args?, '(send _ :to_s)'
@@ -69,10 +69,7 @@ module RuboCop
69
69
  end
70
70
 
71
71
  def with_index_range(send)
72
- range_between(
73
- send.loc.selector.begin_pos,
74
- send.loc.expression.end_pos
75
- )
72
+ range_between(send.loc.selector.begin_pos, send.loc.expression.end_pos)
76
73
  end
77
74
  end
78
75
  end
@@ -70,10 +70,7 @@ module RuboCop
70
70
  end
71
71
 
72
72
  def with_object_range(send)
73
- range_between(
74
- send.loc.selector.begin_pos,
75
- send.loc.expression.end_pos
76
- )
73
+ range_between(send.loc.selector.begin_pos, send.loc.expression.end_pos)
77
74
  end
78
75
  end
79
76
  end
@@ -23,9 +23,7 @@ module RuboCop
23
23
  ' The regexp literal matches `$_` implicitly.'
24
24
 
25
25
  def on_match_current_line(node)
26
- add_offense(node) do |corrector|
27
- corrector.replace(node, "#{node.source} =~ $_")
28
- end
26
+ add_offense(node) { |corrector| corrector.replace(node, "#{node.source} =~ $_") }
29
27
  end
30
28
  end
31
29
  end
@@ -30,8 +30,7 @@ module RuboCop
30
30
  class RequireParentheses < Base
31
31
  include RangeHelp
32
32
 
33
- MSG = 'Use parentheses in the method call to avoid confusion about ' \
34
- 'precedence.'
33
+ MSG = 'Use parentheses in the method call to avoid confusion about precedence.'
35
34
 
36
35
  def on_send(node)
37
36
  return if !node.arguments? || node.parenthesized?
@@ -49,8 +48,7 @@ module RuboCop
49
48
  def check_ternary(ternary, node)
50
49
  return unless ternary.condition.operator_keyword?
51
50
 
52
- range = range_between(node.source_range.begin_pos,
53
- ternary.condition.source_range.end_pos)
51
+ range = range_between(node.source_range.begin_pos, ternary.condition.source_range.end_pos)
54
52
 
55
53
  add_offense(range)
56
54
  end
@@ -25,8 +25,7 @@ module RuboCop
25
25
  # handle_exception
26
26
  # end
27
27
  class RescueException < Base
28
- MSG = 'Avoid rescuing the `Exception` class. ' \
29
- 'Perhaps you meant to rescue `StandardError`?'
28
+ MSG = 'Avoid rescuing the `Exception` class. Perhaps you meant to rescue `StandardError`?'
30
29
 
31
30
  def on_resbody(node)
32
31
  return unless node.children.first
@@ -51,10 +51,7 @@ module RuboCop
51
51
 
52
52
  add_offense(
53
53
  node.loc.keyword.join(rescued.loc.expression),
54
- message: format(
55
- MSG, invalid_exceptions: invalid_exceptions.map(&:source)
56
- .join(', ')
57
- )
54
+ message: format(MSG, invalid_exceptions: invalid_exceptions.map(&:source).join(', '))
58
55
  ) do |corrector|
59
56
  autocorrect(corrector, node)
60
57
  end
@@ -83,9 +80,7 @@ module RuboCop
83
80
  end
84
81
 
85
82
  def invalid_exceptions(exceptions)
86
- exceptions.select do |exception|
87
- INVALID_TYPES.include?(exception.type)
88
- end
83
+ exceptions.select { |exception| INVALID_TYPES.include?(exception.type) }
89
84
  end
90
85
  end
91
86
  end
@@ -63,8 +63,7 @@ module RuboCop
63
63
  end
64
64
 
65
65
  def setter_method?(method_name)
66
- method_name.to_s.end_with?('=') &&
67
- !AST::Node::COMPARISON_OPERATORS.include?(method_name)
66
+ method_name.to_s.end_with?('=') && !AST::Node::COMPARISON_OPERATORS.include?(method_name)
68
67
  end
69
68
  end
70
69
  end
@@ -26,8 +26,7 @@ module RuboCop
26
26
  class SafeNavigationChain < Base
27
27
  include NilMethods
28
28
 
29
- MSG = 'Do not chain ordinary method call' \
30
- ' after safe navigation operator.'
29
+ MSG = 'Do not chain ordinary method call after safe navigation operator.'
31
30
 
32
31
  # @!method bad_method?(node)
33
32
  def_node_matcher :bad_method?, <<~PATTERN
@@ -31,8 +31,7 @@ module RuboCop
31
31
  include NilMethods
32
32
  extend AutoCorrector
33
33
 
34
- MSG = 'Ensure that safe navigation is used consistently ' \
35
- 'inside of `&&` and `||`.'
34
+ MSG = 'Ensure that safe navigation is used consistently inside of `&&` and `||`.'
36
35
 
37
36
  def on_csend(node)
38
37
  return unless node.parent&.operator_keyword?
@@ -46,15 +45,12 @@ module RuboCop
46
45
  safe_nav_receiver = node.receiver
47
46
 
48
47
  method_calls = conditions.select(&:send_type?)
49
- unsafe_method_calls =
50
- unsafe_method_calls(method_calls, safe_nav_receiver)
48
+ unsafe_method_calls = unsafe_method_calls(method_calls, safe_nav_receiver)
51
49
 
52
50
  unsafe_method_calls.each do |unsafe_method_call|
53
51
  location = location(node, unsafe_method_call)
54
52
 
55
- add_offense(location) do |corrector|
56
- autocorrect(corrector, unsafe_method_call)
57
- end
53
+ add_offense(location) { |corrector| autocorrect(corrector, unsafe_method_call) }
58
54
 
59
55
  ignore_node(unsafe_method_call)
60
56
  end
@@ -76,9 +72,7 @@ module RuboCop
76
72
  parent = node.parent
77
73
  unless parent &&
78
74
  (parent.operator_keyword? ||
79
- (parent.begin_type? &&
80
- parent.parent &&
81
- parent.parent.operator_keyword?))
75
+ (parent.begin_type? && parent.parent && parent.parent.operator_keyword?))
82
76
  return node
83
77
  end
84
78
 
@@ -22,8 +22,7 @@ module RuboCop
22
22
  class SafeNavigationWithEmpty < Base
23
23
  extend AutoCorrector
24
24
 
25
- MSG = 'Avoid calling `empty?` with the safe navigation operator ' \
26
- 'in conditionals.'
25
+ MSG = 'Avoid calling `empty?` with the safe navigation operator in conditionals.'
27
26
 
28
27
  # @!method safe_navigation_empty_in_conditional?(node)
29
28
  def_node_matcher :safe_navigation_empty_in_conditional?, <<~PATTERN
@@ -53,9 +53,7 @@ module RuboCop
53
53
 
54
54
  def on_send(node)
55
55
  send_with_mixin_argument?(node) do |method, module_name|
56
- message = message(
57
- method, module_name.source, bad_location(node).source
58
- )
56
+ message = message(method, module_name.source, bad_location(node).source)
59
57
 
60
58
  bad_location = bad_location(node)
61
59
  add_offense(bad_location, message: message) do |corrector|
@@ -73,10 +71,7 @@ module RuboCop
73
71
  end
74
72
 
75
73
  def message(method, module_name, bad_method)
76
- format(
77
- MSG,
78
- method: method, module_name: module_name, bad_method: bad_method
79
- )
74
+ format(MSG, method: method, module_name: module_name, bad_method: bad_method)
80
75
  end
81
76
 
82
77
  def mixin_method?(node)
@@ -64,8 +64,7 @@ module RuboCop
64
64
  # end
65
65
  #
66
66
  class ShadowedArgument < Base
67
- MSG = 'Argument `%<argument>s` was shadowed by a local variable ' \
68
- 'before it was used.'
67
+ MSG = 'Argument `%<argument>s` was shadowed by a local variable before it was used.'
69
68
 
70
69
  # @!method uses_var?(node)
71
70
  def_node_search :uses_var?, '(lvar %)'
@@ -75,9 +74,7 @@ module RuboCop
75
74
  end
76
75
 
77
76
  def after_leaving_scope(scope, _variable_table)
78
- scope.variables.each_value do |variable|
79
- check_argument(variable)
80
- end
77
+ scope.variables.each_value { |variable| check_argument(variable) }
81
78
  end
82
79
 
83
80
  private
@@ -128,8 +125,7 @@ module RuboCop
128
125
  next false if assignment_node.shorthand_asgn?
129
126
 
130
127
  node_within_block_or_conditional =
131
- node_within_block_or_conditional?(assignment_node.parent,
132
- argument.scope.node)
128
+ node_within_block_or_conditional?(assignment_node.parent, argument.scope.node)
133
129
 
134
130
  unless uses_var?(assignment_node, argument.name)
135
131
  # It's impossible to decide whether a branch or block is executed,
@@ -162,10 +158,7 @@ module RuboCop
162
158
  # Get argument references without assignments' references
163
159
  #
164
160
  def argument_references(argument)
165
- assignment_references = argument
166
- .assignments
167
- .flat_map(&:references)
168
- .map(&:source_range)
161
+ assignment_references = argument.assignments.flat_map(&:references).map(&:source_range)
169
162
 
170
163
  argument.references.reject do |ref|
171
164
  next false unless ref.explicit?
@@ -59,8 +59,7 @@ module RuboCop
59
59
  contains_multiple_levels_of_exceptions?(group)
60
60
  end
61
61
 
62
- return if !rescue_group_rescues_multiple_levels &&
63
- sorted?(rescued_groups)
62
+ return if !rescue_group_rescues_multiple_levels && sorted?(rescued_groups)
64
63
 
65
64
  add_offense(offense_range(rescues))
66
65
  end
@@ -74,18 +73,14 @@ module RuboCop
74
73
  end
75
74
 
76
75
  def rescued_groups_for(rescues)
77
- rescues.map do |group|
78
- evaluate_exceptions(group)
79
- end
76
+ rescues.map { |group| evaluate_exceptions(group) }
80
77
  end
81
78
 
82
79
  def contains_multiple_levels_of_exceptions?(group)
83
80
  # Always treat `Exception` as the highest level exception.
84
81
  return true if group.size > 1 && group.include?(Exception)
85
82
 
86
- group.combination(2).any? do |a, b|
87
- compare_exceptions(a, b)
88
- end
83
+ group.combination(2).any? { |a, b| compare_exceptions(a, b) }
89
84
  end
90
85
 
91
86
  def compare_exceptions(exception, other_exception)
@@ -111,6 +106,9 @@ module RuboCop
111
106
 
112
107
  if rescued_exceptions.any?
113
108
  rescued_exceptions.each_with_object([]) do |exception, converted|
109
+ # FIXME: Workaround `rubocop:disable` comment for JRuby.
110
+ # https://github.com/jruby/jruby/issues/6642
111
+ # rubocop:disable Style/RedundantBegin
114
112
  begin
115
113
  RuboCop::Util.silence_warnings do
116
114
  # Avoid printing deprecation warnings about constants
@@ -119,6 +117,7 @@ module RuboCop
119
117
  rescue NameError
120
118
  converted << nil
121
119
  end
120
+ # rubocop:enable Style/RedundantBegin
122
121
  end
123
122
  else
124
123
  # treat an empty `rescue` as `rescue StandardError`
@@ -48,8 +48,7 @@ module RuboCop
48
48
 
49
49
  next unless STRUCT_METHOD_NAMES.include?(member_name.to_sym)
50
50
 
51
- message = format(MSG, member_name: member_name.inspect,
52
- method_name: member_name.to_s)
51
+ message = format(MSG, member_name: member_name.inspect, method_name: member_name.to_s)
53
52
  add_offense(arg, message: message)
54
53
  end
55
54
  end
@@ -114,9 +114,7 @@ module RuboCop
114
114
  private
115
115
 
116
116
  def register_offense(node, correction:, message: format(MSG, correction: correction))
117
- add_offense(node, message: message) do |corrector|
118
- corrector.replace(node, correction)
119
- end
117
+ add_offense(node, message: message) { |corrector| corrector.replace(node, correction) }
120
118
  end
121
119
 
122
120
  def properly_quoted?(source, value)
@@ -152,7 +150,7 @@ module RuboCop
152
150
  # will be ignored.
153
151
  return unless node.value.to_s.match?(/\A[a-z0-9_]/i)
154
152
 
155
- correction = node.value.inspect.gsub(/\A:/, '')
153
+ correction = node.value.inspect.delete_prefix(':')
156
154
  return if properly_quoted?(node.source, correction)
157
155
 
158
156
  register_offense(