Closed maisumakun closed 3 years ago
2点の課題がありそうな気がしました。
1点目の課題です。たしかにアクセス修飾子の重複ということで、たとえば Style/RedundantAccessModifier
cop という異なる新たな cop を用意して別の警告を用意するというのはひとつの案に思えます。
2点目は、この Layout/AccessModifierIndentation
cop 自体はあくまでアクセス修飾子のインデントを見ているようで、以下のコードでだと警告は出ませんでした。
class Test
private
def some_method
end
private def another_method
end
end
ただ、それが良いかどうかでいうと private def
の使用に関するテストケースがなかったことから、private def
に対する観点が入っていなかったという可能性があります。念のためそのあたり cop 導入の経緯を見て特に意思がなさそうであれば、Description に示されたとおり def
と private def
が揃っているインデントを正としLayout/AccessModifierIndentation
cop としては false positive の扱いで良い気がしました。
こちら少なくとも最新の RuboCop (1.13.0) で、Layout/AccessModifierIndentation
の警告は出なくなっており、auto-correct をすると最終的に Style/AccessModifierDeclarations
の警告が private def
に残るようになっています。「インデント位置がおかしい」という警告を出していたという問題は解決するためクローズします。フィードバックありがとうございました。
以下のようなコードを
rubocop -R
で回してみました。すると、
private def another_method
の行にLayout/AccessModifierIndentation
と警告が出ました。private
の二重指定になっているので、警告が出ること自体に問題があるわけでもないのですが、「インデント位置がおかしい」という問題ではないので、別な警告の形のほうが適切だと思います。