module RuboCop::Cop::Metrics::Utils::RepeatedAttributeDiscount
def setter_to_getter(node)
@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