Skip to content

Commit

Permalink
[Fix #12832] Fix an error for Style/ArgumentsForwarding
Browse files Browse the repository at this point in the history
Fixes #12832.

This PR fixes an error for `Style/ArgumentsForwarding`
when using block arg in nested method definitions.
  • Loading branch information
koic authored and bbatsov committed Apr 11, 2024
1 parent 8e9c784 commit 2e46ac2
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 1 deletion.
1 change: 1 addition & 0 deletions changelog/fix_an_error_for_style_arguments_forwarding.md
@@ -0,0 +1 @@
* [#12832](https://github.com/rubocop/rubocop/issues/12832): Fix an error for `Style/ArgumentsForwarding` when using block arg in nested method definitions. ([@koic][])
3 changes: 2 additions & 1 deletion lib/rubocop/cop/style/arguments_forwarding.rb
Expand Up @@ -312,7 +312,8 @@ def register_forward_kwargs_offense(add_parens, def_arguments_or_send, kwrest_ar
end

def register_forward_block_arg_offense(add_parens, def_arguments_or_send, block_arg)
return if target_ruby_version <= 3.0 || block_arg.source == '&' || explicit_block_name?
return if target_ruby_version <= 3.0 ||
block_arg.nil? || block_arg.source == '&' || explicit_block_name?

add_offense(block_arg, message: BLOCK_MSG) do |corrector|
add_parens_if_missing(def_arguments_or_send, corrector) if add_parens
Expand Down
12 changes: 12 additions & 0 deletions spec/rubocop/cop/style/arguments_forwarding_spec.rb
Expand Up @@ -205,6 +205,18 @@ def foo(&)
RUBY
end

it 'does not register an offense when using block arg in nested method definitions', :ruby32 do
expect_no_offenses(<<~RUBY)
def foo(x)
class << x
def bar(y, &)
baz.qux(&)
end
end
end
RUBY
end

context 'when `RedundantBlockArgumentNames: [meaningless_block_name]`' do
let(:redundant_block_argument_names) { ['meaningless_block_name'] }

Expand Down

0 comments on commit 2e46ac2

Please sign in to comment.