module RuboCop::Cop::Metrics::Utils::RepeatedAttributeDiscount

def setter_to_getter(node)

or `nil` if it is not a setter.
@returns `[receiver, method | nil]` for the given setter `node`
def setter_to_getter(node)
  if (type = VAR_SETTER_TO_GETTER[node.type])
    # (lvasgn :my_var (int 42)) => [(lvar my_var), nil]
    [s(type, node.children.first), nil]
  elsif node.shorthand_asgn? # (or-asgn (send _receiver :foo) _value)
    # (or-asgn (send _receiver :foo) _value) => [_receiver, :foo]
    node.children.first.children
  elsif node.respond_to?(:setter_method?) && node.setter_method?
    # (send _receiver :foo= (int 42) ) => [_receiver, :foo]
    method_name = node.method_name[0...-1].to_sym
    [node.receiver, method_name]
  end
end