class RDoc::Parser::PrismRuby::RDocVisitor

def visibility_method_arguments(call_node, singleton:)

def visibility_method_arguments(call_node, singleton:)
  arguments_node = call_node.arguments
  return unless arguments_node
  symbols = symbol_arguments(call_node)
  if symbols
    # module_function :foo, :bar
    return symbols.map(&:to_s)
  else
    return unless arguments_node.arguments.size == 1
    arg = arguments_node.arguments.first
    return unless arg.is_a?(Prism::DefNode)
    if singleton
      # `private_class_method def foo; end` `private_class_method def not_self.foo; end` should be ignored
      return unless arg.receiver.is_a?(Prism::SelfNode)
    else
      # `module_function def something.foo` should be ignored
      return if arg.receiver
    end
    # `module_function def foo; end` or `private_class_method def self.foo; end`
    [arg.name.to_s]
  end
end