class RuboCop::Cop::Style::MissingRespondToMissing


end
# …
def method_missing(name, *args)
end
# …
def respond_to_missing?(name, include_private)
#good
end
# …
def method_missing(name, *args)
#bad
@example
defining ‘respond_to_missing?`.
Checks for the presence of `method_missing` without also

def implements_respond_to_missing?(node)

def implements_respond_to_missing?(node)
  return false unless (grand_parent = node.parent.parent)
  grand_parent.each_descendant(node.type) do |descendant|
    return true if descendant.method?(:respond_to_missing?)
    child = descendant.children.first
    return true if child.respond_to?(:method?) && child.method?(:respond_to_missing?)
  end
  false
end

def on_def(node)

def on_def(node)
  return unless node.method?(:method_missing)
  return if implements_respond_to_missing?(node)
  add_offense(node)
end