rubocop 0.68.1 → 0.69.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 (472) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/config/default.yml +25 -9
  4. data/lib/rubocop.rb +1 -0
  5. data/lib/rubocop/ast/node.rb +6 -2
  6. data/lib/rubocop/ast/node/array_node.rb +2 -2
  7. data/lib/rubocop/ast/node/block_node.rb +2 -2
  8. data/lib/rubocop/ast/node/for_node.rb +1 -1
  9. data/lib/rubocop/ast/node/hash_node.rb +1 -1
  10. data/lib/rubocop/ast/node/if_node.rb +1 -1
  11. data/lib/rubocop/ast/node/keyword_splat_node.rb +1 -1
  12. data/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +3 -3
  13. data/lib/rubocop/ast/node/mixin/method_identifier_predicates.rb +2 -2
  14. data/lib/rubocop/ast/node/mixin/parameterized_node.rb +1 -1
  15. data/lib/rubocop/ast/node/mixin/predicate_operator_node.rb +4 -4
  16. data/lib/rubocop/ast/node/pair_node.rb +4 -4
  17. data/lib/rubocop/ast/node/until_node.rb +1 -1
  18. data/lib/rubocop/ast/node/when_node.rb +1 -1
  19. data/lib/rubocop/ast/node/while_node.rb +1 -1
  20. data/lib/rubocop/cli.rb +6 -6
  21. data/lib/rubocop/comment_config.rb +6 -6
  22. data/lib/rubocop/config.rb +8 -6
  23. data/lib/rubocop/config_loader.rb +3 -3
  24. data/lib/rubocop/cop/badge.rb +1 -1
  25. data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -1
  26. data/lib/rubocop/cop/bundler/gem_comment.rb +1 -1
  27. data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +1 -1
  28. data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -1
  29. data/lib/rubocop/cop/correctors/alignment_corrector.rb +2 -2
  30. data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +2 -2
  31. data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +1 -1
  32. data/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +5 -5
  33. data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +1 -1
  34. data/lib/rubocop/cop/correctors/parentheses_corrector.rb +1 -1
  35. data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +1 -1
  36. data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +0 -1
  37. data/lib/rubocop/cop/gemspec/required_ruby_version.rb +7 -7
  38. data/lib/rubocop/cop/generator.rb +6 -6
  39. data/lib/rubocop/cop/generator/configuration_injector.rb +5 -5
  40. data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +1 -1
  41. data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -1
  42. data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -1
  43. data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +1 -1
  44. data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +1 -1
  45. data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +1 -1
  46. data/lib/rubocop/cop/layout/access_modifier_indentation.rb +2 -2
  47. data/lib/rubocop/cop/layout/align_arguments.rb +2 -2
  48. data/lib/rubocop/cop/layout/align_array.rb +1 -1
  49. data/lib/rubocop/cop/layout/align_hash.rb +3 -3
  50. data/lib/rubocop/cop/layout/align_parameters.rb +2 -2
  51. data/lib/rubocop/cop/layout/block_alignment.rb +4 -4
  52. data/lib/rubocop/cop/layout/block_end_newline.rb +0 -1
  53. data/lib/rubocop/cop/layout/case_indentation.rb +1 -1
  54. data/lib/rubocop/cop/layout/class_structure.rb +2 -2
  55. data/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +4 -4
  56. data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +3 -3
  57. data/lib/rubocop/cop/layout/comment_indentation.rb +1 -1
  58. data/lib/rubocop/cop/layout/condition_position.rb +1 -1
  59. data/lib/rubocop/cop/layout/def_end_alignment.rb +1 -1
  60. data/lib/rubocop/cop/layout/else_alignment.rb +2 -2
  61. data/lib/rubocop/cop/layout/empty_comment.rb +1 -1
  62. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +5 -5
  63. data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +1 -1
  64. data/lib/rubocop/cop/layout/empty_line_between_defs.rb +2 -2
  65. data/lib/rubocop/cop/layout/empty_lines.rb +1 -1
  66. data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +2 -2
  67. data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +1 -1
  68. data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +1 -1
  69. data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +1 -1
  70. data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +1 -1
  71. data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +1 -1
  72. data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +1 -1
  73. data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +1 -1
  74. data/lib/rubocop/cop/layout/end_of_line.rb +2 -2
  75. data/lib/rubocop/cop/layout/extra_spacing.rb +5 -5
  76. data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -1
  77. data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -1
  78. data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -1
  79. data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -1
  80. data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +3 -10
  81. data/lib/rubocop/cop/layout/indent_assignment.rb +1 -1
  82. data/lib/rubocop/cop/layout/indent_first_argument.rb +1 -1
  83. data/lib/rubocop/cop/layout/indent_first_array_element.rb +1 -1
  84. data/lib/rubocop/cop/layout/indent_first_hash_element.rb +1 -1
  85. data/lib/rubocop/cop/layout/indent_first_parameter.rb +2 -2
  86. data/lib/rubocop/cop/layout/indent_heredoc.rb +9 -47
  87. data/lib/rubocop/cop/layout/indentation_consistency.rb +1 -1
  88. data/lib/rubocop/cop/layout/indentation_width.rb +2 -2
  89. data/lib/rubocop/cop/layout/initial_indentation.rb +1 -1
  90. data/lib/rubocop/cop/layout/leading_blank_lines.rb +1 -1
  91. data/lib/rubocop/cop/layout/leading_comment_space.rb +1 -1
  92. data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +4 -4
  93. data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -1
  94. data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +2 -2
  95. data/lib/rubocop/cop/layout/multiline_block_layout.rb +2 -2
  96. data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +4 -4
  97. data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -1
  98. data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -1
  99. data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +4 -4
  100. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +2 -2
  101. data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +4 -4
  102. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +2 -2
  103. data/lib/rubocop/cop/layout/space_after_colon.rb +1 -1
  104. data/lib/rubocop/cop/layout/space_after_method_name.rb +2 -2
  105. data/lib/rubocop/cop/layout/space_after_not.rb +1 -1
  106. data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +1 -1
  107. data/lib/rubocop/cop/layout/space_around_keyword.rb +9 -9
  108. data/lib/rubocop/cop/layout/space_around_operators.rb +1 -1
  109. data/lib/rubocop/cop/layout/space_before_block_braces.rb +2 -2
  110. data/lib/rubocop/cop/layout/space_before_comment.rb +1 -1
  111. data/lib/rubocop/cop/layout/space_before_first_arg.rb +1 -1
  112. data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +4 -3
  113. data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +2 -2
  114. data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +1 -1
  115. data/lib/rubocop/cop/layout/space_inside_block_braces.rb +1 -1
  116. data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +1 -1
  117. data/lib/rubocop/cop/layout/space_inside_parens.rb +2 -2
  118. data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +1 -1
  119. data/lib/rubocop/cop/layout/space_inside_range_literal.rb +1 -1
  120. data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +2 -2
  121. data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +2 -2
  122. data/lib/rubocop/cop/layout/tab.rb +1 -1
  123. data/lib/rubocop/cop/layout/trailing_blank_lines.rb +1 -1
  124. data/lib/rubocop/cop/layout/trailing_whitespace.rb +1 -1
  125. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +1 -1
  126. data/lib/rubocop/cop/lint/ambiguous_operator.rb +1 -1
  127. data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +1 -1
  128. data/lib/rubocop/cop/lint/assignment_in_condition.rb +2 -2
  129. data/lib/rubocop/cop/lint/big_decimal_new.rb +1 -1
  130. data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -1
  131. data/lib/rubocop/cop/lint/circular_argument_reference.rb +1 -1
  132. data/lib/rubocop/cop/lint/debugger.rb +1 -1
  133. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +1 -1
  134. data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +1 -1
  135. data/lib/rubocop/cop/lint/duplicate_case_condition.rb +1 -1
  136. data/lib/rubocop/cop/lint/duplicate_methods.rb +1 -1
  137. data/lib/rubocop/cop/lint/duplicated_key.rb +1 -1
  138. data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -1
  139. data/lib/rubocop/cop/lint/else_layout.rb +1 -1
  140. data/lib/rubocop/cop/lint/empty_ensure.rb +1 -1
  141. data/lib/rubocop/cop/lint/empty_expression.rb +1 -1
  142. data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -1
  143. data/lib/rubocop/cop/lint/empty_when.rb +1 -1
  144. data/lib/rubocop/cop/lint/end_in_method.rb +1 -1
  145. data/lib/rubocop/cop/lint/ensure_return.rb +1 -1
  146. data/lib/rubocop/cop/lint/flip_flop.rb +1 -1
  147. data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -1
  148. data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +7 -8
  149. data/lib/rubocop/cop/lint/handle_exceptions.rb +1 -1
  150. data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +5 -6
  151. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +5 -5
  152. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +4 -4
  153. data/lib/rubocop/cop/lint/inherit_exception.rb +22 -1
  154. data/lib/rubocop/cop/lint/interpolation_check.rb +1 -1
  155. data/lib/rubocop/cop/lint/literal_as_condition.rb +1 -1
  156. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
  157. data/lib/rubocop/cop/lint/loop.rb +1 -1
  158. data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +2 -2
  159. data/lib/rubocop/cop/lint/multiple_compare.rb +1 -1
  160. data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -1
  161. data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -1
  162. data/lib/rubocop/cop/lint/next_without_accumulator.rb +1 -1
  163. data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +1 -1
  164. data/lib/rubocop/cop/lint/number_conversion.rb +16 -1
  165. data/lib/rubocop/cop/lint/ordered_magic_comments.rb +1 -1
  166. data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +2 -2
  167. data/lib/rubocop/cop/lint/percent_string_array.rb +1 -1
  168. data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -1
  169. data/lib/rubocop/cop/lint/rand_one.rb +1 -1
  170. data/lib/rubocop/cop/lint/redundant_with_index.rb +2 -2
  171. data/lib/rubocop/cop/lint/redundant_with_object.rb +2 -2
  172. data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -1
  173. data/lib/rubocop/cop/lint/require_parentheses.rb +1 -1
  174. data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
  175. data/lib/rubocop/cop/lint/rescue_type.rb +1 -1
  176. data/lib/rubocop/cop/lint/return_in_void_context.rb +2 -2
  177. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -4
  178. data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +2 -2
  179. data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -1
  180. data/lib/rubocop/cop/lint/script_permission.rb +2 -2
  181. data/lib/rubocop/cop/lint/shadowed_argument.rb +1 -1
  182. data/lib/rubocop/cop/lint/shadowed_exception.rb +1 -1
  183. data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +1 -1
  184. data/lib/rubocop/cop/lint/string_conversion_in_interpolation.rb +2 -2
  185. data/lib/rubocop/cop/lint/to_json.rb +1 -1
  186. data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -1
  187. data/lib/rubocop/cop/lint/unified_integer.rb +3 -1
  188. data/lib/rubocop/cop/lint/unneeded_cop_disable_directive.rb +1 -1
  189. data/lib/rubocop/cop/lint/unneeded_cop_enable_directive.rb +1 -1
  190. data/lib/rubocop/cop/lint/unneeded_require_statement.rb +1 -1
  191. data/lib/rubocop/cop/lint/unneeded_splat_expansion.rb +7 -7
  192. data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
  193. data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -1
  194. data/lib/rubocop/cop/lint/uri_escape_unescape.rb +1 -1
  195. data/lib/rubocop/cop/lint/uri_regexp.rb +1 -1
  196. data/lib/rubocop/cop/lint/useless_access_modifier.rb +1 -1
  197. data/lib/rubocop/cop/lint/useless_assignment.rb +1 -1
  198. data/lib/rubocop/cop/lint/useless_comparison.rb +1 -1
  199. data/lib/rubocop/cop/lint/useless_else_without_rescue.rb +1 -1
  200. data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -1
  201. data/lib/rubocop/cop/lint/void.rb +6 -6
  202. data/lib/rubocop/cop/metrics/abc_size.rb +1 -1
  203. data/lib/rubocop/cop/metrics/block_length.rb +2 -2
  204. data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -1
  205. data/lib/rubocop/cop/metrics/line_length.rb +1 -1
  206. data/lib/rubocop/cop/metrics/method_length.rb +1 -1
  207. data/lib/rubocop/cop/metrics/parameter_lists.rb +1 -1
  208. data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -1
  209. data/lib/rubocop/cop/mixin/alignment.rb +1 -1
  210. data/lib/rubocop/cop/mixin/check_assignment.rb +1 -1
  211. data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +3 -3
  212. data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +1 -1
  213. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +3 -4
  214. data/lib/rubocop/cop/mixin/min_body_length.rb +1 -1
  215. data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +4 -4
  216. data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -1
  217. data/lib/rubocop/cop/mixin/percent_array.rb +2 -2
  218. data/lib/rubocop/cop/mixin/range_help.rb +1 -1
  219. data/lib/rubocop/cop/mixin/rescue_node.rb +1 -2
  220. data/lib/rubocop/cop/mixin/safe_mode.rb +1 -1
  221. data/lib/rubocop/cop/mixin/space_after_punctuation.rb +1 -1
  222. data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -1
  223. data/lib/rubocop/cop/mixin/surrounding_space.rb +3 -3
  224. data/lib/rubocop/cop/mixin/too_many_lines.rb +2 -2
  225. data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -1
  226. data/lib/rubocop/cop/mixin/uncommunicative_name.rb +4 -4
  227. data/lib/rubocop/cop/naming/accessor_method_name.rb +2 -2
  228. data/lib/rubocop/cop/naming/ascii_identifiers.rb +1 -1
  229. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
  230. data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +1 -1
  231. data/lib/rubocop/cop/naming/constant_name.rb +4 -4
  232. data/lib/rubocop/cop/naming/file_name.rb +3 -3
  233. data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +1 -1
  234. data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +1 -1
  235. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +2 -2
  236. data/lib/rubocop/cop/naming/method_name.rb +1 -1
  237. data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +1 -1
  238. data/lib/rubocop/cop/naming/variable_name.rb +1 -1
  239. data/lib/rubocop/cop/naming/variable_number.rb +1 -1
  240. data/lib/rubocop/cop/rails/action_filter.rb +1 -1
  241. data/lib/rubocop/cop/rails/active_record_aliases.rb +1 -1
  242. data/lib/rubocop/cop/rails/active_record_override.rb +1 -1
  243. data/lib/rubocop/cop/rails/active_support_aliases.rb +1 -1
  244. data/lib/rubocop/cop/rails/application_job.rb +3 -3
  245. data/lib/rubocop/cop/rails/application_record.rb +3 -3
  246. data/lib/rubocop/cop/rails/assert_not.rb +1 -1
  247. data/lib/rubocop/cop/rails/belongs_to.rb +2 -2
  248. data/lib/rubocop/cop/rails/blank.rb +3 -3
  249. data/lib/rubocop/cop/rails/bulk_change_table.rb +4 -4
  250. data/lib/rubocop/cop/rails/create_table_with_timestamps.rb +1 -1
  251. data/lib/rubocop/cop/rails/date.rb +11 -6
  252. data/lib/rubocop/cop/rails/delegate.rb +1 -1
  253. data/lib/rubocop/cop/rails/delegate_allow_blank.rb +1 -1
  254. data/lib/rubocop/cop/rails/dynamic_find_by.rb +1 -1
  255. data/lib/rubocop/cop/rails/enum_uniqueness.rb +1 -1
  256. data/lib/rubocop/cop/rails/environment_comparison.rb +2 -2
  257. data/lib/rubocop/cop/rails/exit.rb +1 -1
  258. data/lib/rubocop/cop/rails/file_path.rb +2 -2
  259. data/lib/rubocop/cop/rails/find_by.rb +1 -1
  260. data/lib/rubocop/cop/rails/find_each.rb +2 -3
  261. data/lib/rubocop/cop/rails/has_and_belongs_to_many.rb +1 -1
  262. data/lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb +1 -1
  263. data/lib/rubocop/cop/rails/http_positional_arguments.rb +1 -1
  264. data/lib/rubocop/cop/rails/http_status.rb +4 -4
  265. data/lib/rubocop/cop/rails/ignored_skip_action_filter_option.rb +1 -1
  266. data/lib/rubocop/cop/rails/inverse_of.rb +2 -2
  267. data/lib/rubocop/cop/rails/lexically_scoped_action_filter.rb +1 -1
  268. data/lib/rubocop/cop/rails/link_to_blank.rb +9 -2
  269. data/lib/rubocop/cop/rails/not_null_column.rb +1 -1
  270. data/lib/rubocop/cop/rails/output.rb +1 -1
  271. data/lib/rubocop/cop/rails/output_safety.rb +2 -2
  272. data/lib/rubocop/cop/rails/pluralization_grammar.rb +1 -1
  273. data/lib/rubocop/cop/rails/presence.rb +1 -1
  274. data/lib/rubocop/cop/rails/present.rb +3 -3
  275. data/lib/rubocop/cop/rails/read_write_attribute.rb +1 -1
  276. data/lib/rubocop/cop/rails/redundant_allow_nil.rb +2 -2
  277. data/lib/rubocop/cop/rails/redundant_receiver_in_with_options.rb +1 -1
  278. data/lib/rubocop/cop/rails/reflection_class_name.rb +1 -1
  279. data/lib/rubocop/cop/rails/refute_methods.rb +1 -1
  280. data/lib/rubocop/cop/rails/relative_date_constant.rb +2 -2
  281. data/lib/rubocop/cop/rails/request_referer.rb +1 -1
  282. data/lib/rubocop/cop/rails/reversible_migration.rb +4 -4
  283. data/lib/rubocop/cop/rails/safe_navigation.rb +2 -6
  284. data/lib/rubocop/cop/rails/save_bang.rb +8 -8
  285. data/lib/rubocop/cop/rails/scope_args.rb +1 -1
  286. data/lib/rubocop/cop/rails/skips_model_validations.rb +1 -1
  287. data/lib/rubocop/cop/rails/time_zone.rb +53 -39
  288. data/lib/rubocop/cop/rails/uniq_before_pluck.rb +3 -3
  289. data/lib/rubocop/cop/rails/unknown_env.rb +2 -2
  290. data/lib/rubocop/cop/rails/validation.rb +1 -1
  291. data/lib/rubocop/cop/registry.rb +1 -1
  292. data/lib/rubocop/cop/security/eval.rb +1 -1
  293. data/lib/rubocop/cop/security/json_load.rb +1 -1
  294. data/lib/rubocop/cop/security/marshal_load.rb +1 -1
  295. data/lib/rubocop/cop/security/open.rb +1 -1
  296. data/lib/rubocop/cop/security/yaml_load.rb +1 -1
  297. data/lib/rubocop/cop/style/alias.rb +3 -3
  298. data/lib/rubocop/cop/style/and_or.rb +1 -1
  299. data/lib/rubocop/cop/style/array_join.rb +1 -1
  300. data/lib/rubocop/cop/style/ascii_comments.rb +1 -1
  301. data/lib/rubocop/cop/style/attr.rb +1 -1
  302. data/lib/rubocop/cop/style/auto_resource_cleanup.rb +1 -1
  303. data/lib/rubocop/cop/style/bare_percent_literals.rb +1 -1
  304. data/lib/rubocop/cop/style/begin_block.rb +1 -1
  305. data/lib/rubocop/cop/style/block_comments.rb +1 -1
  306. data/lib/rubocop/cop/style/block_delimiters.rb +0 -1
  307. data/lib/rubocop/cop/style/braces_around_hash_parameters.rb +1 -1
  308. data/lib/rubocop/cop/style/case_equality.rb +1 -1
  309. data/lib/rubocop/cop/style/character_literal.rb +1 -1
  310. data/lib/rubocop/cop/style/class_and_module_children.rb +5 -5
  311. data/lib/rubocop/cop/style/class_check.rb +1 -1
  312. data/lib/rubocop/cop/style/class_methods.rb +1 -1
  313. data/lib/rubocop/cop/style/class_vars.rb +1 -1
  314. data/lib/rubocop/cop/style/collection_methods.rb +1 -1
  315. data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
  316. data/lib/rubocop/cop/style/colon_method_definition.rb +1 -1
  317. data/lib/rubocop/cop/style/command_literal.rb +2 -2
  318. data/lib/rubocop/cop/style/comment_annotation.rb +2 -2
  319. data/lib/rubocop/cop/style/commented_keyword.rb +1 -1
  320. data/lib/rubocop/cop/style/conditional_assignment.rb +14 -14
  321. data/lib/rubocop/cop/style/constant_visibility.rb +1 -1
  322. data/lib/rubocop/cop/style/copyright.rb +2 -2
  323. data/lib/rubocop/cop/style/date_time.rb +2 -2
  324. data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -1
  325. data/lib/rubocop/cop/style/dir.rb +1 -1
  326. data/lib/rubocop/cop/style/documentation.rb +2 -2
  327. data/lib/rubocop/cop/style/documentation_method.rb +1 -1
  328. data/lib/rubocop/cop/style/double_negation.rb +1 -1
  329. data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -1
  330. data/lib/rubocop/cop/style/each_with_object.rb +3 -3
  331. data/lib/rubocop/cop/style/empty_block_parameter.rb +1 -1
  332. data/lib/rubocop/cop/style/empty_case_condition.rb +1 -1
  333. data/lib/rubocop/cop/style/empty_else.rb +2 -2
  334. data/lib/rubocop/cop/style/empty_lambda_parameter.rb +1 -1
  335. data/lib/rubocop/cop/style/empty_literal.rb +3 -3
  336. data/lib/rubocop/cop/style/empty_method.rb +2 -2
  337. data/lib/rubocop/cop/style/encoding.rb +2 -2
  338. data/lib/rubocop/cop/style/end_block.rb +1 -1
  339. data/lib/rubocop/cop/style/eval_with_location.rb +3 -3
  340. data/lib/rubocop/cop/style/even_odd.rb +1 -1
  341. data/lib/rubocop/cop/style/expand_path_arguments.rb +3 -3
  342. data/lib/rubocop/cop/style/for.rb +2 -2
  343. data/lib/rubocop/cop/style/format_string.rb +1 -1
  344. data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +5 -21
  345. data/lib/rubocop/cop/style/global_vars.rb +1 -1
  346. data/lib/rubocop/cop/style/guard_clause.rb +3 -3
  347. data/lib/rubocop/cop/style/hash_syntax.rb +3 -3
  348. data/lib/rubocop/cop/style/identical_conditional_branches.rb +1 -1
  349. data/lib/rubocop/cop/style/if_inside_else.rb +2 -2
  350. data/lib/rubocop/cop/style/if_unless_modifier.rb +1 -1
  351. data/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +1 -1
  352. data/lib/rubocop/cop/style/if_with_semicolon.rb +2 -2
  353. data/lib/rubocop/cop/style/implicit_runtime_error.rb +1 -1
  354. data/lib/rubocop/cop/style/infinite_loop.rb +1 -1
  355. data/lib/rubocop/cop/style/inline_comment.rb +1 -1
  356. data/lib/rubocop/cop/style/inverse_methods.rb +7 -1
  357. data/lib/rubocop/cop/style/ip_addresses.rb +1 -1
  358. data/lib/rubocop/cop/style/lambda.rb +2 -2
  359. data/lib/rubocop/cop/style/line_end_concatenation.rb +2 -2
  360. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +3 -3
  361. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -1
  362. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -2
  363. data/lib/rubocop/cop/style/method_def_parentheses.rb +2 -2
  364. data/lib/rubocop/cop/style/method_missing_super.rb +1 -1
  365. data/lib/rubocop/cop/style/min_max.rb +1 -1
  366. data/lib/rubocop/cop/style/missing_else.rb +3 -3
  367. data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -1
  368. data/lib/rubocop/cop/style/mixin_grouping.rb +1 -1
  369. data/lib/rubocop/cop/style/mixin_usage.rb +1 -1
  370. data/lib/rubocop/cop/style/module_function.rb +3 -3
  371. data/lib/rubocop/cop/style/multiline_block_chain.rb +2 -2
  372. data/lib/rubocop/cop/style/multiline_if_modifier.rb +1 -1
  373. data/lib/rubocop/cop/style/multiline_if_then.rb +1 -1
  374. data/lib/rubocop/cop/style/multiline_memoization.rb +1 -1
  375. data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -1
  376. data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -1
  377. data/lib/rubocop/cop/style/multiple_comparison.rb +1 -1
  378. data/lib/rubocop/cop/style/mutable_constant.rb +3 -3
  379. data/lib/rubocop/cop/style/negated_if.rb +1 -1
  380. data/lib/rubocop/cop/style/negated_unless.rb +89 -0
  381. data/lib/rubocop/cop/style/nested_modifier.rb +4 -4
  382. data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +1 -1
  383. data/lib/rubocop/cop/style/nested_ternary_operator.rb +1 -1
  384. data/lib/rubocop/cop/style/next.rb +5 -5
  385. data/lib/rubocop/cop/style/nil_comparison.rb +2 -2
  386. data/lib/rubocop/cop/style/not.rb +1 -1
  387. data/lib/rubocop/cop/style/numeric_literal_prefix.rb +5 -5
  388. data/lib/rubocop/cop/style/numeric_literals.rb +2 -2
  389. data/lib/rubocop/cop/style/numeric_predicate.rb +2 -10
  390. data/lib/rubocop/cop/style/one_line_conditional.rb +1 -1
  391. data/lib/rubocop/cop/style/option_hash.rb +1 -1
  392. data/lib/rubocop/cop/style/optional_arguments.rb +1 -1
  393. data/lib/rubocop/cop/style/or_assignment.rb +1 -1
  394. data/lib/rubocop/cop/style/parallel_assignment.rb +2 -2
  395. data/lib/rubocop/cop/style/percent_q_literals.rb +2 -2
  396. data/lib/rubocop/cop/style/perl_backrefs.rb +1 -1
  397. data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -1
  398. data/lib/rubocop/cop/style/proc.rb +1 -1
  399. data/lib/rubocop/cop/style/raise_args.rb +2 -2
  400. data/lib/rubocop/cop/style/random_with_offset.rb +1 -1
  401. data/lib/rubocop/cop/style/redundant_begin.rb +2 -2
  402. data/lib/rubocop/cop/style/redundant_conditional.rb +1 -1
  403. data/lib/rubocop/cop/style/redundant_exception.rb +2 -2
  404. data/lib/rubocop/cop/style/redundant_freeze.rb +1 -1
  405. data/lib/rubocop/cop/style/redundant_parentheses.rb +6 -6
  406. data/lib/rubocop/cop/style/redundant_return.rb +3 -3
  407. data/lib/rubocop/cop/style/redundant_self.rb +2 -2
  408. data/lib/rubocop/cop/style/redundant_sort_by.rb +1 -1
  409. data/lib/rubocop/cop/style/regexp_literal.rb +2 -2
  410. data/lib/rubocop/cop/style/rescue_modifier.rb +1 -1
  411. data/lib/rubocop/cop/style/rescue_standard_error.rb +2 -2
  412. data/lib/rubocop/cop/style/return_nil.rb +2 -2
  413. data/lib/rubocop/cop/style/safe_navigation.rb +2 -7
  414. data/lib/rubocop/cop/style/sample.rb +1 -1
  415. data/lib/rubocop/cop/style/self_assignment.rb +1 -1
  416. data/lib/rubocop/cop/style/semicolon.rb +1 -1
  417. data/lib/rubocop/cop/style/send.rb +1 -1
  418. data/lib/rubocop/cop/style/signal_exception.rb +2 -2
  419. data/lib/rubocop/cop/style/single_line_block_params.rb +1 -1
  420. data/lib/rubocop/cop/style/single_line_methods.rb +1 -1
  421. data/lib/rubocop/cop/style/special_global_vars.rb +5 -5
  422. data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +2 -2
  423. data/lib/rubocop/cop/style/stderr_puts.rb +0 -1
  424. data/lib/rubocop/cop/style/string_hash_keys.rb +2 -1
  425. data/lib/rubocop/cop/style/string_literals.rb +1 -1
  426. data/lib/rubocop/cop/style/string_methods.rb +1 -1
  427. data/lib/rubocop/cop/style/strip.rb +1 -1
  428. data/lib/rubocop/cop/style/struct_inheritance.rb +1 -1
  429. data/lib/rubocop/cop/style/symbol_array.rb +2 -2
  430. data/lib/rubocop/cop/style/symbol_literal.rb +1 -1
  431. data/lib/rubocop/cop/style/symbol_proc.rb +1 -1
  432. data/lib/rubocop/cop/style/ternary_parentheses.rb +2 -2
  433. data/lib/rubocop/cop/style/trailing_body_on_class.rb +1 -1
  434. data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -1
  435. data/lib/rubocop/cop/style/trailing_body_on_module.rb +1 -1
  436. data/lib/rubocop/cop/style/trailing_method_end_statement.rb +1 -1
  437. data/lib/rubocop/cop/style/trailing_underscore_variable.rb +2 -2
  438. data/lib/rubocop/cop/style/trivial_accessors.rb +2 -2
  439. data/lib/rubocop/cop/style/unless_else.rb +2 -2
  440. data/lib/rubocop/cop/style/unneeded_capital_w.rb +1 -1
  441. data/lib/rubocop/cop/style/unneeded_condition.rb +4 -4
  442. data/lib/rubocop/cop/style/unneeded_interpolation.rb +3 -3
  443. data/lib/rubocop/cop/style/unneeded_percent_q.rb +7 -7
  444. data/lib/rubocop/cop/style/unneeded_sort.rb +2 -2
  445. data/lib/rubocop/cop/style/unpack_first.rb +1 -1
  446. data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
  447. data/lib/rubocop/cop/style/when_then.rb +1 -1
  448. data/lib/rubocop/cop/style/while_until_do.rb +1 -1
  449. data/lib/rubocop/cop/style/while_until_modifier.rb +1 -1
  450. data/lib/rubocop/cop/style/word_array.rb +2 -2
  451. data/lib/rubocop/cop/style/yoda_condition.rb +1 -1
  452. data/lib/rubocop/cop/style/zero_length_predicate.rb +2 -2
  453. data/lib/rubocop/cop/util.rb +2 -2
  454. data/lib/rubocop/cop/variable_force/variable_table.rb +1 -1
  455. data/lib/rubocop/core_ext/string.rb +1 -1
  456. data/lib/rubocop/formatter/clang_style_formatter.rb +1 -1
  457. data/lib/rubocop/formatter/disabled_config_formatter.rb +2 -2
  458. data/lib/rubocop/formatter/fuubar_style_formatter.rb +1 -1
  459. data/lib/rubocop/formatter/html_formatter.rb +1 -1
  460. data/lib/rubocop/formatter/progress_formatter.rb +1 -1
  461. data/lib/rubocop/formatter/simple_text_formatter.rb +1 -1
  462. data/lib/rubocop/magic_comment.rb +4 -4
  463. data/lib/rubocop/node_pattern.rb +9 -9
  464. data/lib/rubocop/options.rb +2 -2
  465. data/lib/rubocop/processed_source.rb +3 -5
  466. data/lib/rubocop/rspec/cop_helper.rb +2 -2
  467. data/lib/rubocop/rspec/expect_offense.rb +5 -5
  468. data/lib/rubocop/rspec/shared_contexts.rb +0 -4
  469. data/lib/rubocop/runner.rb +1 -1
  470. data/lib/rubocop/string_interpreter.rb +7 -7
  471. data/lib/rubocop/version.rb +2 -2
  472. metadata +11 -16
