rubocop 1.12.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.
- checksums.yaml +4 -4
- data/README.md +3 -2
- data/config/default.yml +10 -0
- data/exe/rubocop +1 -3
- data/lib/rubocop.rb +1 -1
- data/lib/rubocop/cached_data.rb +1 -3
- data/lib/rubocop/cli.rb +4 -6
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +9 -19
- data/lib/rubocop/cli/command/init_dotfile.rb +1 -3
- data/lib/rubocop/cli/command/show_cops.rb +1 -4
- data/lib/rubocop/comment_config.rb +2 -7
- data/lib/rubocop/config.rb +11 -26
- data/lib/rubocop/config_loader.rb +5 -11
- data/lib/rubocop/config_loader_resolver.rb +22 -14
- data/lib/rubocop/config_obsoletion/cop_rule.rb +1 -2
- data/lib/rubocop/config_store.rb +1 -2
- data/lib/rubocop/config_validator.rb +5 -10
- data/lib/rubocop/cop/autocorrect_logic.rb +3 -8
- data/lib/rubocop/cop/badge.rb +1 -2
- data/lib/rubocop/cop/base.rb +8 -6
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -2
- data/lib/rubocop/cop/bundler/gem_comment.rb +42 -8
- data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -4
- data/lib/rubocop/cop/commissioner.rb +2 -8
- data/lib/rubocop/cop/cop.rb +4 -18
- data/lib/rubocop/cop/corrector.rb +1 -4
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +3 -6
- data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +2 -4
- data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +1 -2
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +3 -6
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +1 -3
- data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +1 -3
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +2 -8
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +1 -2
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -4
- data/lib/rubocop/cop/generator.rb +1 -4
- data/lib/rubocop/cop/generator/configuration_injector.rb +1 -2
- data/lib/rubocop/cop/generator/require_file_injector.rb +2 -5
- data/lib/rubocop/cop/internal_affairs/example_description.rb +6 -4
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +2 -5
- data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +1 -3
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -3
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -2
- data/lib/rubocop/cop/internal_affairs/style_detected_api_use.rb +1 -2
- data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +1 -3
- data/lib/rubocop/cop/layout/access_modifier_indentation.rb +1 -2
- data/lib/rubocop/cop/layout/argument_alignment.rb +2 -4
- data/lib/rubocop/cop/layout/assignment_indentation.rb +2 -4
- data/lib/rubocop/cop/layout/begin_end_alignment.rb +1 -4
- data/lib/rubocop/cop/layout/block_alignment.rb +7 -19
- data/lib/rubocop/cop/layout/case_indentation.rb +1 -3
- data/lib/rubocop/cop/layout/class_structure.rb +4 -10
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +4 -15
- data/lib/rubocop/cop/layout/comment_indentation.rb +1 -5
- data/lib/rubocop/cop/layout/def_end_alignment.rb +2 -6
- data/lib/rubocop/cop/layout/dot_position.rb +1 -3
- data/lib/rubocop/cop/layout/else_alignment.rb +1 -3
- data/lib/rubocop/cop/layout/empty_comment.rb +5 -12
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +22 -8
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +2 -6
- data/lib/rubocop/cop/layout/empty_lines.rb +1 -3
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +8 -18
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +2 -8
- data/lib/rubocop/cop/layout/end_alignment.rb +1 -2
- data/lib/rubocop/cop/layout/end_of_line.rb +1 -1
- data/lib/rubocop/cop/layout/extra_spacing.rb +3 -7
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +1 -2
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +2 -5
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/hash_alignment.rb +3 -6
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -9
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +2 -6
- data/lib/rubocop/cop/layout/indentation_style.rb +1 -3
- data/lib/rubocop/cop/layout/indentation_width.rb +1 -2
- data/lib/rubocop/cop/layout/initial_indentation.rb +1 -4
- data/lib/rubocop/cop/layout/line_length.rb +4 -15
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -2
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +7 -15
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -2
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -2
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +16 -10
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +4 -0
- data/lib/rubocop/cop/layout/redundant_line_break.rb +125 -0
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +3 -6
- data/lib/rubocop/cop/layout/space_after_colon.rb +1 -3
- data/lib/rubocop/cop/layout/space_after_method_name.rb +2 -4
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +6 -14
- data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +1 -2
- data/lib/rubocop/cop/layout/space_around_keyword.rb +3 -6
- data/lib/rubocop/cop/layout/space_around_operators.rb +4 -9
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +1 -2
- data/lib/rubocop/cop/layout/space_before_brackets.rb +1 -3
- data/lib/rubocop/cop/layout/space_before_comment.rb +1 -3
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +5 -11
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +2 -4
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +5 -10
- data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +2 -7
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +5 -10
- data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +1 -2
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +1 -2
- data/lib/rubocop/cop/legacy/corrections_proxy.rb +2 -8
- data/lib/rubocop/cop/legacy/corrector.rb +1 -3
- data/lib/rubocop/cop/lint/ambiguous_assignment.rb +1 -6
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +14 -7
- data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -2
- data/lib/rubocop/cop/lint/constant_resolution.rb +1 -2
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +2 -4
- data/lib/rubocop/cop/lint/deprecated_constants.rb +3 -3
- data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +2 -5
- data/lib/rubocop/cop/lint/duplicate_branch.rb +1 -2
- data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -3
- data/lib/rubocop/cop/lint/duplicate_methods.rb +3 -7
- data/lib/rubocop/cop/lint/else_layout.rb +1 -3
- data/lib/rubocop/cop/lint/empty_ensure.rb +1 -3
- data/lib/rubocop/cop/lint/empty_file.rb +1 -3
- data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -3
- data/lib/rubocop/cop/lint/ensure_return.rb +1 -3
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +3 -7
- data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -2
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +3 -6
- data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +1 -2
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -2
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +3 -7
- data/lib/rubocop/cop/lint/inherit_exception.rb +1 -2
- data/lib/rubocop/cop/lint/interpolation_check.rb +3 -11
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +3 -6
- data/lib/rubocop/cop/lint/loop.rb +1 -2
- data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +3 -7
- data/lib/rubocop/cop/lint/missing_super.rb +1 -2
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -2
- data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -2
- data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -3
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +1 -3
- data/lib/rubocop/cop/lint/number_conversion.rb +3 -4
- data/lib/rubocop/cop/lint/ordered_magic_comments.rb +1 -2
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +1 -3
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -3
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -3
- data/lib/rubocop/cop/lint/raise_exception.rb +1 -2
- data/lib/rubocop/cop/lint/rand_one.rb +1 -2
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +8 -20
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +1 -3
- data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +3 -7
- data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -2
- data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -4
- data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -4
- data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -3
- data/lib/rubocop/cop/lint/require_parentheses.rb +2 -4
- data/lib/rubocop/cop/lint/rescue_exception.rb +1 -2
- data/lib/rubocop/cop/lint/rescue_type.rb +2 -7
- data/lib/rubocop/cop/lint/return_in_void_context.rb +1 -2
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -2
- data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +4 -10
- data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -2
- data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +2 -7
- data/lib/rubocop/cop/lint/shadowed_argument.rb +4 -11
- data/lib/rubocop/cop/lint/shadowed_exception.rb +7 -8
- data/lib/rubocop/cop/lint/struct_new_override.rb +1 -2
- data/lib/rubocop/cop/lint/symbol_conversion.rb +2 -4
- data/lib/rubocop/cop/lint/syntax.rb +1 -3
- data/lib/rubocop/cop/lint/to_json.rb +1 -2
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -3
- data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -3
- data/lib/rubocop/cop/lint/unreachable_code.rb +2 -5
- data/lib/rubocop/cop/lint/unreachable_loop.rb +2 -5
- data/lib/rubocop/cop/lint/unused_block_argument.rb +4 -8
- data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -2
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +2 -4
- data/lib/rubocop/cop/lint/useless_assignment.rb +4 -9
- data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -3
- data/lib/rubocop/cop/lint/void.rb +4 -11
- data/lib/rubocop/cop/message_annotator.rb +1 -3
- data/lib/rubocop/cop/metrics/block_nesting.rb +2 -7
- data/lib/rubocop/cop/metrics/class_length.rb +1 -3
- data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -2
- data/lib/rubocop/cop/metrics/module_length.rb +2 -6
- data/lib/rubocop/cop/metrics/parameter_lists.rb +2 -5
- data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -2
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +4 -7
- data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +2 -7
- data/lib/rubocop/cop/migration/department_name.rb +3 -7
- data/lib/rubocop/cop/mixin/alignment.rb +2 -4
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +1 -1
- data/lib/rubocop/cop/mixin/code_length.rb +1 -3
- data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +2 -2
- data/lib/rubocop/cop/mixin/configurable_formatting.rb +3 -8
- data/lib/rubocop/cop/mixin/def_node.rb +2 -5
- data/lib/rubocop/cop/mixin/documentation_comment.rb +2 -5
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +3 -7
- data/lib/rubocop/cop/mixin/empty_parameter.rb +1 -3
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +1 -3
- data/lib/rubocop/cop/mixin/enforce_superclass.rb +2 -6
- data/lib/rubocop/cop/mixin/first_element_line_break.rb +1 -3
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +3 -9
- data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +3 -6
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +7 -22
- data/lib/rubocop/cop/mixin/interpolation.rb +1 -3
- data/lib/rubocop/cop/mixin/line_length_help.rb +2 -4
- data/lib/rubocop/cop/mixin/match_range.rb +2 -5
- data/lib/rubocop/cop/mixin/method_complexity.rb +1 -3
- data/lib/rubocop/cop/mixin/method_preference.rb +1 -2
- data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +1 -2
- data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +1 -3
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +7 -37
- data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +1 -2
- data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -2
- data/lib/rubocop/cop/mixin/ordered_gem_node.rb +1 -4
- data/lib/rubocop/cop/mixin/percent_array.rb +1 -3
- data/lib/rubocop/cop/mixin/percent_literal.rb +0 -6
- data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +5 -11
- data/lib/rubocop/cop/mixin/preferred_delimiters.rb +3 -6
- data/lib/rubocop/cop/mixin/range_help.rb +10 -13
- data/lib/rubocop/cop/mixin/rescue_node.rb +2 -6
- data/lib/rubocop/cop/mixin/safe_assignment.rb +1 -2
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +2 -4
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -2
- data/lib/rubocop/cop/mixin/statement_modifier.rb +1 -3
- data/lib/rubocop/cop/mixin/trailing_body.rb +1 -2
- data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -2
- data/lib/rubocop/cop/mixin/uncommunicative_name.rb +3 -7
- data/lib/rubocop/cop/mixin/unused_argument.rb +1 -3
- data/lib/rubocop/cop/naming/ascii_identifiers.rb +2 -4
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -2
- data/lib/rubocop/cop/naming/file_name.rb +7 -16
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +2 -3
- data/lib/rubocop/cop/naming/method_name.rb +1 -2
- data/lib/rubocop/cop/naming/predicate_name.rb +1 -2
- data/lib/rubocop/cop/offense.rb +3 -8
- data/lib/rubocop/cop/registry.rb +3 -11
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +2 -4
- data/lib/rubocop/cop/style/accessor_grouping.rb +1 -3
- data/lib/rubocop/cop/style/alias.rb +5 -12
- data/lib/rubocop/cop/style/and_or.rb +3 -1
- data/lib/rubocop/cop/style/arguments_forwarding.rb +1 -3
- data/lib/rubocop/cop/style/ascii_comments.rb +1 -2
- data/lib/rubocop/cop/style/attr.rb +1 -3
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +2 -5
- data/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +1 -3
- data/lib/rubocop/cop/style/case_like_if.rb +1 -2
- data/lib/rubocop/cop/style/character_literal.rb +2 -4
- data/lib/rubocop/cop/style/class_and_module_children.rb +3 -6
- data/lib/rubocop/cop/style/class_methods.rb +1 -3
- data/lib/rubocop/cop/style/collection_compact.rb +1 -3
- data/lib/rubocop/cop/style/colon_method_call.rb +1 -3
- data/lib/rubocop/cop/style/combinable_loops.rb +3 -2
- data/lib/rubocop/cop/style/command_literal.rb +3 -8
- data/lib/rubocop/cop/style/comment_annotation.rb +3 -6
- data/lib/rubocop/cop/style/commented_keyword.rb +7 -13
- data/lib/rubocop/cop/style/conditional_assignment.rb +10 -24
- data/lib/rubocop/cop/style/copyright.rb +3 -6
- data/lib/rubocop/cop/style/date_time.rb +2 -5
- data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -2
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -2
- data/lib/rubocop/cop/style/empty_case_condition.rb +2 -7
- data/lib/rubocop/cop/style/empty_else.rb +3 -9
- data/lib/rubocop/cop/style/empty_literal.rb +4 -8
- data/lib/rubocop/cop/style/empty_method.rb +3 -7
- data/lib/rubocop/cop/style/end_block.rb +1 -2
- data/lib/rubocop/cop/style/endless_method.rb +1 -3
- data/lib/rubocop/cop/style/eval_with_location.rb +2 -4
- data/lib/rubocop/cop/style/expand_path_arguments.rb +1 -3
- data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -4
- data/lib/rubocop/cop/style/format_string_token.rb +1 -4
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +3 -11
- data/lib/rubocop/cop/style/guard_clause.rb +3 -7
- data/lib/rubocop/cop/style/hash_conversion.rb +31 -3
- data/lib/rubocop/cop/style/hash_each_methods.rb +1 -2
- data/lib/rubocop/cop/style/hash_like_case.rb +1 -2
- data/lib/rubocop/cop/style/hash_syntax.rb +4 -9
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +1 -3
- data/lib/rubocop/cop/style/if_unless_modifier.rb +41 -13
- data/lib/rubocop/cop/style/infinite_loop.rb +2 -5
- data/lib/rubocop/cop/style/inverse_methods.rb +3 -7
- data/lib/rubocop/cop/style/ip_addresses.rb +1 -2
- data/lib/rubocop/cop/style/lambda.rb +2 -4
- data/lib/rubocop/cop/style/lambda_call.rb +1 -2
- data/lib/rubocop/cop/style/line_end_concatenation.rb +5 -12
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +7 -3
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +10 -18
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -2
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -4
- data/lib/rubocop/cop/style/method_def_parentheses.rb +4 -8
- data/lib/rubocop/cop/style/min_max.rb +1 -2
- data/lib/rubocop/cop/style/missing_else.rb +2 -4
- data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -2
- data/lib/rubocop/cop/style/mixin_grouping.rb +4 -10
- data/lib/rubocop/cop/style/mixin_usage.rb +1 -2
- data/lib/rubocop/cop/style/module_function.rb +3 -6
- data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -2
- data/lib/rubocop/cop/style/multiline_method_signature.rb +11 -6
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -2
- data/lib/rubocop/cop/style/multiple_comparison.rb +2 -4
- data/lib/rubocop/cop/style/mutable_constant.rb +4 -10
- data/lib/rubocop/cop/style/negated_if.rb +1 -2
- data/lib/rubocop/cop/style/negated_unless.rb +1 -2
- data/lib/rubocop/cop/style/nested_modifier.rb +3 -7
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +2 -3
- data/lib/rubocop/cop/style/next.rb +4 -9
- data/lib/rubocop/cop/style/non_nil_check.rb +2 -5
- data/lib/rubocop/cop/style/numeric_literals.rb +3 -11
- data/lib/rubocop/cop/style/numeric_predicate.rb +2 -7
- data/lib/rubocop/cop/style/one_line_conditional.rb +1 -2
- data/lib/rubocop/cop/style/option_hash.rb +1 -3
- data/lib/rubocop/cop/style/optional_arguments.rb +2 -5
- data/lib/rubocop/cop/style/or_assignment.rb +2 -6
- data/lib/rubocop/cop/style/parallel_assignment.rb +6 -9
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -3
- data/lib/rubocop/cop/style/percent_q_literals.rb +1 -2
- data/lib/rubocop/cop/style/perl_backrefs.rb +2 -9
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -4
- data/lib/rubocop/cop/style/proc.rb +1 -2
- data/lib/rubocop/cop/style/raise_args.rb +4 -8
- data/lib/rubocop/cop/style/random_with_offset.rb +3 -8
- data/lib/rubocop/cop/style/redundant_argument.rb +2 -11
- data/lib/rubocop/cop/style/redundant_assignment.rb +1 -3
- data/lib/rubocop/cop/style/redundant_begin.rb +15 -4
- data/lib/rubocop/cop/style/redundant_capital_w.rb +1 -2
- data/lib/rubocop/cop/style/redundant_condition.rb +2 -5
- data/lib/rubocop/cop/style/redundant_conditional.rb +3 -6
- data/lib/rubocop/cop/style/redundant_exception.rb +3 -6
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -1
- data/lib/rubocop/cop/style/redundant_freeze.rb +1 -2
- data/lib/rubocop/cop/style/redundant_interpolation.rb +1 -2
- data/lib/rubocop/cop/style/redundant_parentheses.rb +8 -20
- data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -2
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -4
- data/lib/rubocop/cop/style/redundant_return.rb +3 -5
- data/lib/rubocop/cop/style/redundant_self.rb +2 -6
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +2 -2
- data/lib/rubocop/cop/style/redundant_sort.rb +2 -5
- data/lib/rubocop/cop/style/regexp_literal.rb +4 -8
- data/lib/rubocop/cop/style/rescue_modifier.rb +4 -0
- data/lib/rubocop/cop/style/rescue_standard_error.rb +3 -7
- data/lib/rubocop/cop/style/return_nil.rb +1 -2
- data/lib/rubocop/cop/style/safe_navigation.rb +10 -21
- data/lib/rubocop/cop/style/send.rb +1 -2
- data/lib/rubocop/cop/style/signal_exception.rb +3 -7
- data/lib/rubocop/cop/style/single_argument_dig.rb +1 -2
- data/lib/rubocop/cop/style/single_line_block_params.rb +2 -5
- data/lib/rubocop/cop/style/single_line_methods.rb +16 -4
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +1 -2
- data/lib/rubocop/cop/style/special_global_vars.rb +6 -18
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +1 -2
- data/lib/rubocop/cop/style/stderr_puts.rb +2 -6
- data/lib/rubocop/cop/style/string_chars.rb +2 -1
- data/lib/rubocop/cop/style/string_concatenation.rb +8 -10
- data/lib/rubocop/cop/style/string_literals.rb +2 -5
- data/lib/rubocop/cop/style/struct_inheritance.rb +9 -1
- data/lib/rubocop/cop/style/symbol_literal.rb +1 -3
- data/lib/rubocop/cop/style/symbol_proc.rb +4 -9
- data/lib/rubocop/cop/style/ternary_parentheses.rb +3 -6
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -2
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +2 -6
- data/lib/rubocop/cop/style/trailing_method_end_statement.rb +2 -5
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +4 -10
- data/lib/rubocop/cop/style/trivial_accessors.rb +2 -4
- data/lib/rubocop/cop/style/unless_else.rb +1 -2
- data/lib/rubocop/cop/style/unless_logical_operators.rb +2 -2
- data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/when_then.rb +1 -3
- data/lib/rubocop/cop/style/while_until_modifier.rb +1 -2
- data/lib/rubocop/cop/style/word_array.rb +1 -2
- data/lib/rubocop/cop/style/yoda_condition.rb +3 -11
- data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -2
- data/lib/rubocop/cop/team.rb +2 -5
- data/lib/rubocop/cop/util.rb +8 -11
- data/lib/rubocop/cop/utils/format_string.rb +1 -3
- data/lib/rubocop/cop/variable_force.rb +6 -15
- data/lib/rubocop/cop/variable_force/assignment.rb +1 -2
- data/lib/rubocop/cop/variable_force/branch.rb +1 -2
- data/lib/rubocop/cop/variable_force/reference.rb +1 -3
- data/lib/rubocop/cop/variable_force/scope.rb +4 -8
- data/lib/rubocop/cop/variable_force/variable.rb +2 -4
- data/lib/rubocop/cops_documentation_generator.rb +7 -21
- data/lib/rubocop/directive_comment.rb +5 -0
- data/lib/rubocop/file_finder.rb +1 -3
- data/lib/rubocop/formatter/clang_style_formatter.rb +4 -2
- data/lib/rubocop/formatter/disabled_config_formatter.rb +3 -8
- data/lib/rubocop/formatter/git_hub_actions_formatter.rb +1 -5
- data/lib/rubocop/formatter/html_formatter.rb +4 -10
- data/lib/rubocop/formatter/json_formatter.rb +1 -5
- data/lib/rubocop/formatter/junit_formatter.rb +3 -9
- data/lib/rubocop/formatter/progress_formatter.rb +1 -3
- data/lib/rubocop/formatter/tap_formatter.rb +4 -2
- data/lib/rubocop/options.rb +27 -41
- data/lib/rubocop/path_util.rb +1 -3
- data/lib/rubocop/rake_task.rb +3 -0
- data/lib/rubocop/remote_config.rb +4 -7
- data/lib/rubocop/result_cache.rb +5 -12
- data/lib/rubocop/rspec/cop_helper.rb +1 -1
- data/lib/rubocop/rspec/expect_offense.rb +4 -9
- data/lib/rubocop/rspec/shared_contexts.rb +4 -15
- data/lib/rubocop/runner.rb +7 -14
- data/lib/rubocop/target_finder.rb +11 -16
- data/lib/rubocop/target_ruby.rb +4 -8
- data/lib/rubocop/version.rb +1 -1
- metadata +5 -5
- data/lib/rubocop/core_ext/hash.rb +0 -20
@@ -39,9 +39,7 @@ module RuboCop
|
|
39
39
|
# if found within a percent literal expression, will cause a
|
40
40
|
# NestedPercentLiteral violation to be emitted.
|
41
41
|
PERCENT_LITERAL_TYPES = PreferredDelimiters::PERCENT_LITERAL_TYPES
|
42
|
-
REGEXES = PERCENT_LITERAL_TYPES.map
|
43
|
-
/\A#{percent_literal}\W/
|
44
|
-
end.freeze
|
42
|
+
REGEXES = PERCENT_LITERAL_TYPES.map { |percent_literal| /\A#{percent_literal}\W/ }.freeze
|
45
43
|
|
46
44
|
def on_array(node)
|
47
45
|
process(node, *PERCENT_LITERAL_TYPES)
|
@@ -66,9 +66,7 @@ module RuboCop
|
|
66
66
|
loop_variable(node.arguments) do |var_name|
|
67
67
|
return unless var_is_required?(node.body, var_name)
|
68
68
|
|
69
|
-
add_offense(node.send_node)
|
70
|
-
correct_block(corrector, node.send_node)
|
71
|
-
end
|
69
|
+
add_offense(node.send_node) { |corrector| correct_block(corrector, node.send_node) }
|
72
70
|
end
|
73
71
|
end
|
74
72
|
|
@@ -58,8 +58,8 @@ module RuboCop
|
|
58
58
|
}.freeze
|
59
59
|
MSG = 'Replace unsafe number conversion with number '\
|
60
60
|
'class parsing, instead of using '\
|
61
|
-
'
|
62
|
-
'
|
61
|
+
'`%<current>s`, use stricter '\
|
62
|
+
'`%<corrected_method>s`.'
|
63
63
|
METHODS = CONVERSION_METHOD_CLASS_MAPPING.keys.map(&:inspect).join(' ')
|
64
64
|
|
65
65
|
# @!method to_method(node)
|
@@ -113,8 +113,7 @@ module RuboCop
|
|
113
113
|
end
|
114
114
|
|
115
115
|
def correct_method(node, receiver)
|
116
|
-
format(CONVERSION_METHOD_CLASS_MAPPING[node.method_name],
|
117
|
-
number_object: receiver.source)
|
116
|
+
format(CONVERSION_METHOD_CLASS_MAPPING[node.method_name], number_object: receiver.source)
|
118
117
|
end
|
119
118
|
|
120
119
|
def correct_sym_method(to_method)
|
@@ -31,8 +31,7 @@ module RuboCop
|
|
31
31
|
include FrozenStringLiteral
|
32
32
|
extend AutoCorrector
|
33
33
|
|
34
|
-
MSG = 'The encoding magic comment should precede all other '
|
35
|
-
'magic comments.'
|
34
|
+
MSG = 'The encoding magic comment should precede all other magic comments.'
|
36
35
|
|
37
36
|
def on_new_investigation
|
38
37
|
return if processed_source.buffer.source.empty?
|
@@ -48,9 +48,7 @@ module RuboCop
|
|
48
48
|
def on_when(node)
|
49
49
|
regexp_conditions = node.conditions.select(&:regexp_type?)
|
50
50
|
|
51
|
-
@valid_ref = regexp_conditions.map
|
52
|
-
check_regexp(condition)
|
53
|
-
end.compact.max
|
51
|
+
@valid_ref = regexp_conditions.map { |condition| check_regexp(condition) }.compact.max
|
54
52
|
end
|
55
53
|
|
56
54
|
def on_nth_ref(node)
|
@@ -29,9 +29,7 @@ module RuboCop
|
|
29
29
|
|
30
30
|
range = space_range(node.first_argument.source_range, space_length)
|
31
31
|
|
32
|
-
add_offense(range)
|
33
|
-
corrector.remove(range)
|
34
|
-
end
|
32
|
+
add_offense(range) { |corrector| corrector.remove(range) }
|
35
33
|
end
|
36
34
|
alias on_csend on_send
|
37
35
|
|
@@ -34,9 +34,7 @@ module RuboCop
|
|
34
34
|
def on_percent_literal(node)
|
35
35
|
return unless contains_colons_or_commas?(node)
|
36
36
|
|
37
|
-
add_offense(node)
|
38
|
-
autocorrect(corrector, node)
|
39
|
-
end
|
37
|
+
add_offense(node) { |corrector| autocorrect(corrector, node) }
|
40
38
|
end
|
41
39
|
|
42
40
|
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)
|
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)
|
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)'
|
@@ -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)
|
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
|
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)
|
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
|
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?
|