diff --git a/.rubocop_todo/internal_affairs/location_expression.yml b/.rubocop_todo/internal_affairs/location_expression.yml index b32267ffa11f3ff7625c6f6a1ee60b3da92f964d..f0d281f97787f2d6d9c13ef8b6f6dd930772ce79 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 5fc4300331a98214245b858c7e475d974c796512..7ae7e9d2d4b10c4f5ec952c522fb11866eb738b7 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 7b47fc7d88e97446a3693a1ab531a0522cc277ba..cdd042c6bafc066e30ffacdaf0f06b91e8fb3c2c 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 e6d7aecf05971aee660082d5834286672509ef67..8378b6badad61f5b17803876c97bd8fe78cdaba4 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 bfcac1fa59a3515aee87df27372b2d4e64b6c1ec..405c9860bb2f458ebaf45c50a9729a8a36d28afc 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 c9d10fb9ff6d54051a4ff7578d446f234e41b548..adbb8131cbc493a3927a4088fb4657a81fdba9d2 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 f462e71ca7103f2818e4580b3dc5fd00bee778c3..95622e17481c8a3dd9a9334af9fb97a737c117ab 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 682d3266067e5d5da40f1643bbfc57e1a6427e24..a7a0ca4f642f83924d52891cd072d34d60fd161c 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 3b989930026ac7439fdd916c22c71e304b3d7f76..b3502e61350fa9ee616fe2ddf9f5ea4e89e108da 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 1e7a4a95b2432ecc26601dc159acda86ec5e48bb..61d121e1321fa91da4c19b41fe3a0d51fba46480 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 9813c5289ce23a9fd18ab481033cb7d84d07084b..8d9c491b11f4ff7046f8754f359fffd1d3a4c285 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 e97f51361a9e23fedcdb605813cf1dbe82273b8f..c6922b561a9d2ae56213ee258128d3666279a88d 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 f89d5953529ac8d592bcd5fb8e8226124369cb52..1058ef47f8f3c4a2f45773ba733d9f7ee8d411a8 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 0bd6c5d37e937c4d0da4339b528ec3d384ee6975..63afcbe27cfab462d4126071ecb0b70c36db61c0 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 90dfae9974141eb2de304c77dd167f8acf89b4e5..854245f7aa276041b2f3a67b7fd1eaa399234a1a 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 dae2471103aacdf75251e58b34f7e45da4bc1ad4..3940a0626e5680aae50dc345480208e52f52d559 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 d85d5172ef3d6cabf819da9db3f4a35279728f03..a3f0355d6964b7e17342e401efe7150b91a73798 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 e39d04fd19362608ddf86ed01a518aa1cfca72e9..da942b99201dd38274442c7a21f7accc927e36a0 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 789076796af8b1e34da6a9489fd497e4b69b803d..c35f31a6365e85ca67a24a9c7946c4dff6045e3b 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 c1faa7e5a86f7fa394bfd012beb7aa4156901c3f..3186fe8195e5cbe4bea95a4401e53be58f69ab7b 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 96bd535df08eb16b76a6f843ff7f4339b33f2083..5750926bb9e481027308a4d7e72e4a00abe56db0 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