class RuboCop::Cop::Style::AndOr

def correct_not(node, receiver, corrector)

however, 'not x' also parses as (send x :!)
recurse down a level and add parens to 'obj.method arg'
'x and !obj.method arg' can be autocorrected if we
! is a special case:
def correct_not(node, receiver, corrector)
  if node.prefix_bang?
    return unless receiver.send_type?
    correct_send(receiver, corrector)
  elsif node.prefix_not?
    correct_other(node, corrector)
  else
    raise 'unrecognized unary negation operator'
  end
end