rails/rails で実行したら offense の出るリグレッションのパッチの PR を開いたくらい。
偽陽性の起きるケース例として、以下のようにブロックのあとにメソッド呼び出しをしているのがある。
obj = Class.new do private def private_property "That would be great." end end.new
Cop 実装の解決としては、再帰で親ノードを遡って send
ノードでなくなった時点で打ち切るのがポイントだった。
def leftmost_modifier_of(node) - node.each_ancestor(:send).to_a.last + return node unless node.parent && node.parent.send_type? + + leftmost_modifier_of(node.parent) end