class Steep::TypeInference::SendArgs::PositionalArgs

def consume0(n, node:, params:, ps:)

def consume0(n, node:, params:, ps:)
  case n
  when 0
    params
  else
    head = params&.head
    case head
    when nil
      UnexpectedArg.new(node: node)
    when Interface::Function::Params::PositionalParams::Required, Interface::Function::Params::PositionalParams::Optional
      ps << head
      consume0(n-1, node: node, params: params&.tail, ps: ps)
    when Interface::Function::Params::PositionalParams::Rest
      ps << head
      consume0(n-1, node: node, params: params, ps: ps)
    end
  end
end