@@ -25,7 +25,7 @@ module RuboCop
25
25
  # rand(1...7)
26
26
  class RandomWithOffset < Cop
27
27
  MSG = 'Prefer ranges when generating random numbers instead of ' \
28
- 'integers with offsets.'.freeze
28
+ 'integers with offsets.'
29
29
 
30
30
  def_node_matcher :integer_op_rand?, <<-PATTERN
31
31
  (send
@@ -55,7 +55,7 @@ module RuboCop
55
55
  # end
56
56
  # end
57
57
  class RedundantBegin < Cop
58
- MSG = 'Redundant `begin` block detected.'.freeze
58
+ MSG = 'Redundant `begin` block detected.'
59
59
 
60
60
  def on_def(node)
61
61
  check(node)
@@ -81,7 +81,7 @@ module RuboCop
81
81
  private
82
82
 
83
83
  def check(node)
84
- return unless node.body && node.body.kwbegin_type?
84
+ return unless node.body&.kwbegin_type?
85
85
 
86
86
  add_offense(node.body, location: :begin)
87
87
  end
@@ -30,7 +30,7 @@ module RuboCop
30
30
  COMPARISON_OPERATORS = RuboCop::AST::Node::COMPARISON_OPERATORS
31
31
 
32
32
  MSG = 'This conditional expression can just be replaced ' \
33
- 'by `%<msg>s`.'.freeze
33
+ 'by `%<msg>s`.'
34
34
 
35
35
  def on_if(node)
36
36
  return unless offense?(node)
@@ -17,9 +17,9 @@ module RuboCop
17
17
  # # Good
18
18
  # raise 'message'
19
19
  class RedundantException < Cop
20
- MSG_1 = 'Redundant `RuntimeError` argument can be removed.'.freeze
20
+ MSG_1 = 'Redundant `RuntimeError` argument can be removed.'
21
21
  MSG_2 = 'Redundant `RuntimeError.new` call can be replaced with ' \
22
- 'just the message.'.freeze
22
+ 'just the message.'
23
23
 
24
24
  def on_send(node)
25
25
  exploded?(node) { return add_offense(node, message: MSG_1) }
@@ -15,7 +15,7 @@ module RuboCop
15
15
  include FrozenStringLiteral
16
16
 
17
17
  MSG = 'Do not freeze immutable objects, as freezing them has no ' \
18
- 'effect.'.freeze
18
+ 'effect.'
19
19
 
20
20
  def on_send(node)
21
21
  return unless node.receiver && node.method?(:freeze) &&
@@ -126,7 +126,7 @@ module RuboCop
126
126
  end
127
127
 
128
128
  def keyword_ancestor?(node)
129
- node.parent && node.parent.keyword?
129
+ node.parent&.keyword?
130
130
  end
131
131
 
132
132
  def allowed_array_or_hash_element?(node)
@@ -140,11 +140,11 @@ module RuboCop
140
140
  end
141
141
 
142
142
  def hash_element?(node)
143
- node.parent && node.parent.pair_type?
143
+ node.parent&.pair_type?
144
144
  end
145
145
 
146
146
  def array_element?(node)
147
- node.parent && node.parent.array_type?
147
+ node.parent&.array_type?
148
148
  end
149
149
 
150
150
  def only_closing_paren_before_comma?(node)
@@ -163,13 +163,13 @@ module RuboCop
163
163
  def raised_to_power_negative_numeric?(begin_node, node)
164
164
  return false unless node.numeric_type?
165
165
 
166
- siblings = begin_node.parent && begin_node.parent.children
166
+ siblings = begin_node.parent&.children
167
167
  return false if siblings.nil?
168
168
 
169
169
  next_sibling = siblings[begin_node.sibling_index + 1]
170
170
  base_value = node.children.first
171
171
 
172
- base_value < 0 && next_sibling == :**
172
+ base_value.negative? && next_sibling == :**
173
173
  end
174
174
 
175
175
  def keyword_with_redundant_parentheses?(node)
@@ -213,7 +213,7 @@ module RuboCop
213
213
 
214
214
  def call_chain_starts_with_int?(begin_node, send_node)
215
215
  recv = first_part_of_call_chain(send_node)
216
- recv && recv.int_type? && (parent = begin_node.parent) &&
216
+ recv&.int_type? && (parent = begin_node.parent) &&
217
217
  parent.send_type? && (parent.method?(:-@) || parent.method?(:+@))
218
218
  end
219
219
  end
@@ -38,8 +38,8 @@ module RuboCop
38
38
  class RedundantReturn < Cop
39
39
  include RangeHelp
40
40
 
41
- MSG = 'Redundant `return` detected.'.freeze
42
- MULTI_RETURN_MSG = 'To return multiple values, use an array.'.freeze
41
+ MSG = 'Redundant `return` detected.'
42
+ MULTI_RETURN_MSG = 'To return multiple values, use an array.'
43
43
 
44
44
  def on_def(node)
45
45
  return unless node.body
@@ -139,7 +139,7 @@ module RuboCop
139
139
  expressions = *node
140
140
  last_expr = expressions.last
141
141
 
142
- return unless last_expr && last_expr.return_type?
142
+ return unless last_expr&.return_type?
143
143
 
144
144
  check_return_node(last_expr)
145
145
  end
@@ -42,7 +42,7 @@ module RuboCop
42
42
  # end
43
43
  # end
44
44
  class RedundantSelf < Cop
45
- MSG = 'Redundant `self` detected.'.freeze
45
+ MSG = 'Redundant `self` detected.'
46
46
  KERNEL_METHODS = Kernel.methods(false)
47
47
 
48
48
  def self.autocorrect_incompatible_with
@@ -90,7 +90,7 @@ module RuboCop
90
90
 
91
91
  def on_send(node)
92
92
  return unless node.self_receiver? && regular_method_call?(node)
93
- return if node.parent && node.parent.mlhs_type?
93
+ return if node.parent&.mlhs_type?
94
94
 
95
95
  return if allowed_send_node?(node)
96
96
 
@@ -18,7 +18,7 @@ module RuboCop
18
18
  class RedundantSortBy < Cop
19
19
  include RangeHelp
20
20
 
21
- MSG = 'Use `sort` instead of `sort_by { |%<var>s| %<var>s }`.'.freeze
21
+ MSG = 'Use `sort` instead of `sort_by { |%<var>s| %<var>s }`.'
22
22
 
23
23
  def_node_matcher :redundant_sort_by, <<-PATTERN
24
24
  (block $(send _ :sort_by) (args (arg $_x)) (lvar _x))
@@ -85,8 +85,8 @@ module RuboCop
85
85
  include ConfigurableEnforcedStyle
86
86
  include RangeHelp
87
87
 
88
- MSG_USE_SLASHES = 'Use `//` around regular expression.'.freeze
89
- MSG_USE_PERCENT_R = 'Use `%r` around regular expression.'.freeze
88
+ MSG_USE_SLASHES = 'Use `//` around regular expression.'
89
+ MSG_USE_PERCENT_R = 'Use `%r` around regular expression.'
90
90
 
91
91
  def on_regexp(node)
92
92
  if slash_literal?(node)
@@ -19,7 +19,7 @@ module RuboCop
19
19
  include Alignment
20
20
  include RescueNode
21
21
 
22
- MSG = 'Avoid using `rescue` in its modifier form.'.freeze
22
+ MSG = 'Avoid using `rescue` in its modifier form.'
23
23
 
24
24
  def on_resbody(node)
25
25
  return unless rescue_modifier?(node)
@@ -76,9 +76,9 @@ module RuboCop
76
76
  include RangeHelp
77
77
 
78
78
  MSG_IMPLICIT = 'Omit the error class when rescuing ' \
79
- '`StandardError` by itself.'.freeze
79
+ '`StandardError` by itself.'
80
80
  MSG_EXPLICIT = 'Avoid rescuing without specifying ' \
81
- 'an error class.'.freeze
81
+ 'an error class.'
82
82
 
83
83
  def_node_matcher :rescue_without_error_class?, <<-PATTERN
84
84
  (resbody nil? _ _)
@@ -31,8 +31,8 @@ module RuboCop
31
31
  class ReturnNil < Cop
32
32
  include ConfigurableEnforcedStyle
33
33
 
34
- RETURN_MSG = 'Use `return` instead of `return nil`.'.freeze
35
- RETURN_NIL_MSG = 'Use `return nil` instead of `return`.'.freeze
34
+ RETURN_MSG = 'Use `return` instead of `return nil`.'
35
+ RETURN_NIL_MSG = 'Use `return nil` instead of `return`.'
36
36
 
37
37
  def_node_matcher :return_node?, '(return)'
38
38
  def_node_matcher :return_nil_node?, '(return nil)'
@@ -59,17 +59,14 @@ module RuboCop
59
59
  # foo.baz + bar if foo
60
60
  # foo.bar > 2 if foo
61
61
  class SafeNavigation < Cop
62
- extend TargetRubyVersion
63
62
  include NilMethods
64
63
  include RangeHelp
65
64
 
66
65
  MSG = 'Use safe navigation (`&.`) instead of checking if an object ' \
67
- 'exists before calling the method.'.freeze
66
+ 'exists before calling the method.'
68
67
  LOGIC_JUMP_KEYWORDS = %i[break fail next raise
69
68
  return throw yield].freeze
70
69
 
71
- minimum_target_ruby_version 2.3
72
-
73
70
  # if format: (if checked_variable body nil)
74
71
  # unless format: (if checked_variable nil body)
75
72
  def_node_matcher :modifier_if_safe_navigation_candidate, <<-PATTERN
@@ -99,8 +96,6 @@ module RuboCop
99
96
  end
100
97
 
101
98
  def check_node(node)
102
- return if target_ruby_version < 2.3
103
-
104
99
  checked_variable, receiver, method_chain, method = extract_parts(node)
105
100
  return unless receiver == checked_variable
106
101
  return if use_var_only_in_unless_modifier?(node, checked_variable)
@@ -229,7 +224,7 @@ module RuboCop
229
224
  end
230
225
 
231
226
  def method_called?(send_node)
232
- send_node.parent && send_node.parent.send_type?
227
+ send_node.parent&.send_type?
233
228
  end
234
229
 
235
230
  def begin_range(node, method_call)
@@ -28,7 +28,7 @@ module RuboCop
28
28
  # [1, 2, 3].shuffle[foo, bar]
29
29
  # [1, 2, 3].shuffle(random: Random.new)
30
30
  class Sample < Cop
31
- MSG = 'Use `%<correct>s` instead of `%<incorrect>s`.'.freeze
31
+ MSG = 'Use `%<correct>s` instead of `%<incorrect>s`.'
32
32
 
33
33
  def_node_matcher :sample_candidate?, <<-PATTERN
34
34
  (send $(send _ :shuffle $...) ${:first :last :[] :at :slice} $...)
@@ -13,7 +13,7 @@ module RuboCop
13
13
  # # good
14
14
  # x += 1
15
15
  class SelfAssignment < Cop
16
- MSG = 'Use self-assignment shorthand `%<method>s=`.'.freeze
16
+ MSG = 'Use self-assignment shorthand `%<method>s=`.'
17
17
  OPS = %i[+ - * ** / | &].freeze
18
18
 
19
19
  def self.autocorrect_incompatible_with
@@ -18,7 +18,7 @@ module RuboCop
18
18
  class Semicolon < Cop
19
19
  include RangeHelp
20
20
 
21
- MSG = 'Do not use semicolons to terminate expressions.'.freeze
21
+ MSG = 'Do not use semicolons to terminate expressions.'
22
22
 
23
23
  def investigate(processed_source)
24
24
  return if processed_source.blank?
@@ -15,7 +15,7 @@ module RuboCop
15
15
  # quuz.public_send(:fred)
16
16
  class Send < Cop
17
17
  MSG = 'Prefer `Object#__send__` or `Object#public_send` to ' \
18
- '`send`.'.freeze
18
+ '`send`.'
19
19
 
20
20
  def_node_matcher :sending?, '({send csend} _ :send ...)'
21
21
 
@@ -107,9 +107,9 @@ module RuboCop
107
107
  class SignalException < Cop
108
108
  include ConfigurableEnforcedStyle
109
109
 
110
- FAIL_MSG = 'Use `fail` instead of `raise` to signal exceptions.'.freeze
110
+ FAIL_MSG = 'Use `fail` instead of `raise` to signal exceptions.'
111
111
  RAISE_MSG = 'Use `raise` instead of `fail` to ' \
112
- 'rethrow exceptions.'.freeze
112
+ 'rethrow exceptions.'
113
113
 
114
114
  def_node_matcher :kernel_call?, '(send (const nil? :Kernel) %1 ...)'
115
115
  def_node_search :custom_fail_methods,
@@ -29,7 +29,7 @@ module RuboCop
29
29
  # c + d
30
30
  # end
31
31
  class SingleLineBlockParams < Cop
32
- MSG = 'Name `%<method>s` block params `|%<params>s|`.'.freeze
32
+ MSG = 'Name `%<method>s` block params `|%<params>s|`.'
33
33
 
34
34
  def on_block(node)
35
35
  return unless node.single_line?
@@ -20,7 +20,7 @@ module RuboCop
20
20
  class SingleLineMethods < Cop
21
21
  include Alignment
22
22
 
23
- MSG = 'Avoid single-line method definitions.'.freeze
23
+ MSG = 'Avoid single-line method definitions.'
24
24
 
25
25
  def on_def(node)
26
26
  return unless node.single_line?
@@ -61,10 +61,10 @@ module RuboCop
61
61
 
62
62
  MSG_BOTH = 'Prefer `%<prefer>s` from the stdlib \'English\' ' \
63
63
  'module (don\'t forget to require it) or `%<regular>s` over ' \
64
- '`%<global>s`.'.freeze
64
+ '`%<global>s`.'
65
65
  MSG_ENGLISH = 'Prefer `%<prefer>s` from the stdlib \'English\' ' \
66
- 'module (don\'t forget to require it) over `%<global>s`.'.freeze
67
- MSG_REGULAR = 'Prefer `%<prefer>s` over `%<global>s`.'.freeze
66
+ 'module (don\'t forget to require it) over `%<global>s`.'
67
+ MSG_REGULAR = 'Prefer `%<prefer>s` over `%<global>s`.'
68
68
 
69
69
  ENGLISH_VARS = { # rubocop:disable Style/MutableConstant
70
70
  :$: => [:$LOAD_PATH],
@@ -140,7 +140,7 @@ module RuboCop
140
140
  lambda do |corrector|
141
141
  global_var, = *node
142
142
 
143
- while node.parent && node.parent.begin_type? &&
143
+ while node.parent&.begin_type? &&
144
144
  node.parent.children.one?
145
145
  node = node.parent
146
146
  end
@@ -180,7 +180,7 @@ module RuboCop
180
180
  end
181
181
 
182
182
  def replacement(node, global_var)
183
- parent_type = node.parent && node.parent.type
183
+ parent_type = node.parent&.type
184
184
  preferred_name = preferred_names(global_var).first
185
185
 
186
186
  unless %i[dstr xstr regexp].include?(parent_type)
@@ -22,9 +22,9 @@ module RuboCop
22
22
  class StabbyLambdaParentheses < Cop
23
23
  include ConfigurableEnforcedStyle
24
24
 
25
- MSG_REQUIRE = 'Wrap stabby lambda arguments with parentheses.'.freeze
25
+ MSG_REQUIRE = 'Wrap stabby lambda arguments with parentheses.'
26
26
  MSG_NO_REQUIRE = 'Do not wrap stabby lambda arguments ' \
27
- 'with parentheses.'.freeze
27
+ 'with parentheses.'
28
28
  def on_send(node)
29
29
  return unless stabby_lambda_with_args?(node)
30
30
  return unless redundant_parentheses?(node) ||
@@ -19,7 +19,6 @@ module RuboCop
19
19
 
20
20
  MSG =
21
21
  'Use `warn` instead of `%<bad>s` to allow such output to be disabled.'
22
- .freeze
23
22
 
24
23
  def_node_matcher :stderr_puts?, <<-PATTERN
25
24
  (send
@@ -13,7 +13,7 @@ module RuboCop
13
13
  # # good
14
14
  # { one: 1, two: 2, three: 3 }
15
15
  class StringHashKeys < Cop
16
- MSG = 'Prefer symbols instead of strings as hash keys.'.freeze
16
+ MSG = 'Prefer symbols instead of strings as hash keys.'
17
17
 
18
18
  def_node_matcher :string_hash_key?, <<-PATTERN
19
19
  (pair (str _) _)
@@ -27,6 +27,7 @@ module RuboCop
27
27
  ^^^(send (const {nil? cbase} :Open3)
28
28
  {:pipeline :pipeline_r :pipeline_rw :pipeline_start :pipeline_w} ...)
29
29
  ^^(send {nil? (const {nil? cbase} :Kernel)} {:spawn :system} ...)
30
+ ^^(send _ {:gsub :gsub!} ...)
30
31
  }
31
32
  PATTERN
32
33
 
@@ -30,7 +30,7 @@ module RuboCop
30
30
  include ConfigurableEnforcedStyle
31
31
  include StringLiteralsHelp
32
32
 
33
- MSG_INCONSISTENT = 'Inconsistent quote style.'.freeze
33
+ MSG_INCONSISTENT = 'Inconsistent quote style.'
34
34
 
35
35
  def on_dstr(node)
36
36
  # Strings which are continued across multiple lines using \
@@ -17,7 +17,7 @@ module RuboCop
17
17
  class StringMethods < Cop
18
18
  include MethodPreference
19
19
 
20
- MSG = 'Prefer `%<prefer>s` over `%<current>s`.'.freeze
20
+ MSG = 'Prefer `%<prefer>s` over `%<current>s`.'
21
21
 
22
22
  def on_send(node)
23
23
  return unless preferred_method(node.method_name)
@@ -16,7 +16,7 @@ module RuboCop
16
16
  class Strip < Cop
17
17
  include RangeHelp
18
18
 
19
- MSG = 'Use `strip` instead of `%<methods>s`.'.freeze
19
+ MSG = 'Use `strip` instead of `%<methods>s`.'
20
20
 
21
21
  def_node_matcher :lstrip_rstrip, <<-PATTERN
22
22
  {(send $(send _ $:rstrip) $:lstrip)
@@ -21,7 +21,7 @@ module RuboCop
21
21
  # end
22
22
  class StructInheritance < Cop
23
23
  MSG = "Don't extend an instance initialized by `Struct.new`. " \
24
- 'Use a block to customize the struct.'.freeze
24
+ 'Use a block to customize the struct.'
25
25
 
26
26
  def on_class(node)
27
27
  return unless struct_constructor?(node.parent_class)
@@ -33,8 +33,8 @@ module RuboCop
33
33
  include ConfigurableEnforcedStyle
34
34
  include PercentArray
35
35
 
36
- PERCENT_MSG = 'Use `%i` or `%I` for an array of symbols.'.freeze
37
- ARRAY_MSG = 'Use `[]` for an array of symbols.'.freeze
36
+ PERCENT_MSG = 'Use `%i` or `%I` for an array of symbols.'
37
+ ARRAY_MSG = 'Use `[]` for an array of symbols.'
38
38
 
39
39
  class << self
40
40
  attr_accessor :largest_brackets
@@ -13,7 +13,7 @@ module RuboCop
13
13
  # # good
14
14
  # :symbol
15
15
  class SymbolLiteral < Cop
16
- MSG = 'Do not use strings for word-like symbol literals.'.freeze
16
+ MSG = 'Do not use strings for word-like symbol literals.'
17
17
 
18
18
  def on_sym(node)
19
19
  return unless node.source =~ /\A:["'][A-Za-z_]\w*["']\z/
@@ -16,7 +16,7 @@ module RuboCop
16
16
  include IgnoredMethods
17
17
 
18
18
  MSG = 'Pass `&:%<method>s` as an argument to `%<block_method>s` ' \
19
- 'instead of a block.'.freeze
19
+ 'instead of a block.'
20
20
  SUPER_TYPES = %i[super zsuper].freeze
21
21
 
22
22
  def_node_matcher :proc_node?, '(send (const nil? :Proc) :new)'