class Rufo::Formatter
def visit_mlhs_or_mlhs_paren(args)
def visit_mlhs_or_mlhs_paren(args) # 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