diff --git a/changelog/fix_a_false_positive_for_style_access_modifier_declarations.md b/changelog/fix_a_false_positive_for_style_access_modifier_declarations.md new file mode 100644 index 00000000000..7996c77d955 --- /dev/null +++ b/changelog/fix_a_false_positive_for_style_access_modifier_declarations.md @@ -0,0 +1 @@ +* [#5953](https://github.com/rubocop/rubocop/issues/5953): Fix a false positive for `Style/AccessModifierDeclarations` when using `module_function` with symbol. ([@koic][]) diff --git a/lib/rubocop/cop/style/access_modifier_declarations.rb b/lib/rubocop/cop/style/access_modifier_declarations.rb index 58c4ece37b1..259c22ed3ab 100644 --- a/lib/rubocop/cop/style/access_modifier_declarations.rb +++ b/lib/rubocop/cop/style/access_modifier_declarations.rb @@ -79,7 +79,7 @@ class AccessModifierDeclarations < Base # @!method access_modifier_with_symbol?(node) def_node_matcher :access_modifier_with_symbol?, <<~PATTERN - (send nil? {:private :protected :public} (sym _)) + (send nil? {:private :protected :public :module_function} (sym _)) PATTERN def on_send(node) diff --git a/spec/rubocop/cop/style/access_modifier_declarations_spec.rb b/spec/rubocop/cop/style/access_modifier_declarations_spec.rb index e89a2f5dfe3..f379daede8d 100644 --- a/spec/rubocop/cop/style/access_modifier_declarations_spec.rb +++ b/spec/rubocop/cop/style/access_modifier_declarations_spec.rb @@ -46,7 +46,7 @@ class Foo } end - %w[private protected public].each do |access_modifier| + %w[private protected public module_function].each do |access_modifier| it "offends when #{access_modifier} is inlined with a method" do expect_offense(<<~RUBY, access_modifier: access_modifier) class Test @@ -108,7 +108,7 @@ class TestThree } end - %w[private protected public].each do |access_modifier| + %w[private protected public module_function].each do |access_modifier| it "offends when #{access_modifier} is not inlined" do expect_offense(<<~RUBY, access_modifier: access_modifier) class Test