class RuboCop::Cop::Lint::UselessSetterCall

end
x.attr = 5
x = Something.new
def something
@example
expression of a function definition.
This cop checks for setter call to local variable as the final

def on_method_def(_node, _method_name, _args, body)

def on_method_def(_node, _method_name, _args, body)
  return unless body
  if body.type == :begin
    expression = body.children
  else
    expression = body
  end
  last_expr = expression.is_a?(Array) ? expression.last : expression
  return unless setter_call_to_local_variable?(last_expr)
  tracker = MethodVariableTracker.new(body)
  receiver, = *last_expr
  variable_name, = *receiver
  return unless tracker.contain_local_object?(variable_name)
  add_offense(receiver,
              :name,
              format(MSG, receiver.loc.name.source))
end

def setter_call_to_local_variable?(node)

def setter_call_to_local_variable?(node)
  return unless node && node.type == :send
  receiver, method, _args = *node
  return unless receiver && receiver.type == :lvar
  method =~ /(?:\w|\[\])=$/
end