class Rufo::Formatter

def visit_mlhs_paren(node)

def visit_mlhs_paren(node)
  # [:mlhs_paren,
  #   [[:mlhs_paren, [:@ident, "x", [1, 12]]]]
  # ]
  _, args = node
  # For :mlsh_paren, sometimes a paren comes,
  # some times not, so act accordingly.
  has_paren = current_token_kind == :on_lparen
  if has_paren
    consume_token :on_lparen
    skip_space_or_newline
  end
  # For some reason there's nested :mlhs_paren for
  # a single parentheses. It seems when there's
  # a nested array we need parens, otherwise we
  # just output whatever's inside `args`.
  if args.is_a?(Array) && args[0].is_a?(Array)
    indent(@column) do
      visit_comma_separated_list args
      skip_space_or_newline
    end
  else
    visit args
  end
  if has_paren
    # Ripper has a bug where parsing `|(w, *x, y), z|`,
    # the "y" isn't returned. In this case we just consume
    # all tokens until we find a `)`.
    while current_token_kind != :on_rparen
      consume_token current_token_kind
    end
    consume_token :on_rparen
  end
end