From 636264c530361b16b2239c6870268152fc58f6bd Mon Sep 17 00:00:00 2001 From: GitLab Housekeeping Bot Date: Mon, 28 Jul 2025 04:17:32 +0000 Subject: [PATCH] Fix 20 rubocop violations for InternalAffairs/LocationExpression Fixes the 20 violations for the rubocop rule `InternalAffairs/LocationExpression` that were previously excluded in `.rubocop_todo/internal_affairs/location_expression.yml`. The exclusions have now been removed. This change was generated by [gitlab-housekeeper](https://gitlab.com/gitlab-org/gitlab/-/tree/master/gems/gitlab-housekeeper) in [CI](https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/jobs/10826130671) using the `Gitlab::Housekeeper::Keeps::RubocopFixer` keep. To provide feedback on your experience with `gitlab-housekeeper` please create an issue with the label ~"GitLab Housekeeper" and consider pinging the author of this keep. Changelog: other --- .../internal_affairs/location_expression.yml | 20 ------------------- .../cop/avoid_route_redirect_leading_slash.rb | 4 ++-- .../avoid_silent_rescue_exceptions.rb | 2 +- rubocop/cop/experiments_test_coverage.rb | 2 +- .../documentation_links/hardcoded_url.rb | 2 +- .../cop/gitlab/documentation_links/link.rb | 6 +++--- rubocop/cop/gitlab/json.rb | 2 +- rubocop/cop/gitlab/mark_used_feature_flags.rb | 2 +- .../cop/gitlab/no_code_coverage_comment.rb | 2 +- rubocop/cop/graphql/descriptions.rb | 2 +- .../cop/inject_enterprise_edition_module.rb | 4 ++-- .../cop/migration/update_column_in_batches.rb | 2 +- rubocop/cop/performance/ar_count_each.rb | 2 +- .../ar_exists_and_present_blank.rb | 2 +- rubocop/cop/performance/readlines_each.rb | 2 +- rubocop/cop/rake/require.rb | 2 +- rubocop/cop/rspec/any_instance_of.rb | 4 ++-- rubocop/cop/rspec/be_success_matcher.rb | 2 +- rubocop/cop/rspec/duplicate_spec_location.rb | 2 +- rubocop/cop/rspec/env_assignment.rb | 2 +- rubocop/cop/rspec/env_mocking.rb | 2 +- 21 files changed, 25 insertions(+), 45 deletions(-) diff --git a/.rubocop_todo/internal_affairs/location_expression.yml b/.rubocop_todo/internal_affairs/location_expression.yml index b32267ffa11f3f..f0d281f97787f2 100644 --- a/.rubocop_todo/internal_affairs/location_expression.yml +++ b/.rubocop_todo/internal_affairs/location_expression.yml @@ -3,24 +3,4 @@ InternalAffairs/LocationExpression: Details: grace period Exclude: - - 'rubocop/cop/avoid_route_redirect_leading_slash.rb' - - 'rubocop/cop/background_migration/avoid_silent_rescue_exceptions.rb' - - 'rubocop/cop/experiments_test_coverage.rb' - - 'rubocop/cop/gitlab/documentation_links/hardcoded_url.rb' - - 'rubocop/cop/gitlab/documentation_links/link.rb' - - 'rubocop/cop/gitlab/json.rb' - - 'rubocop/cop/gitlab/mark_used_feature_flags.rb' - - 'rubocop/cop/gitlab/no_code_coverage_comment.rb' - - 'rubocop/cop/graphql/descriptions.rb' - - 'rubocop/cop/inject_enterprise_edition_module.rb' - - 'rubocop/cop/migration/update_column_in_batches.rb' - - 'rubocop/cop/performance/ar_count_each.rb' - - 'rubocop/cop/performance/ar_exists_and_present_blank.rb' - - 'rubocop/cop/performance/readlines_each.rb' - - 'rubocop/cop/rake/require.rb' - - 'rubocop/cop/rspec/any_instance_of.rb' - - 'rubocop/cop/rspec/be_success_matcher.rb' - - 'rubocop/cop/rspec/duplicate_spec_location.rb' - - 'rubocop/cop/rspec/env_assignment.rb' - - 'rubocop/cop/rspec/env_mocking.rb' - 'rubocop/cop/rspec/modify_sidekiq_middleware.rb' diff --git a/rubocop/cop/avoid_route_redirect_leading_slash.rb b/rubocop/cop/avoid_route_redirect_leading_slash.rb index 5fc4300331a982..7ae7e9d2d4b10c 100644 --- a/rubocop/cop/avoid_route_redirect_leading_slash.rb +++ b/rubocop/cop/avoid_route_redirect_leading_slash.rb @@ -28,7 +28,7 @@ def on_send(node) return unless leading_slash_in_redirect?(node) add_offense(node) do |corrector| - corrector.replace(node.loc.expression, remove_leading_slash(node)) + corrector.replace(node, remove_leading_slash(node)) end end @@ -37,7 +37,7 @@ def has_leading_slash?(str) end def in_routes?(node) - path = node.location.expression.source_buffer.name + path = node.source_range.source_buffer.name dirname = File.dirname(path) filename = File.basename(path) dirname.end_with?('config/routes') || filename.end_with?('routes.rb') diff --git a/rubocop/cop/background_migration/avoid_silent_rescue_exceptions.rb b/rubocop/cop/background_migration/avoid_silent_rescue_exceptions.rb index 7b47fc7d88e974..cdd042c6bafc06 100644 --- a/rubocop/cop/background_migration/avoid_silent_rescue_exceptions.rb +++ b/rubocop/cop/background_migration/avoid_silent_rescue_exceptions.rb @@ -72,7 +72,7 @@ def on_resbody(node) return unless batched_migration_job_class rescue_timeout_error(node) do |error| - range = error ? node.loc.keyword.join(error.loc.expression) : node.loc.keyword + range = error ? node.loc.keyword.join(error.source_range) : node.loc.keyword add_offense(range) end end diff --git a/rubocop/cop/experiments_test_coverage.rb b/rubocop/cop/experiments_test_coverage.rb index e6d7aecf05971a..8378b6badad61f 100644 --- a/rubocop/cop/experiments_test_coverage.rb +++ b/rubocop/cop/experiments_test_coverage.rb @@ -98,7 +98,7 @@ def send_node_value(node) end def filepath(node) - node.location.expression.source_buffer.name + node.source_range.source_buffer.name end def stub_experiments_matcher diff --git a/rubocop/cop/gitlab/documentation_links/hardcoded_url.rb b/rubocop/cop/gitlab/documentation_links/hardcoded_url.rb index bfcac1fa59a351..405c9860bb2f45 100644 --- a/rubocop/cop/gitlab/documentation_links/hardcoded_url.rb +++ b/rubocop/cop/gitlab/documentation_links/hardcoded_url.rb @@ -35,7 +35,7 @@ def on_str(node) def bad_range(node, match) url_begin_pos, url_end_pos = match.offset(0) - begin_pos = node.loc.expression.begin_pos + url_begin_pos + begin_pos = node.source_range.begin_pos + url_begin_pos range_between(begin_pos, begin_pos + (url_end_pos - url_begin_pos)) end diff --git a/rubocop/cop/gitlab/documentation_links/link.rb b/rubocop/cop/gitlab/documentation_links/link.rb index c9d10fb9ff6d54..adbb8131cbc493 100644 --- a/rubocop/cop/gitlab/documentation_links/link.rb +++ b/rubocop/cop/gitlab/documentation_links/link.rb @@ -120,7 +120,7 @@ def check_md_extension(node, path) def check_file_exists(node, docs_file_path) unless docs_file_exists?(docs_file_path) - add_offense(node.first_argument.loc.expression, + add_offense(node.first_argument, message: format(MSG_FILE_NOT_FOUND, file_path: docs_file_path)) return false end @@ -130,7 +130,7 @@ def check_file_exists(node, docs_file_path) def check_anchor_type(node, anchor) unless anchor.instance_of? String - loc = anchor_param(node)&.loc&.expression || node.first_argument.loc.expression + loc = anchor_param(node)&.source_range || node.first_argument.source_range add_offense(loc, message: MSG_ANCHOR_NOT_A_STRING) return false end @@ -141,7 +141,7 @@ def check_anchor_type(node, anchor) def check_anchor_exists(node, anchor, docs_file_path) return true if anchor_exists_in_markdown?(anchor, docs_file_path) - loc = anchor_param(node)&.loc&.expression || node.first_argument.loc.expression + loc = anchor_param(node)&.source_range || node.first_argument.source_range add_offense(loc, message: format(MSG_ANCHOR_NOT_FOUND, anchor: anchor, file_path: docs_file_path)) diff --git a/rubocop/cop/gitlab/json.rb b/rubocop/cop/gitlab/json.rb index f462e71ca7103f..95622e17481c8a 100644 --- a/rubocop/cop/gitlab/json.rb +++ b/rubocop/cop/gitlab/json.rb @@ -42,7 +42,7 @@ def match_node(node) end def cbased(node) - return unless node.location.expression.source_buffer.name.include?('/ee/') + return unless node.source_range.source_buffer.name.include?('/ee/') "::" end diff --git a/rubocop/cop/gitlab/mark_used_feature_flags.rb b/rubocop/cop/gitlab/mark_used_feature_flags.rb index 682d3266067e5d..a7a0ca4f642f83 100644 --- a/rubocop/cop/gitlab/mark_used_feature_flags.rb +++ b/rubocop/cop/gitlab/mark_used_feature_flags.rb @@ -91,7 +91,7 @@ def on_send(node) def puts_if_debug(node, text) return unless RuboCop::ConfigLoader.debug - warn "#{text} (call: `#{node.source}`, source: #{node.location.expression.source_buffer.name})" + warn "#{text} (call: `#{node.source}`, source: #{node.source_range.source_buffer.name})" end def save_used_feature_flag(feature_flag_name) diff --git a/rubocop/cop/gitlab/no_code_coverage_comment.rb b/rubocop/cop/gitlab/no_code_coverage_comment.rb index 3b989930026ac7..b3502e61350fa9 100644 --- a/rubocop/cop/gitlab/no_code_coverage_comment.rb +++ b/rubocop/cop/gitlab/no_code_coverage_comment.rb @@ -55,7 +55,7 @@ def range_of_offense(comment, name) end def comment_start(comment) - comment.loc.expression.begin_pos + comment.source_range.begin_pos end def token_indentation(comment, name) diff --git a/rubocop/cop/graphql/descriptions.rb b/rubocop/cop/graphql/descriptions.rb index 1e7a4a95b2432e..61d121e1321fa9 100644 --- a/rubocop/cop/graphql/descriptions.rb +++ b/rubocop/cop/graphql/descriptions.rb @@ -149,7 +149,7 @@ def before_end_quote(string) # Returns a `Parser::Source::Range` of the first `this` encountered def locate_this(string) target = 'this' - range = string.heredoc? ? string.location.heredoc_body : string.location.expression + range = string.heredoc? ? string.location.heredoc_body : string.source_range index = range.source.index(target) range.adjust(begin_pos: index, end_pos: (index + target.length) - range.length) end diff --git a/rubocop/cop/inject_enterprise_edition_module.rb b/rubocop/cop/inject_enterprise_edition_module.rb index 9813c5289ce23a..8d9c491b11f4ff 100644 --- a/rubocop/cop/inject_enterprise_edition_module.rb +++ b/rubocop/cop/inject_enterprise_edition_module.rb @@ -25,7 +25,7 @@ class InjectEnterpriseEditionModule < RuboCop::Cop::Base CHECK_LINE_METHODS_REGEXP = Regexp.union((CHECK_LINE_METHODS + DISALLOW_METHODS).map(&:to_s) + [COMMENT_OR_EMPTY_LINE]).freeze def ee_const?(node) - line = node.location.expression.source_line + line = node.source_range.source_line # We use `match?` here instead of RuboCop's AST matching, as this makes # it far easier to handle nested constants such as `EE::Foo::Bar::Baz`. @@ -45,7 +45,7 @@ def on_send(node) def verify_line_number(node) line = node.location.line - buffer = node.location.expression.source_buffer + buffer = node.source_range.source_buffer last_line = buffer.last_line lines = buffer.source.split("\n") # We allow multiple includes, extends and prepends as long as they're all at the end. diff --git a/rubocop/cop/migration/update_column_in_batches.rb b/rubocop/cop/migration/update_column_in_batches.rb index e97f51361a9e23..c6922b561a9d2a 100644 --- a/rubocop/cop/migration/update_column_in_batches.rb +++ b/rubocop/cop/migration/update_column_in_batches.rb @@ -31,7 +31,7 @@ def external_dependency_checksum private def spec_filename(node) - source_name = node.location.expression.source_buffer.name + source_name = node.source_range.source_buffer.name path = Pathname.new(source_name).relative_path_from(rails_root) dirname = File.dirname(path) .sub(%r{db/(migrate|post_migrate)}, 'spec/migrations') diff --git a/rubocop/cop/performance/ar_count_each.rb b/rubocop/cop/performance/ar_count_each.rb index f89d5953529ac8..1058ef47f8f3c4 100644 --- a/rubocop/cop/performance/ar_count_each.rb +++ b/rubocop/cop/performance/ar_count_each.rb @@ -20,7 +20,7 @@ def message(ivar) PATTERN def file_name(node) - node.location.expression.source_buffer.name + node.source_range.source_buffer.name end def in_haml_file?(node) diff --git a/rubocop/cop/performance/ar_exists_and_present_blank.rb b/rubocop/cop/performance/ar_exists_and_present_blank.rb index 0bd6c5d37e937c..63afcbe27cfab4 100644 --- a/rubocop/cop/performance/ar_exists_and_present_blank.rb +++ b/rubocop/cop/performance/ar_exists_and_present_blank.rb @@ -30,7 +30,7 @@ def message_blank(ivar) PATTERN def file_name(node) - node.location.expression.source_buffer.name + node.source_range.source_buffer.name end def in_haml_file?(node) diff --git a/rubocop/cop/performance/readlines_each.rb b/rubocop/cop/performance/readlines_each.rb index 90dfae9974141e..854245f7aa2760 100644 --- a/rubocop/cop/performance/readlines_each.rb +++ b/rubocop/cop/performance/readlines_each.rb @@ -24,7 +24,7 @@ def on_send(node) return unless full_file_read_via_class?(node) || full_file_read_via_instance?(node) add_offense(node.loc.selector, message: MESSAGE) do |corrector| - corrector.replace(node.loc.expression, node.source.gsub('readlines.each', 'each_line')) + corrector.replace(node, node.source.gsub('readlines.each', 'each_line')) end end end diff --git a/rubocop/cop/rake/require.rb b/rubocop/cop/rake/require.rb index dae2471103aacd..3940a0626e5680 100644 --- a/rubocop/cop/rake/require.rb +++ b/rubocop/cop/rake/require.rb @@ -98,7 +98,7 @@ def in_rake_file?(node) end def filepath(node) - node.location.expression.source_buffer.name + node.source_range.source_buffer.name end # Allow `require "foo/rake_task"` diff --git a/rubocop/cop/rspec/any_instance_of.rb b/rubocop/cop/rspec/any_instance_of.rb index d85d5172ef3d6c..a3f0355d6964b7 100644 --- a/rubocop/cop/rspec/any_instance_of.rb +++ b/rubocop/cop/rspec/any_instance_of.rb @@ -50,14 +50,14 @@ def on_send(node) if expect_any_instance_of?(node) add_offense(node, message: MESSAGE_EXPECT) do |corrector| corrector.replace( - node.loc.expression, + node, replacement_any_instance_of(node, 'expect') ) end elsif allow_any_instance_of?(node) add_offense(node, message: MESSAGE_ALLOW) do |corrector| corrector.replace( - node.loc.expression, + node, replacement_any_instance_of(node, 'allow') ) end diff --git a/rubocop/cop/rspec/be_success_matcher.rb b/rubocop/cop/rspec/be_success_matcher.rb index e39d04fd193626..da942b99201dd3 100644 --- a/rubocop/cop/rspec/be_success_matcher.rb +++ b/rubocop/cop/rspec/be_success_matcher.rb @@ -46,7 +46,7 @@ def on_send(node) return unless be_success_usage?(node) add_offense(node, message: MESSAGE) do |corrector| - corrector.insert_after(node.loc.expression, 'ful') + corrector.insert_after(node, 'ful') end end end diff --git a/rubocop/cop/rspec/duplicate_spec_location.rb b/rubocop/cop/rspec/duplicate_spec_location.rb index 789076796af8b1..c35f31a6365e85 100644 --- a/rubocop/cop/rspec/duplicate_spec_location.rb +++ b/rubocop/cop/rspec/duplicate_spec_location.rb @@ -58,7 +58,7 @@ def find_duplicate_path(path) end def file_path_for_node(node) - node.location.expression.source_buffer.name + node.source_range.source_buffer.name end def rails_root diff --git a/rubocop/cop/rspec/env_assignment.rb b/rubocop/cop/rspec/env_assignment.rb index c1faa7e5a86f7f..3186fe8195e5cb 100644 --- a/rubocop/cop/rspec/env_assignment.rb +++ b/rubocop/cop/rspec/env_assignment.rb @@ -33,7 +33,7 @@ def on_send(node) return unless env_assignment?(node) add_offense(node, message: MESSAGE) do |corrector| - corrector.replace(node.loc.expression, stub_env(env_key(node), env_value(node))) + corrector.replace(node, stub_env(env_key(node), env_value(node))) end end diff --git a/rubocop/cop/rspec/env_mocking.rb b/rubocop/cop/rspec/env_mocking.rb index 96bd535df08eb1..5750926bb9e481 100644 --- a/rubocop/cop/rspec/env_mocking.rb +++ b/rubocop/cop/rspec/env_mocking.rb @@ -45,7 +45,7 @@ class EnvMocking < RuboCop::Cop::Base def on_send(node) env_mocking?(node) do |key, value| add_offense(node, message: MESSAGE) do |corrector| - corrector.replace(node.loc.expression, stub_env(key.source, value.source)) + corrector.replace(node, stub_env(key.source, value.source)) end end end -- GitLab