From c5913b3c00294fbb758bc1589acc4af8a6a944dc Mon Sep 17 00:00:00 2001 From: Koichi ITO Date: Tue, 23 Mar 2021 22:31:18 +0900 Subject: [PATCH] [Fix #5953] Fix a false positive for `Style/AccessModifierDeclarations` Fixes #5953. This PR fixes a false positive for `Style/AccessModifierDeclarations` when using `module_function` with symbol. --- ...a_false_positive_for_style_access_modifier_declarations.md | 1 + lib/rubocop/cop/style/access_modifier_declarations.rb | 2 +- spec/rubocop/cop/style/access_modifier_declarations_spec.rb | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 changelog/fix_a_false_positive_for_style_access_modifier_declarations.md 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