From aca42a24783e3a7d17eafb43a031e397bfb70323 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 2 Jul 2024 15:52:35 -0400 Subject: [ruby/prism] Expose common flags in inspect output https://github.com/ruby/prism/commit/d0143865c2 --- prism/templates/lib/prism/inspect_visitor.rb.erb | 4 +- prism/templates/template.rb | 4 + test/prism/snapshots/alias.txt | 63 +- test/prism/snapshots/arithmetic.txt | 22 +- test/prism/snapshots/arrays.txt | 251 ++++--- test/prism/snapshots/begin_ensure.txt | 59 +- test/prism/snapshots/begin_rescue.txt | 159 ++++- test/prism/snapshots/blocks.txt | 117 +++- test/prism/snapshots/boolean_operators.txt | 5 + test/prism/snapshots/booleans.txt | 4 + test/prism/snapshots/break.txt | 118 +++- test/prism/snapshots/case.txt | 113 ++- test/prism/snapshots/classes.txt | 71 +- test/prism/snapshots/command_method_call.txt | 128 ++-- test/prism/snapshots/comments.txt | 20 +- test/prism/snapshots/constants.txt | 273 +++++--- test/prism/snapshots/dash_heredocs.txt | 57 +- test/prism/snapshots/defined.txt | 19 +- test/prism/snapshots/dos_endings.txt | 24 +- test/prism/snapshots/dstring.txt | 26 +- test/prism/snapshots/dsym_str.txt | 4 +- test/prism/snapshots/embdoc_no_newline_at_end.txt | 2 + test/prism/snapshots/emoji_method_calls.txt | 6 +- test/prism/snapshots/endless_methods.txt | 20 +- .../snapshots/endless_range_in_conditional.txt | 19 +- test/prism/snapshots/for.txt | 67 +- test/prism/snapshots/global_variables.txt | 72 +- test/prism/snapshots/hashes.txt | 68 +- test/prism/snapshots/heredoc.txt | 4 +- .../snapshots/heredoc_with_carriage_returns.txt | 4 +- test/prism/snapshots/heredoc_with_comment.txt | 4 +- .../heredoc_with_escaped_newline_at_start.txt | 10 +- .../snapshots/heredoc_with_trailing_newline.txt | 4 +- .../snapshots/heredocs_leading_whitespace.txt | 22 +- test/prism/snapshots/heredocs_nested.txt | 30 +- .../snapshots/heredocs_with_ignored_newlines.txt | 24 +- ...eredocs_with_ignored_newlines_and_non_empty.txt | 4 +- test/prism/snapshots/if.txt | 114 ++- test/prism/snapshots/indented_file_end.txt | 3 + test/prism/snapshots/integer_operations.txt | 196 +++--- test/prism/snapshots/keyword_method_names.txt | 26 +- test/prism/snapshots/keywords.txt | 16 +- test/prism/snapshots/lambda.txt | 23 +- test/prism/snapshots/method_calls.txt | 428 +++++++---- test/prism/snapshots/methods.txt | 289 ++++++-- test/prism/snapshots/modules.txt | 36 +- test/prism/snapshots/multi_write.txt | 34 +- test/prism/snapshots/newline_terminated.txt | 36 +- test/prism/snapshots/next.txt | 99 ++- test/prism/snapshots/nils.txt | 13 +- test/prism/snapshots/non_alphanumeric_methods.txt | 44 +- test/prism/snapshots/not.txt | 23 +- test/prism/snapshots/numbers.txt | 78 ++- test/prism/snapshots/patterns.txt | 779 ++++++++++++++++++--- test/prism/snapshots/procs.txt | 60 +- .../prism/snapshots/range_begin_open_exclusive.txt | 6 +- .../prism/snapshots/range_begin_open_inclusive.txt | 6 +- test/prism/snapshots/range_end_open_exclusive.txt | 6 +- test/prism/snapshots/range_end_open_inclusive.txt | 6 +- test/prism/snapshots/ranges.txt | 175 ++--- test/prism/snapshots/regex.txt | 97 ++- test/prism/snapshots/regex_char_width.txt | 11 +- test/prism/snapshots/repeat_parameters.txt | 44 +- test/prism/snapshots/rescue.txt | 80 ++- test/prism/snapshots/return.txt | 70 +- test/prism/snapshots/seattlerb/BEGIN.txt | 6 +- .../snapshots/seattlerb/TestRubyParserShared.txt | 89 ++- test/prism/snapshots/seattlerb/__ENCODING__.txt | 3 + .../snapshots/seattlerb/alias_gvar_backref.txt | 5 + test/prism/snapshots/seattlerb/alias_resword.txt | 7 +- test/prism/snapshots/seattlerb/and_multi.txt | 7 + .../prism/snapshots/seattlerb/aref_args_assocs.txt | 9 +- .../snapshots/seattlerb/aref_args_lit_assocs.txt | 11 +- test/prism/snapshots/seattlerb/args_kw_block.txt | 6 +- .../snapshots/seattlerb/array_line_breaks.txt | 6 +- .../seattlerb/array_lits_trailing_calls.txt | 10 +- test/prism/snapshots/seattlerb/assoc__bare.txt | 7 +- test/prism/snapshots/seattlerb/assoc_label.txt | 9 +- .../snapshots/seattlerb/attr_asgn_colon_id.txt | 7 +- .../snapshots/seattlerb/attrasgn_array_arg.txt | 12 +- .../snapshots/seattlerb/attrasgn_array_lhs.txt | 14 +- .../seattlerb/attrasgn_primary_dot_constant.txt | 6 +- .../seattlerb/backticks_interpolation_line.txt | 7 +- test/prism/snapshots/seattlerb/bang_eq.txt | 8 +- test/prism/snapshots/seattlerb/bdot2.txt | 10 +- test/prism/snapshots/seattlerb/bdot3.txt | 10 +- .../snapshots/seattlerb/begin_ensure_no_bodies.txt | 4 + .../seattlerb/begin_rescue_else_ensure_bodies.txt | 18 +- .../begin_rescue_else_ensure_no_bodies.txt | 6 + .../seattlerb/begin_rescue_ensure_no_bodies.txt | 5 + test/prism/snapshots/seattlerb/block_arg__bare.txt | 4 + .../snapshots/seattlerb/block_arg_kwsplat.txt | 7 +- .../seattlerb/block_arg_opt_arg_block.txt | 9 +- .../snapshots/seattlerb/block_arg_opt_splat.txt | 9 +- .../block_arg_opt_splat_arg_block_omfg.txt | 9 +- .../snapshots/seattlerb/block_arg_optional.txt | 9 +- test/prism/snapshots/seattlerb/block_arg_scope.txt | 7 +- .../prism/snapshots/seattlerb/block_arg_scope2.txt | 7 +- .../snapshots/seattlerb/block_arg_splat_arg.txt | 7 +- .../snapshots/seattlerb/block_args_kwargs.txt | 9 +- .../snapshots/seattlerb/block_args_no_kwargs.txt | 8 +- test/prism/snapshots/seattlerb/block_args_opt1.txt | 14 +- test/prism/snapshots/seattlerb/block_args_opt2.txt | 11 +- .../snapshots/seattlerb/block_args_opt2_2.txt | 17 +- test/prism/snapshots/seattlerb/block_args_opt3.txt | 18 +- .../seattlerb/block_call_defn_call_block_call.txt | 12 +- .../seattlerb/block_call_dot_op2_brace_block.txt | 14 +- .../block_call_dot_op2_cmd_args_do_block.txt | 14 +- .../seattlerb/block_call_operation_colon.txt | 5 +- .../seattlerb/block_call_operation_dot.txt | 5 +- .../seattlerb/block_call_paren_call_block_call.txt | 11 +- .../seattlerb/block_command_operation_colon.txt | 9 +- .../seattlerb/block_command_operation_dot.txt | 9 +- .../seattlerb/block_decomp_anon_splat_arg.txt | 9 +- .../snapshots/seattlerb/block_decomp_arg_splat.txt | 9 +- .../seattlerb/block_decomp_arg_splat_arg.txt | 9 +- .../snapshots/seattlerb/block_decomp_splat.txt | 9 +- test/prism/snapshots/seattlerb/block_kw.txt | 9 +- .../snapshots/seattlerb/block_kw__required.txt | 7 +- .../prism/snapshots/seattlerb/block_kwarg_lvar.txt | 11 +- .../seattlerb/block_kwarg_lvar_multiple.txt | 13 +- test/prism/snapshots/seattlerb/block_opt_arg.txt | 9 +- test/prism/snapshots/seattlerb/block_opt_splat.txt | 9 +- .../seattlerb/block_opt_splat_arg_block_omfg.txt | 9 +- test/prism/snapshots/seattlerb/block_optarg.txt | 9 +- .../snapshots/seattlerb/block_paren_splat.txt | 9 +- .../prism/snapshots/seattlerb/block_reg_optarg.txt | 9 +- test/prism/snapshots/seattlerb/block_return.txt | 7 +- test/prism/snapshots/seattlerb/block_scope.txt | 6 +- test/prism/snapshots/seattlerb/block_splat_reg.txt | 7 +- test/prism/snapshots/seattlerb/bug169.txt | 6 +- test/prism/snapshots/seattlerb/bug179.txt | 6 +- test/prism/snapshots/seattlerb/bug190.txt | 4 +- test/prism/snapshots/seattlerb/bug191.txt | 18 +- test/prism/snapshots/seattlerb/bug202.txt | 8 +- test/prism/snapshots/seattlerb/bug236.txt | 13 +- test/prism/snapshots/seattlerb/bug290.txt | 6 +- test/prism/snapshots/seattlerb/bug_187.txt | 9 +- test/prism/snapshots/seattlerb/bug_215.txt | 5 +- test/prism/snapshots/seattlerb/bug_249.txt | 15 +- test/prism/snapshots/seattlerb/bug_and.txt | 9 +- test/prism/snapshots/seattlerb/bug_args__19.txt | 11 +- test/prism/snapshots/seattlerb/bug_args_masgn.txt | 8 +- test/prism/snapshots/seattlerb/bug_args_masgn2.txt | 9 +- .../seattlerb/bug_args_masgn_outer_parens__19.txt | 9 +- .../seattlerb/bug_call_arglist_parens.txt | 30 +- .../snapshots/seattlerb/bug_case_when_regexp.txt | 8 +- test/prism/snapshots/seattlerb/bug_comma.txt | 3 + test/prism/snapshots/seattlerb/bug_cond_pct.txt | 6 +- test/prism/snapshots/seattlerb/bug_hash_args.txt | 10 +- .../seattlerb/bug_hash_args_trailing_comma.txt | 10 +- .../snapshots/seattlerb/bug_hash_interp_array.txt | 8 +- test/prism/snapshots/seattlerb/bug_masgn_right.txt | 8 +- test/prism/snapshots/seattlerb/bug_not_parens.txt | 4 +- .../snapshots/seattlerb/bug_op_asgn_rescue.txt | 5 + test/prism/snapshots/seattlerb/call_and.txt | 8 +- test/prism/snapshots/seattlerb/call_arg_assoc.txt | 11 +- .../snapshots/seattlerb/call_arg_assoc_kwsplat.txt | 14 +- .../prism/snapshots/seattlerb/call_arg_kwsplat.txt | 7 +- .../snapshots/seattlerb/call_args_assoc_quoted.txt | 24 +- .../seattlerb/call_args_assoc_trailing_comma.txt | 11 +- .../snapshots/seattlerb/call_args_command.txt | 6 +- test/prism/snapshots/seattlerb/call_array_arg.txt | 12 +- .../snapshots/seattlerb/call_array_block_call.txt | 6 +- .../seattlerb/call_array_lambda_block_call.txt | 7 +- .../seattlerb/call_array_lit_inline_hash.txt | 11 +- test/prism/snapshots/seattlerb/call_assoc.txt | 9 +- test/prism/snapshots/seattlerb/call_assoc_new.txt | 9 +- .../seattlerb/call_assoc_new_if_multiline.txt | 17 +- .../seattlerb/call_assoc_trailing_comma.txt | 9 +- .../snapshots/seattlerb/call_bang_command_call.txt | 6 +- .../snapshots/seattlerb/call_bang_squiggle.txt | 8 +- .../seattlerb/call_begin_call_block_call.txt | 9 +- .../snapshots/seattlerb/call_block_arg_named.txt | 5 +- test/prism/snapshots/seattlerb/call_carat.txt | 8 +- test/prism/snapshots/seattlerb/call_colon2.txt | 5 +- .../snapshots/seattlerb/call_colon_parens.txt | 6 +- test/prism/snapshots/seattlerb/call_div.txt | 8 +- test/prism/snapshots/seattlerb/call_dot_parens.txt | 6 +- test/prism/snapshots/seattlerb/call_env.txt | 4 +- test/prism/snapshots/seattlerb/call_eq3.txt | 8 +- test/prism/snapshots/seattlerb/call_gt.txt | 8 +- test/prism/snapshots/seattlerb/call_kwsplat.txt | 7 +- .../snapshots/seattlerb/call_leading_dots.txt | 4 +- .../seattlerb/call_leading_dots_comment.txt | 4 +- test/prism/snapshots/seattlerb/call_lt.txt | 8 +- test/prism/snapshots/seattlerb/call_lte.txt | 8 +- test/prism/snapshots/seattlerb/call_not.txt | 6 +- test/prism/snapshots/seattlerb/call_pipe.txt | 8 +- test/prism/snapshots/seattlerb/call_rshift.txt | 8 +- .../snapshots/seattlerb/call_self_brackets.txt | 7 +- test/prism/snapshots/seattlerb/call_spaceship.txt | 8 +- .../seattlerb/call_stabby_do_end_with_block.txt | 12 +- .../seattlerb/call_stabby_with_braces_block.txt | 12 +- test/prism/snapshots/seattlerb/call_star.txt | 8 +- test/prism/snapshots/seattlerb/call_star2.txt | 8 +- .../snapshots/seattlerb/call_trailing_comma.txt | 6 +- .../snapshots/seattlerb/call_trailing_dots.txt | 4 +- test/prism/snapshots/seattlerb/call_unary_bang.txt | 6 +- test/prism/snapshots/seattlerb/case_in.txt | 243 +++++-- test/prism/snapshots/seattlerb/case_in_31.txt | 14 +- test/prism/snapshots/seattlerb/case_in_37.txt | 16 +- test/prism/snapshots/seattlerb/case_in_42.txt | 13 +- test/prism/snapshots/seattlerb/case_in_42_2.txt | 12 +- test/prism/snapshots/seattlerb/case_in_47.txt | 15 +- test/prism/snapshots/seattlerb/case_in_67.txt | 12 +- test/prism/snapshots/seattlerb/case_in_86.txt | 15 +- test/prism/snapshots/seattlerb/case_in_86_2.txt | 15 +- .../seattlerb/case_in_array_pat_const.txt | 12 +- .../seattlerb/case_in_array_pat_const2.txt | 13 +- .../seattlerb/case_in_array_pat_paren_assign.txt | 14 +- test/prism/snapshots/seattlerb/case_in_const.txt | 9 +- test/prism/snapshots/seattlerb/case_in_else.txt | 13 +- test/prism/snapshots/seattlerb/case_in_find.txt | 13 +- .../snapshots/seattlerb/case_in_find_array.txt | 12 +- .../prism/snapshots/seattlerb/case_in_hash_pat.txt | 16 +- .../seattlerb/case_in_hash_pat_assign.txt | 24 +- .../seattlerb/case_in_hash_pat_paren_assign.txt | 16 +- .../seattlerb/case_in_hash_pat_paren_true.txt | 14 +- .../snapshots/seattlerb/case_in_hash_pat_rest.txt | 16 +- .../seattlerb/case_in_hash_pat_rest_solo.txt | 12 +- .../seattlerb/case_in_if_unless_post_mod.txt | 21 +- .../prism/snapshots/seattlerb/case_in_multiple.txt | 17 +- test/prism/snapshots/seattlerb/case_in_or.txt | 12 +- test/prism/snapshots/seattlerb/class_comments.txt | 6 + .../prism/snapshots/seattlerb/cond_unary_minus.txt | 5 +- .../snapshots/seattlerb/const_2_op_asgn_or2.txt | 7 +- .../snapshots/seattlerb/const_3_op_asgn_or.txt | 6 +- .../snapshots/seattlerb/const_op_asgn_and1.txt | 6 +- .../snapshots/seattlerb/const_op_asgn_and2.txt | 6 +- .../prism/snapshots/seattlerb/const_op_asgn_or.txt | 7 +- .../snapshots/seattlerb/defined_eh_parens.txt | 5 +- .../snapshots/seattlerb/defn_arg_asplat_arg.txt | 4 + .../snapshots/seattlerb/defn_arg_forward_args.txt | 10 +- .../snapshots/seattlerb/defn_args_forward_args.txt | 12 +- test/prism/snapshots/seattlerb/defn_comments.txt | 3 + .../snapshots/seattlerb/defn_endless_command.txt | 8 +- .../seattlerb/defn_endless_command_rescue.txt | 9 +- .../snapshots/seattlerb/defn_forward_args.txt | 9 +- .../seattlerb/defn_forward_args__no_parens.txt | 9 +- test/prism/snapshots/seattlerb/defn_kwarg_env.txt | 9 +- .../prism/snapshots/seattlerb/defn_kwarg_kwarg.txt | 8 +- .../snapshots/seattlerb/defn_kwarg_kwsplat.txt | 6 +- .../seattlerb/defn_kwarg_kwsplat_anon.txt | 6 +- test/prism/snapshots/seattlerb/defn_kwarg_lvar.txt | 8 +- .../snapshots/seattlerb/defn_kwarg_no_parens.txt | 6 +- test/prism/snapshots/seattlerb/defn_kwarg_val.txt | 6 +- test/prism/snapshots/seattlerb/defn_no_kwargs.txt | 5 + test/prism/snapshots/seattlerb/defn_oneliner.txt | 8 +- .../snapshots/seattlerb/defn_oneliner_eq2.txt | 10 +- .../snapshots/seattlerb/defn_oneliner_noargs.txt | 6 +- .../seattlerb/defn_oneliner_noargs_parentheses.txt | 6 +- .../snapshots/seattlerb/defn_oneliner_rescue.txt | 24 +- .../snapshots/seattlerb/defn_opt_last_arg.txt | 5 + test/prism/snapshots/seattlerb/defn_opt_reg.txt | 5 + .../snapshots/seattlerb/defn_opt_splat_arg.txt | 6 +- test/prism/snapshots/seattlerb/defn_powarg.txt | 4 + .../prism/snapshots/seattlerb/defn_reg_opt_reg.txt | 6 +- test/prism/snapshots/seattlerb/defn_splat_arg.txt | 4 + test/prism/snapshots/seattlerb/defn_unary_not.txt | 5 + test/prism/snapshots/seattlerb/defns_reserved.txt | 4 + .../seattlerb/defs_as_arg_with_do_block_inside.txt | 10 +- test/prism/snapshots/seattlerb/defs_comments.txt | 4 + .../snapshots/seattlerb/defs_endless_command.txt | 8 +- .../seattlerb/defs_endless_command_rescue.txt | 9 +- test/prism/snapshots/seattlerb/defs_kwarg.txt | 7 +- test/prism/snapshots/seattlerb/defs_oneliner.txt | 9 +- .../snapshots/seattlerb/defs_oneliner_eq2.txt | 11 +- .../snapshots/seattlerb/defs_oneliner_rescue.txt | 27 +- test/prism/snapshots/seattlerb/difficult0_.txt | 10 +- .../seattlerb/difficult1_line_numbers.txt | 53 +- .../seattlerb/difficult1_line_numbers2.txt | 18 +- test/prism/snapshots/seattlerb/difficult2_.txt | 19 +- test/prism/snapshots/seattlerb/difficult3_.txt | 9 +- test/prism/snapshots/seattlerb/difficult3_2.txt | 7 +- test/prism/snapshots/seattlerb/difficult3_3.txt | 7 +- test/prism/snapshots/seattlerb/difficult3_4.txt | 9 + test/prism/snapshots/seattlerb/difficult3_5.txt | 10 +- test/prism/snapshots/seattlerb/difficult3__10.txt | 9 +- test/prism/snapshots/seattlerb/difficult3__11.txt | 9 +- test/prism/snapshots/seattlerb/difficult3__12.txt | 9 +- test/prism/snapshots/seattlerb/difficult3__6.txt | 9 +- test/prism/snapshots/seattlerb/difficult3__7.txt | 9 +- test/prism/snapshots/seattlerb/difficult3__8.txt | 9 +- test/prism/snapshots/seattlerb/difficult3__9.txt | 9 +- .../seattlerb/difficult4__leading_dots.txt | 4 +- .../seattlerb/difficult4__leading_dots2.txt | 8 +- test/prism/snapshots/seattlerb/difficult6_.txt | 11 +- test/prism/snapshots/seattlerb/difficult6__7.txt | 12 +- test/prism/snapshots/seattlerb/difficult6__8.txt | 12 +- test/prism/snapshots/seattlerb/difficult7_.txt | 20 +- test/prism/snapshots/seattlerb/do_bug.txt | 11 +- test/prism/snapshots/seattlerb/do_lambda.txt | 4 + test/prism/snapshots/seattlerb/dot2_nil__26.txt | 4 +- test/prism/snapshots/seattlerb/dot3_nil__26.txt | 4 +- test/prism/snapshots/seattlerb/dstr_evstr.txt | 10 +- .../snapshots/seattlerb/dstr_evstr_empty_end.txt | 5 + test/prism/snapshots/seattlerb/dstr_lex_state.txt | 8 +- test/prism/snapshots/seattlerb/dstr_str.txt | 10 +- test/prism/snapshots/seattlerb/dsym_esc_to_sym.txt | 4 +- test/prism/snapshots/seattlerb/dsym_to_sym.txt | 12 +- .../snapshots/seattlerb/eq_begin_line_numbers.txt | 6 +- ...eq_begin_why_wont_people_use_their_spacebar.txt | 8 +- test/prism/snapshots/seattlerb/evstr_evstr.txt | 8 +- test/prism/snapshots/seattlerb/evstr_str.txt | 8 +- test/prism/snapshots/seattlerb/expr_not_bang.txt | 4 +- test/prism/snapshots/seattlerb/f_kw.txt | 6 +- test/prism/snapshots/seattlerb/f_kw__required.txt | 4 + test/prism/snapshots/seattlerb/flip2_env_lvar.txt | 3 + .../snapshots/seattlerb/float_with_if_modifier.txt | 6 + .../seattlerb/heredoc__backslash_dos_format.txt | 3 + .../snapshots/seattlerb/heredoc_backslash_nl.txt | 6 +- .../snapshots/seattlerb/heredoc_bad_hex_escape.txt | 3 + .../snapshots/seattlerb/heredoc_bad_oct_escape.txt | 3 + .../snapshots/seattlerb/heredoc_comma_arg.txt | 6 +- test/prism/snapshots/seattlerb/heredoc_lineno.txt | 6 +- test/prism/snapshots/seattlerb/heredoc_nested.txt | 16 +- .../prism/snapshots/seattlerb/heredoc_squiggly.txt | 11 +- ...edoc_squiggly_blank_line_plus_interpolation.txt | 9 +- .../seattlerb/heredoc_squiggly_blank_lines.txt | 11 +- .../snapshots/seattlerb/heredoc_squiggly_empty.txt | 4 +- .../seattlerb/heredoc_squiggly_interp.txt | 15 +- .../seattlerb/heredoc_squiggly_no_indent.txt | 4 +- .../snapshots/seattlerb/heredoc_squiggly_tabs.txt | 9 +- .../seattlerb/heredoc_squiggly_tabs_extra.txt | 9 +- .../heredoc_squiggly_visually_blank_lines.txt | 11 +- .../heredoc_trailing_slash_continued_call.txt | 4 +- test/prism/snapshots/seattlerb/heredoc_unicode.txt | 4 +- .../heredoc_with_carriage_return_escapes.txt | 4 +- ...eredoc_with_carriage_return_escapes_windows.txt | 4 +- .../heredoc_with_extra_carriage_horrible_mix.txt | 4 +- .../heredoc_with_extra_carriage_returns.txt | 4 +- ...heredoc_with_extra_carriage_returns_windows.txt | 4 +- ...h_interpolation_and_carriage_return_escapes.txt | 10 +- ...olation_and_carriage_return_escapes_windows.txt | 10 +- .../heredoc_with_not_global_interpolation.txt | 4 +- .../heredoc_with_only_carriage_returns.txt | 4 +- .../heredoc_with_only_carriage_returns_windows.txt | 4 +- test/prism/snapshots/seattlerb/if_elsif.txt | 8 +- test/prism/snapshots/seattlerb/if_symbol.txt | 5 +- test/prism/snapshots/seattlerb/in_expr_no_case.txt | 4 + test/prism/snapshots/seattlerb/index_0.txt | 4 +- test/prism/snapshots/seattlerb/index_0_opasgn.txt | 4 +- .../seattlerb/integer_with_if_modifier.txt | 7 +- .../interpolated_symbol_array_line_breaks.txt | 10 +- .../interpolated_word_array_line_breaks.txt | 6 +- test/prism/snapshots/seattlerb/iter_args_1.txt | 7 +- test/prism/snapshots/seattlerb/iter_args_10_1.txt | 9 +- test/prism/snapshots/seattlerb/iter_args_10_2.txt | 9 +- test/prism/snapshots/seattlerb/iter_args_11_1.txt | 9 +- test/prism/snapshots/seattlerb/iter_args_11_2.txt | 9 +- test/prism/snapshots/seattlerb/iter_args_2__19.txt | 8 +- test/prism/snapshots/seattlerb/iter_args_3.txt | 8 +- test/prism/snapshots/seattlerb/iter_args_4.txt | 7 +- test/prism/snapshots/seattlerb/iter_args_5.txt | 7 +- test/prism/snapshots/seattlerb/iter_args_6.txt | 9 +- test/prism/snapshots/seattlerb/iter_args_7_1.txt | 9 +- test/prism/snapshots/seattlerb/iter_args_7_2.txt | 9 +- test/prism/snapshots/seattlerb/iter_args_8_1.txt | 9 +- test/prism/snapshots/seattlerb/iter_args_8_2.txt | 9 +- test/prism/snapshots/seattlerb/iter_args_9_1.txt | 9 +- test/prism/snapshots/seattlerb/iter_args_9_2.txt | 9 +- test/prism/snapshots/seattlerb/iter_kwarg.txt | 9 +- .../snapshots/seattlerb/iter_kwarg_kwsplat.txt | 9 +- test/prism/snapshots/seattlerb/label_vs_string.txt | 4 +- .../snapshots/seattlerb/lambda_do_vs_brace.txt | 16 +- .../snapshots/seattlerb/lasgn_arg_rescue_arg.txt | 8 +- .../seattlerb/lasgn_call_bracket_rescue_arg.txt | 8 +- .../seattlerb/lasgn_call_nobracket_rescue_arg.txt | 8 +- test/prism/snapshots/seattlerb/lasgn_command.txt | 5 +- test/prism/snapshots/seattlerb/lasgn_env.txt | 5 +- test/prism/snapshots/seattlerb/lasgn_ivar_env.txt | 5 +- .../seattlerb/lasgn_lasgn_command_call.txt | 6 +- .../snapshots/seattlerb/lasgn_middle_splat.txt | 4 + .../snapshots/seattlerb/magic_encoding_comment.txt | 11 +- .../snapshots/seattlerb/masgn_anon_splat_arg.txt | 5 + .../snapshots/seattlerb/masgn_arg_colon_arg.txt | 4 + test/prism/snapshots/seattlerb/masgn_arg_ident.txt | 4 + .../snapshots/seattlerb/masgn_arg_splat_arg.txt | 7 + test/prism/snapshots/seattlerb/masgn_colon2.txt | 11 +- test/prism/snapshots/seattlerb/masgn_colon3.txt | 11 +- .../snapshots/seattlerb/masgn_command_call.txt | 7 +- .../snapshots/seattlerb/masgn_double_paren.txt | 6 + test/prism/snapshots/seattlerb/masgn_lhs_splat.txt | 13 +- test/prism/snapshots/seattlerb/masgn_paren.txt | 5 + test/prism/snapshots/seattlerb/masgn_splat_arg.txt | 6 + .../snapshots/seattlerb/masgn_splat_arg_arg.txt | 7 + test/prism/snapshots/seattlerb/masgn_star.txt | 6 +- .../snapshots/seattlerb/masgn_var_star_var.txt | 6 + .../snapshots/seattlerb/messy_op_asgn_lineno.txt | 9 +- .../seattlerb/method_call_assoc_trailing_comma.txt | 9 +- .../seattlerb/method_call_trailing_comma.txt | 6 +- .../snapshots/seattlerb/mlhs_back_anonsplat.txt | 7 + test/prism/snapshots/seattlerb/mlhs_back_splat.txt | 8 + .../snapshots/seattlerb/mlhs_front_anonsplat.txt | 7 + .../prism/snapshots/seattlerb/mlhs_front_splat.txt | 8 + test/prism/snapshots/seattlerb/mlhs_keyword.txt | 6 +- .../snapshots/seattlerb/mlhs_mid_anonsplat.txt | 10 + test/prism/snapshots/seattlerb/mlhs_mid_splat.txt | 11 + test/prism/snapshots/seattlerb/mlhs_rescue.txt | 8 +- test/prism/snapshots/seattlerb/module_comments.txt | 6 + .../seattlerb/multiline_hash_declaration.txt | 20 +- .../non_interpolated_symbol_array_line_breaks.txt | 10 +- .../non_interpolated_word_array_line_breaks.txt | 6 +- .../snapshots/seattlerb/op_asgn_command_call.txt | 5 +- .../seattlerb/op_asgn_dot_ident_command_call.txt | 7 +- .../seattlerb/op_asgn_index_command_call.txt | 10 +- .../op_asgn_primary_colon_const_command_call.txt | 5 + .../op_asgn_primary_colon_identifier1.txt | 7 +- ..._asgn_primary_colon_identifier_command_call.txt | 5 +- .../op_asgn_val_dot_ident_command_call.txt | 6 +- .../snapshots/seattlerb/parse_def_special_name.txt | 3 + .../snapshots/seattlerb/parse_if_not_canonical.txt | 10 +- .../seattlerb/parse_if_not_noncanonical.txt | 10 +- .../prism/snapshots/seattlerb/parse_line_block.txt | 8 +- .../seattlerb/parse_line_block_inline_comment.txt | 8 +- ..._line_block_inline_comment_leading_newlines.txt | 8 +- .../parse_line_block_inline_multiline_comment.txt | 8 +- ...rse_line_call_ivar_arg_no_parens_line_break.txt | 5 +- .../parse_line_call_ivar_line_break_paren.txt | 5 +- .../seattlerb/parse_line_call_no_args.txt | 12 +- .../seattlerb/parse_line_defn_complex.txt | 14 +- .../seattlerb/parse_line_defn_no_parens.txt | 4 + .../seattlerb/parse_line_defn_no_parens_args.txt | 4 + test/prism/snapshots/seattlerb/parse_line_dot2.txt | 12 +- .../snapshots/seattlerb/parse_line_dot2_open.txt | 10 +- test/prism/snapshots/seattlerb/parse_line_dot3.txt | 12 +- .../snapshots/seattlerb/parse_line_dot3_open.txt | 10 +- .../seattlerb/parse_line_dstr_escaped_newline.txt | 8 +- .../seattlerb/parse_line_dstr_soft_newline.txt | 8 +- .../seattlerb/parse_line_evstr_after_break.txt | 8 +- .../snapshots/seattlerb/parse_line_hash_lit.txt | 8 +- .../snapshots/seattlerb/parse_line_heredoc.txt | 6 +- .../seattlerb/parse_line_heredoc_evstr.txt | 10 +- .../seattlerb/parse_line_heredoc_hardnewline.txt | 6 +- .../seattlerb/parse_line_heredoc_regexp_chars.txt | 6 +- .../seattlerb/parse_line_iter_call_no_parens.txt | 12 +- .../seattlerb/parse_line_iter_call_parens.txt | 12 +- .../seattlerb/parse_line_multiline_str.txt | 6 +- .../parse_line_multiline_str_literal_n.txt | 6 +- .../snapshots/seattlerb/parse_line_newlines.txt | 3 + .../snapshots/seattlerb/parse_line_op_asgn.txt | 5 +- .../snapshots/seattlerb/parse_line_postexe.txt | 6 +- .../snapshots/seattlerb/parse_line_preexe.txt | 6 +- .../snapshots/seattlerb/parse_line_rescue.txt | 14 +- .../snapshots/seattlerb/parse_line_return.txt | 11 +- .../parse_line_str_with_newline_escape.txt | 5 +- .../snapshots/seattlerb/parse_line_to_ary.txt | 7 +- .../seattlerb/parse_line_trailing_newlines.txt | 6 +- .../seattlerb/parse_opt_call_args_assocs_comma.txt | 11 +- .../seattlerb/parse_opt_call_args_lit_comma.txt | 8 +- .../snapshots/seattlerb/parse_pattern_019.txt | 14 +- .../snapshots/seattlerb/parse_pattern_044.txt | 8 + .../snapshots/seattlerb/parse_pattern_051.txt | 20 +- .../snapshots/seattlerb/parse_pattern_058.txt | 23 +- .../snapshots/seattlerb/parse_pattern_058_2.txt | 21 +- .../snapshots/seattlerb/parse_pattern_069.txt | 16 +- .../snapshots/seattlerb/parse_pattern_076.txt | 19 +- .../seattlerb/parse_until_not_canonical.txt | 7 +- .../seattlerb/parse_until_not_noncanonical.txt | 7 +- .../seattlerb/parse_while_not_canonical.txt | 7 +- .../seattlerb/parse_while_not_noncanonical.txt | 7 +- test/prism/snapshots/seattlerb/pctW_lineno.txt | 4 +- .../snapshots/seattlerb/pct_Q_backslash_nl.txt | 4 +- test/prism/snapshots/seattlerb/pct_nl.txt | 3 + .../seattlerb/pct_w_heredoc_interp_nested.txt | 10 +- test/prism/snapshots/seattlerb/pipe_semicolon.txt | 6 +- test/prism/snapshots/seattlerb/pipe_space.txt | 6 +- test/prism/snapshots/seattlerb/qWords_space.txt | 4 +- test/prism/snapshots/seattlerb/qsymbols.txt | 10 +- test/prism/snapshots/seattlerb/qsymbols_empty.txt | 4 +- .../snapshots/seattlerb/qsymbols_empty_space.txt | 4 +- test/prism/snapshots/seattlerb/qsymbols_interp.txt | 17 +- .../snapshots/seattlerb/quoted_symbol_hash_arg.txt | 8 +- .../snapshots/seattlerb/quoted_symbol_keys.txt | 8 +- test/prism/snapshots/seattlerb/qw_escape.txt | 4 +- test/prism/snapshots/seattlerb/qw_escape_term.txt | 4 +- test/prism/snapshots/seattlerb/qwords_empty.txt | 4 +- .../seattlerb/read_escape_unicode_curlies.txt | 4 +- .../snapshots/seattlerb/read_escape_unicode_h4.txt | 4 +- test/prism/snapshots/seattlerb/regexp.txt | 12 +- .../snapshots/seattlerb/regexp_esc_C_slash.txt | 4 +- test/prism/snapshots/seattlerb/regexp_esc_u.txt | 4 +- .../snapshots/seattlerb/regexp_escape_extended.txt | 4 +- .../snapshots/seattlerb/regexp_unicode_curlies.txt | 6 +- .../seattlerb/required_kwarg_no_value.txt | 4 + .../seattlerb/rescue_do_end_ensure_result.txt | 13 +- .../snapshots/seattlerb/rescue_do_end_no_raise.txt | 21 +- .../snapshots/seattlerb/rescue_do_end_raised.txt | 13 +- .../snapshots/seattlerb/rescue_do_end_rescued.txt | 21 +- test/prism/snapshots/seattlerb/rescue_in_block.txt | 10 +- test/prism/snapshots/seattlerb/rescue_parens.txt | 7 +- .../snapshots/seattlerb/return_call_assocs.txt | 51 +- test/prism/snapshots/seattlerb/rhs_asgn.txt | 6 +- test/prism/snapshots/seattlerb/ruby21_numbers.txt | 12 +- test/prism/snapshots/seattlerb/safe_attrasgn.txt | 6 +- .../snapshots/seattlerb/safe_attrasgn_constant.txt | 6 +- test/prism/snapshots/seattlerb/safe_call.txt | 4 +- .../seattlerb/safe_call_after_newline.txt | 4 +- .../snapshots/seattlerb/safe_call_dot_parens.txt | 4 +- .../snapshots/seattlerb/safe_call_newline.txt | 4 +- .../snapshots/seattlerb/safe_call_operator.txt | 6 +- .../snapshots/seattlerb/safe_call_rhs_newline.txt | 3 + test/prism/snapshots/seattlerb/safe_calls.txt | 6 +- test/prism/snapshots/seattlerb/safe_op_asgn.txt | 6 +- test/prism/snapshots/seattlerb/safe_op_asgn2.txt | 4 +- .../seattlerb/slashy_newlines_within_string.txt | 6 +- .../snapshots/seattlerb/stabby_arg_no_paren.txt | 5 + .../stabby_arg_opt_splat_arg_block_omfg.txt | 7 +- .../snapshots/seattlerb/stabby_block_iter_call.txt | 10 +- .../stabby_block_iter_call_no_target_with_arg.txt | 12 +- test/prism/snapshots/seattlerb/stabby_block_kw.txt | 7 +- .../seattlerb/stabby_block_kw__required.txt | 5 + .../snapshots/seattlerb/stabby_proc_scope.txt | 5 + test/prism/snapshots/seattlerb/str_backslashes.txt | 4 +- .../str_double_double_escaped_newline.txt | 6 +- .../seattlerb/str_double_escaped_newline.txt | 6 +- .../snapshots/seattlerb/str_double_newline.txt | 6 +- test/prism/snapshots/seattlerb/str_evstr.txt | 8 +- .../prism/snapshots/seattlerb/str_evstr_escape.txt | 10 +- .../snapshots/seattlerb/str_heredoc_interp.txt | 8 +- .../seattlerb/str_interp_ternary_or_label.txt | 14 +- .../seattlerb/str_lit_concat_bad_encodings.txt | 8 +- .../seattlerb/str_newline_hash_line_number.txt | 6 +- .../prism/snapshots/seattlerb/str_pct_Q_nested.txt | 10 +- .../snapshots/seattlerb/str_pct_nested_nested.txt | 14 +- test/prism/snapshots/seattlerb/str_pct_q.txt | 4 +- .../str_single_double_escaped_newline.txt | 6 +- .../seattlerb/str_single_escaped_newline.txt | 6 +- .../snapshots/seattlerb/str_single_newline.txt | 6 +- test/prism/snapshots/seattlerb/str_str.txt | 10 +- test/prism/snapshots/seattlerb/str_str_str.txt | 12 +- test/prism/snapshots/seattlerb/super_arg.txt | 5 +- test/prism/snapshots/seattlerb/symbol_empty.txt | 4 +- test/prism/snapshots/seattlerb/symbol_list.txt | 10 +- test/prism/snapshots/seattlerb/symbols.txt | 10 +- test/prism/snapshots/seattlerb/symbols_empty.txt | 4 +- .../snapshots/seattlerb/symbols_empty_space.txt | 4 +- test/prism/snapshots/seattlerb/symbols_interp.txt | 10 +- test/prism/snapshots/seattlerb/thingy.txt | 10 +- test/prism/snapshots/seattlerb/uminus_float.txt | 3 + test/prism/snapshots/seattlerb/unary_minus.txt | 4 +- test/prism/snapshots/seattlerb/unary_plus.txt | 4 +- .../snapshots/seattlerb/unary_plus_on_literal.txt | 6 +- test/prism/snapshots/seattlerb/unary_tilde.txt | 4 +- test/prism/snapshots/seattlerb/utf8_bom.txt | 6 +- test/prism/snapshots/seattlerb/when_splat.txt | 5 + test/prism/snapshots/seattlerb/words_interp.txt | 10 +- .../snapshots/single_method_call_with_bang.txt | 4 +- test/prism/snapshots/single_quote_heredocs.txt | 4 +- test/prism/snapshots/spanning_heredoc.txt | 87 +-- test/prism/snapshots/spanning_heredoc_newlines.txt | 18 +- test/prism/snapshots/strings.txt | 130 ++-- test/prism/snapshots/super.txt | 42 +- test/prism/snapshots/symbols.txt | 159 +++-- test/prism/snapshots/ternary_operator.txt | 57 +- test/prism/snapshots/tilde_heredocs.txt | 148 ++-- test/prism/snapshots/undef.txt | 40 +- test/prism/snapshots/unescaping.txt | 10 +- test/prism/snapshots/unless.txt | 50 +- .../snapshots/unparser/corpus/literal/alias.txt | 10 +- .../unparser/corpus/literal/assignment.txt | 259 +++++-- .../snapshots/unparser/corpus/literal/block.txt | 241 +++++-- .../snapshots/unparser/corpus/literal/case.txt | 54 +- .../snapshots/unparser/corpus/literal/class.txt | 40 +- .../snapshots/unparser/corpus/literal/def.txt | 175 ++++- .../snapshots/unparser/corpus/literal/defined.txt | 18 +- .../snapshots/unparser/corpus/literal/defs.txt | 59 +- .../snapshots/unparser/corpus/literal/dstr.txt | 96 ++- .../snapshots/unparser/corpus/literal/empty.txt | 2 + .../unparser/corpus/literal/empty_begin.txt | 3 + .../snapshots/unparser/corpus/literal/flipflop.txt | 44 +- .../snapshots/unparser/corpus/literal/for.txt | 29 +- .../snapshots/unparser/corpus/literal/hookexe.txt | 12 +- .../prism/snapshots/unparser/corpus/literal/if.txt | 64 +- .../snapshots/unparser/corpus/literal/kwbegin.txt | 109 ++- .../snapshots/unparser/corpus/literal/lambda.txt | 23 +- .../snapshots/unparser/corpus/literal/literal.txt | 371 ++++++---- .../snapshots/unparser/corpus/literal/module.txt | 21 +- .../snapshots/unparser/corpus/literal/opasgn.txt | 104 ++- .../snapshots/unparser/corpus/literal/pattern.txt | 140 +++- .../snapshots/unparser/corpus/literal/pragma.txt | 8 +- .../snapshots/unparser/corpus/literal/range.txt | 26 +- .../snapshots/unparser/corpus/literal/rescue.txt | 8 + .../snapshots/unparser/corpus/literal/send.txt | 274 +++++--- .../snapshots/unparser/corpus/literal/since/27.txt | 15 +- .../snapshots/unparser/corpus/literal/since/30.txt | 28 +- .../snapshots/unparser/corpus/literal/since/31.txt | 14 +- .../snapshots/unparser/corpus/literal/since/32.txt | 26 +- .../unparser/corpus/literal/singletons.txt | 6 + .../snapshots/unparser/corpus/literal/super.txt | 35 +- .../snapshots/unparser/corpus/literal/unary.txt | 43 +- .../snapshots/unparser/corpus/literal/undef.txt | 10 +- .../unparser/corpus/literal/variables.txt | 15 +- .../snapshots/unparser/corpus/literal/while.txt | 146 +++- .../snapshots/unparser/corpus/semantic/and.txt | 8 + .../snapshots/unparser/corpus/semantic/block.txt | 36 +- .../snapshots/unparser/corpus/semantic/def.txt | 12 +- .../snapshots/unparser/corpus/semantic/dstr.txt | 193 +++-- .../snapshots/unparser/corpus/semantic/kwbegin.txt | 55 +- .../snapshots/unparser/corpus/semantic/literal.txt | 30 +- .../snapshots/unparser/corpus/semantic/opasgn.txt | 16 +- .../snapshots/unparser/corpus/semantic/send.txt | 12 +- .../snapshots/unparser/corpus/semantic/undef.txt | 10 +- .../snapshots/unparser/corpus/semantic/while.txt | 48 +- test/prism/snapshots/until.txt | 54 +- test/prism/snapshots/variables.txt | 139 ++-- test/prism/snapshots/while.txt | 113 ++- test/prism/snapshots/whitequark/__ENCODING__.txt | 3 + .../snapshots/whitequark/__ENCODING___legacy_.txt | 3 + test/prism/snapshots/whitequark/alias.txt | 7 +- test/prism/snapshots/whitequark/alias_gvar.txt | 8 + .../ambiuous_quoted_label_in_ternary_operator.txt | 9 +- test/prism/snapshots/whitequark/and.txt | 4 + test/prism/snapshots/whitequark/and_asgn.txt | 14 +- test/prism/snapshots/whitequark/and_or_masgn.txt | 14 + .../snapshots/whitequark/anonymous_blockarg.txt | 8 +- test/prism/snapshots/whitequark/arg.txt | 6 + .../snapshots/whitequark/arg_duplicate_ignored.txt | 6 + test/prism/snapshots/whitequark/arg_label.txt | 23 +- test/prism/snapshots/whitequark/arg_scope.txt | 8 +- test/prism/snapshots/whitequark/args.txt | 106 ++- .../snapshots/whitequark/args_args_assocs.txt | 17 +- .../whitequark/args_args_assocs_comma.txt | 9 +- .../prism/snapshots/whitequark/args_args_comma.txt | 4 +- test/prism/snapshots/whitequark/args_args_star.txt | 9 +- .../snapshots/whitequark/args_assocs_comma.txt | 9 +- .../prism/snapshots/whitequark/args_block_pass.txt | 5 +- test/prism/snapshots/whitequark/args_cmd.txt | 4 +- test/prism/snapshots/whitequark/args_star.txt | 9 +- test/prism/snapshots/whitequark/array_assocs.txt | 18 +- test/prism/snapshots/whitequark/array_plain.txt | 8 +- test/prism/snapshots/whitequark/array_splat.txt | 17 +- test/prism/snapshots/whitequark/array_symbols.txt | 8 +- .../snapshots/whitequark/array_symbols_empty.txt | 6 +- .../snapshots/whitequark/array_symbols_interp.txt | 16 +- test/prism/snapshots/whitequark/array_words.txt | 4 +- .../snapshots/whitequark/array_words_empty.txt | 6 +- .../snapshots/whitequark/array_words_interp.txt | 14 +- test/prism/snapshots/whitequark/asgn_cmd.txt | 7 + test/prism/snapshots/whitequark/asgn_mrhs.txt | 9 +- test/prism/snapshots/whitequark/back_ref.txt | 3 + test/prism/snapshots/whitequark/bang.txt | 4 +- test/prism/snapshots/whitequark/bang_cmd.txt | 4 +- test/prism/snapshots/whitequark/begin_cmdarg.txt | 14 +- .../whitequark/beginless_erange_after_newline.txt | 8 +- .../whitequark/beginless_irange_after_newline.txt | 8 +- .../prism/snapshots/whitequark/beginless_range.txt | 10 +- test/prism/snapshots/whitequark/blockarg.txt | 4 + test/prism/snapshots/whitequark/blockargs.txt | 197 ++++-- test/prism/snapshots/whitequark/bug_435.txt | 9 +- test/prism/snapshots/whitequark/bug_447.txt | 14 +- test/prism/snapshots/whitequark/bug_452.txt | 11 +- test/prism/snapshots/whitequark/bug_466.txt | 15 +- test/prism/snapshots/whitequark/bug_473.txt | 8 +- test/prism/snapshots/whitequark/bug_480.txt | 8 +- test/prism/snapshots/whitequark/bug_481.txt | 10 +- .../whitequark/bug_ascii_8bit_in_literal.txt | 4 +- .../whitequark/bug_cmd_string_lookahead.txt | 5 +- test/prism/snapshots/whitequark/bug_cmdarg.txt | 20 +- .../whitequark/bug_def_no_paren_eql_begin.txt | 3 + .../whitequark/bug_do_block_in_call_args.txt | 10 +- .../whitequark/bug_do_block_in_cmdarg.txt | 9 +- .../whitequark/bug_do_block_in_hash_brace.txt | 64 +- test/prism/snapshots/whitequark/bug_heredoc_do.txt | 5 +- .../snapshots/whitequark/bug_interp_single.txt | 14 +- .../snapshots/whitequark/bug_lambda_leakage.txt | 7 +- .../whitequark/bug_regex_verification.txt | 4 +- .../snapshots/whitequark/bug_rescue_empty_else.txt | 6 + .../whitequark/bug_while_not_parens_do.txt | 7 +- test/prism/snapshots/whitequark/case_cond.txt | 7 +- test/prism/snapshots/whitequark/case_cond_else.txt | 11 +- test/prism/snapshots/whitequark/case_expr.txt | 9 +- test/prism/snapshots/whitequark/case_expr_else.txt | 13 +- test/prism/snapshots/whitequark/casgn_scoped.txt | 7 +- test/prism/snapshots/whitequark/casgn_toplevel.txt | 6 +- test/prism/snapshots/whitequark/casgn_unscoped.txt | 5 +- test/prism/snapshots/whitequark/character.txt | 4 +- test/prism/snapshots/whitequark/class.txt | 6 + test/prism/snapshots/whitequark/class_super.txt | 5 + .../snapshots/whitequark/class_super_label.txt | 6 +- .../whitequark/comments_before_leading_dot__27.txt | 10 +- test/prism/snapshots/whitequark/complex.txt | 13 +- test/prism/snapshots/whitequark/cond_begin.txt | 10 +- .../snapshots/whitequark/cond_begin_masgn.txt | 10 +- test/prism/snapshots/whitequark/cond_eflipflop.txt | 9 +- .../cond_eflipflop_with_beginless_range.txt | 3 + .../cond_eflipflop_with_endless_range.txt | 3 + test/prism/snapshots/whitequark/cond_iflipflop.txt | 9 +- .../cond_iflipflop_with_beginless_range.txt | 3 + .../cond_iflipflop_with_endless_range.txt | 3 + .../whitequark/cond_match_current_line.txt | 9 +- test/prism/snapshots/whitequark/const_op_asgn.txt | 27 +- test/prism/snapshots/whitequark/const_scoped.txt | 4 + test/prism/snapshots/whitequark/const_toplevel.txt | 3 + test/prism/snapshots/whitequark/const_unscoped.txt | 3 + test/prism/snapshots/whitequark/cpath.txt | 7 + test/prism/snapshots/whitequark/cvar.txt | 3 + test/prism/snapshots/whitequark/cvasgn.txt | 5 +- .../snapshots/whitequark/dedenting_heredoc.txt | 111 +-- ...nterpolating_heredoc_fake_line_continuation.txt | 8 +- ...non_interpolating_heredoc_line_continuation.txt | 8 +- test/prism/snapshots/whitequark/def.txt | 8 + test/prism/snapshots/whitequark/defined.txt | 6 + test/prism/snapshots/whitequark/defs.txt | 12 + test/prism/snapshots/whitequark/empty_stmt.txt | 2 + .../whitequark/endless_comparison_method.txt | 32 +- test/prism/snapshots/whitequark/endless_method.txt | 26 +- .../whitequark/endless_method_command_syntax.txt | 49 +- .../endless_method_forwarded_args_legacy.txt | 9 +- .../whitequark/endless_method_with_rescue_mod.txt | 17 +- .../whitequark/endless_method_without_args.txt | 24 +- test/prism/snapshots/whitequark/ensure.txt | 10 +- test/prism/snapshots/whitequark/ensure_empty.txt | 4 + test/prism/snapshots/whitequark/false.txt | 3 + test/prism/snapshots/whitequark/float.txt | 4 + test/prism/snapshots/whitequark/for.txt | 14 +- test/prism/snapshots/whitequark/for_mlhs.txt | 11 +- test/prism/snapshots/whitequark/forward_arg.txt | 9 +- .../whitequark/forward_arg_with_open_args.txt | 74 +- .../snapshots/whitequark/forward_args_legacy.txt | 18 +- .../forwarded_argument_with_kwrestarg.txt | 9 +- .../whitequark/forwarded_argument_with_restarg.txt | 9 +- .../snapshots/whitequark/forwarded_kwrestarg.txt | 8 +- .../forwarded_kwrestarg_with_additional_kwarg.txt | 12 +- .../snapshots/whitequark/forwarded_restarg.txt | 8 +- test/prism/snapshots/whitequark/gvar.txt | 3 + test/prism/snapshots/whitequark/gvasgn.txt | 5 +- test/prism/snapshots/whitequark/hash_empty.txt | 3 + .../prism/snapshots/whitequark/hash_hashrocket.txt | 17 +- test/prism/snapshots/whitequark/hash_kwsplat.txt | 9 +- test/prism/snapshots/whitequark/hash_label.txt | 8 +- test/prism/snapshots/whitequark/hash_label_end.txt | 28 +- .../whitequark/hash_pair_value_omission.txt | 22 +- test/prism/snapshots/whitequark/heredoc.txt | 8 +- test/prism/snapshots/whitequark/if.txt | 10 +- test/prism/snapshots/whitequark/if_else.txt | 18 +- test/prism/snapshots/whitequark/if_elsif.txt | 14 +- test/prism/snapshots/whitequark/if_masgn__24.txt | 8 + test/prism/snapshots/whitequark/if_mod.txt | 6 +- test/prism/snapshots/whitequark/if_nl_then.txt | 6 +- test/prism/snapshots/whitequark/int.txt | 8 +- test/prism/snapshots/whitequark/int___LINE__.txt | 3 + .../snapshots/whitequark/interp_digit_var.txt | 86 +-- test/prism/snapshots/whitequark/ivar.txt | 3 + test/prism/snapshots/whitequark/ivasgn.txt | 5 +- .../whitequark/keyword_argument_omission.txt | 12 +- test/prism/snapshots/whitequark/kwarg.txt | 4 + .../snapshots/whitequark/kwbegin_compstmt.txt | 8 +- test/prism/snapshots/whitequark/kwnilarg.txt | 15 +- test/prism/snapshots/whitequark/kwoptarg.txt | 6 +- .../kwoptarg_with_kwrestarg_and_forwarded_args.txt | 9 +- .../prism/snapshots/whitequark/kwrestarg_named.txt | 4 + .../snapshots/whitequark/kwrestarg_unnamed.txt | 4 + .../whitequark/lbrace_arg_after_command_args.txt | 13 +- .../whitequark/lparenarg_after_lvar__since_25.txt | 12 +- test/prism/snapshots/whitequark/lvar.txt | 4 +- .../snapshots/whitequark/lvar_injecting_match.txt | 7 +- test/prism/snapshots/whitequark/lvasgn.txt | 6 +- test/prism/snapshots/whitequark/masgn.txt | 30 +- test/prism/snapshots/whitequark/masgn_attr.txt | 18 +- test/prism/snapshots/whitequark/masgn_cmd.txt | 6 + test/prism/snapshots/whitequark/masgn_const.txt | 11 + test/prism/snapshots/whitequark/masgn_nested.txt | 11 + test/prism/snapshots/whitequark/masgn_splat.txt | 39 ++ .../whitequark/method_definition_in_while_cond.txt | 36 +- test/prism/snapshots/whitequark/module.txt | 4 + .../whitequark/multiple_pattern_matches.txt | 54 +- .../whitequark/newline_in_hash_argument.txt | 39 +- test/prism/snapshots/whitequark/nil.txt | 3 + test/prism/snapshots/whitequark/nil_expression.txt | 4 + .../whitequark/non_lvar_injecting_match.txt | 10 +- test/prism/snapshots/whitequark/not.txt | 8 +- test/prism/snapshots/whitequark/not_cmd.txt | 4 +- test/prism/snapshots/whitequark/not_masgn__24.txt | 9 +- test/prism/snapshots/whitequark/nth_ref.txt | 3 + .../whitequark/numbered_args_after_27.txt | 34 +- .../whitequark/numparam_outside_block.txt | 23 +- .../whitequark/numparam_ruby_bug_19025.txt | 12 +- test/prism/snapshots/whitequark/op_asgn.txt | 14 +- test/prism/snapshots/whitequark/op_asgn_cmd.txt | 10 +- test/prism/snapshots/whitequark/op_asgn_index.txt | 10 +- .../snapshots/whitequark/op_asgn_index_cmd.txt | 8 +- test/prism/snapshots/whitequark/optarg.txt | 12 +- test/prism/snapshots/whitequark/or.txt | 4 + test/prism/snapshots/whitequark/or_asgn.txt | 14 +- test/prism/snapshots/whitequark/parser_bug_272.txt | 8 +- test/prism/snapshots/whitequark/parser_bug_490.txt | 23 + test/prism/snapshots/whitequark/parser_bug_507.txt | 6 + test/prism/snapshots/whitequark/parser_bug_518.txt | 5 + test/prism/snapshots/whitequark/parser_bug_525.txt | 12 +- test/prism/snapshots/whitequark/parser_bug_604.txt | 5 +- test/prism/snapshots/whitequark/parser_bug_640.txt | 8 +- test/prism/snapshots/whitequark/parser_bug_645.txt | 6 + test/prism/snapshots/whitequark/parser_bug_830.txt | 4 +- test/prism/snapshots/whitequark/parser_bug_989.txt | 4 +- ...r_drops_truncated_parts_of_squiggly_heredoc.txt | 7 +- .../parser_slash_slash_n_escaping_in_literals.txt | 44 +- .../pattern_matching__FILE__LINE_literals.txt | 11 +- .../whitequark/pattern_matching_blank_else.txt | 12 +- .../snapshots/whitequark/pattern_matching_else.txt | 15 +- .../whitequark/pattern_matching_single_line.txt | 14 +- ...single_line_allowed_omission_of_parentheses.txt | 78 ++- test/prism/snapshots/whitequark/postexe.txt | 6 +- test/prism/snapshots/whitequark/preexe.txt | 6 +- test/prism/snapshots/whitequark/procarg0.txt | 13 +- .../prism/snapshots/whitequark/range_exclusive.txt | 8 +- .../prism/snapshots/whitequark/range_inclusive.txt | 8 +- test/prism/snapshots/whitequark/rational.txt | 6 +- test/prism/snapshots/whitequark/regex_interp.txt | 10 +- test/prism/snapshots/whitequark/regex_plain.txt | 4 +- test/prism/snapshots/whitequark/resbody_list.txt | 11 +- .../snapshots/whitequark/resbody_list_mrhs.txt | 11 +- .../snapshots/whitequark/resbody_list_var.txt | 11 +- test/prism/snapshots/whitequark/resbody_var.txt | 20 +- test/prism/snapshots/whitequark/rescue.txt | 10 +- test/prism/snapshots/whitequark/rescue_else.txt | 14 +- .../snapshots/whitequark/rescue_else_ensure.txt | 18 +- test/prism/snapshots/whitequark/rescue_ensure.txt | 14 +- .../whitequark/rescue_in_lambda_block.txt | 5 + test/prism/snapshots/whitequark/rescue_mod.txt | 3 + .../prism/snapshots/whitequark/rescue_mod_asgn.txt | 4 + .../snapshots/whitequark/rescue_mod_masgn.txt | 12 +- .../snapshots/whitequark/rescue_mod_op_assign.txt | 4 + .../whitequark/rescue_without_begin_end.txt | 13 +- test/prism/snapshots/whitequark/restarg_named.txt | 4 + .../prism/snapshots/whitequark/restarg_unnamed.txt | 4 + test/prism/snapshots/whitequark/return.txt | 15 +- test/prism/snapshots/whitequark/return_block.txt | 5 +- test/prism/snapshots/whitequark/ruby_bug_10279.txt | 11 +- test/prism/snapshots/whitequark/ruby_bug_10653.txt | 42 +- test/prism/snapshots/whitequark/ruby_bug_11107.txt | 10 +- test/prism/snapshots/whitequark/ruby_bug_11380.txt | 14 +- test/prism/snapshots/whitequark/ruby_bug_11873.txt | 78 ++- .../snapshots/whitequark/ruby_bug_11873_a.txt | 138 ++-- .../snapshots/whitequark/ruby_bug_11873_b.txt | 11 +- test/prism/snapshots/whitequark/ruby_bug_11989.txt | 4 +- test/prism/snapshots/whitequark/ruby_bug_11990.txt | 10 +- test/prism/snapshots/whitequark/ruby_bug_12073.txt | 19 +- test/prism/snapshots/whitequark/ruby_bug_12402.txt | 68 +- test/prism/snapshots/whitequark/ruby_bug_12669.txt | 18 +- test/prism/snapshots/whitequark/ruby_bug_12686.txt | 8 +- test/prism/snapshots/whitequark/ruby_bug_13547.txt | 5 +- test/prism/snapshots/whitequark/ruby_bug_14690.txt | 10 +- test/prism/snapshots/whitequark/ruby_bug_15789.txt | 24 +- test/prism/snapshots/whitequark/ruby_bug_9669.txt | 14 +- test/prism/snapshots/whitequark/sclass.txt | 5 + test/prism/snapshots/whitequark/self.txt | 3 + test/prism/snapshots/whitequark/send_attr_asgn.txt | 18 +- .../whitequark/send_attr_asgn_conditional.txt | 6 +- test/prism/snapshots/whitequark/send_binary_op.txt | 86 +-- .../snapshots/whitequark/send_block_chain_cmd.txt | 40 +- .../whitequark/send_block_conditional.txt | 5 +- test/prism/snapshots/whitequark/send_call.txt | 10 +- .../snapshots/whitequark/send_conditional.txt | 4 +- test/prism/snapshots/whitequark/send_index.txt | 8 +- .../prism/snapshots/whitequark/send_index_asgn.txt | 10 +- .../whitequark/send_index_asgn_legacy.txt | 10 +- test/prism/snapshots/whitequark/send_index_cmd.txt | 4 +- .../snapshots/whitequark/send_index_legacy.txt | 8 +- test/prism/snapshots/whitequark/send_lambda.txt | 7 + .../snapshots/whitequark/send_lambda_args.txt | 8 + .../whitequark/send_lambda_args_noparen.txt | 10 +- .../whitequark/send_lambda_args_shadow.txt | 5 + .../snapshots/whitequark/send_lambda_legacy.txt | 3 + .../whitequark/send_op_asgn_conditional.txt | 6 +- test/prism/snapshots/whitequark/send_plain.txt | 8 +- test/prism/snapshots/whitequark/send_plain_cmd.txt | 8 +- test/prism/snapshots/whitequark/send_self.txt | 10 +- .../prism/snapshots/whitequark/send_self_block.txt | 16 +- test/prism/snapshots/whitequark/send_unary_op.txt | 8 +- .../whitequark/slash_newline_in_heredocs.txt | 12 +- test/prism/snapshots/whitequark/space_args_arg.txt | 8 +- .../snapshots/whitequark/space_args_arg_block.txt | 23 +- .../snapshots/whitequark/space_args_arg_call.txt | 8 +- .../whitequark/space_args_arg_newline.txt | 8 +- .../snapshots/whitequark/space_args_block.txt | 6 +- test/prism/snapshots/whitequark/space_args_cmd.txt | 8 +- .../prism/snapshots/whitequark/string___FILE__.txt | 4 +- test/prism/snapshots/whitequark/string_concat.txt | 10 +- test/prism/snapshots/whitequark/string_dvar.txt | 14 +- test/prism/snapshots/whitequark/string_interp.txt | 10 +- test/prism/snapshots/whitequark/string_plain.txt | 6 +- test/prism/snapshots/whitequark/super.txt | 5 + test/prism/snapshots/whitequark/super_block.txt | 6 + test/prism/snapshots/whitequark/symbol_interp.txt | 9 +- test/prism/snapshots/whitequark/symbol_plain.txt | 6 +- test/prism/snapshots/whitequark/ternary.txt | 10 +- .../whitequark/ternary_ambiguous_symbol.txt | 15 +- .../snapshots/whitequark/trailing_forward_arg.txt | 12 +- test/prism/snapshots/whitequark/true.txt | 3 + .../whitequark/unary_num_pow_precedence.txt | 18 +- test/prism/snapshots/whitequark/undef.txt | 14 +- test/prism/snapshots/whitequark/unless.txt | 10 +- test/prism/snapshots/whitequark/unless_else.txt | 18 +- test/prism/snapshots/whitequark/unless_mod.txt | 6 +- test/prism/snapshots/whitequark/until.txt | 12 +- test/prism/snapshots/whitequark/until_mod.txt | 7 +- test/prism/snapshots/whitequark/until_post.txt | 9 +- test/prism/snapshots/whitequark/var_and_asgn.txt | 5 +- test/prism/snapshots/whitequark/var_op_asgn.txt | 16 +- .../prism/snapshots/whitequark/var_op_asgn_cmd.txt | 4 + test/prism/snapshots/whitequark/var_or_asgn.txt | 5 +- test/prism/snapshots/whitequark/when_multi.txt | 11 +- test/prism/snapshots/whitequark/when_splat.txt | 12 +- test/prism/snapshots/whitequark/when_then.txt | 9 +- test/prism/snapshots/whitequark/while.txt | 12 +- test/prism/snapshots/whitequark/while_mod.txt | 7 +- test/prism/snapshots/whitequark/while_post.txt | 9 +- test/prism/snapshots/whitequark/xstring_interp.txt | 9 +- test/prism/snapshots/whitequark/xstring_plain.txt | 4 +- test/prism/snapshots/whitequark/zsuper.txt | 3 + test/prism/snapshots/xstring.txt | 19 +- test/prism/snapshots/xstring_with_backslash.txt | 4 +- test/prism/snapshots/yield.txt | 22 +- 915 files changed, 12863 insertions(+), 4404 deletions(-) diff --git a/prism/templates/lib/prism/inspect_visitor.rb.erb b/prism/templates/lib/prism/inspect_visitor.rb.erb index 8b35b079c9..3cfe615d85 100644 --- a/prism/templates/lib/prism/inspect_visitor.rb.erb +++ b/prism/templates/lib/prism/inspect_visitor.rb.erb @@ -69,12 +69,12 @@ module Prism # Inspect a <%= node.name %> node. def visit_<%= node.human %>(node) commands << [inspect_node(<%= node.name.inspect %>, node), indent] - <%- (fields = [*node.flags, *node.fields]).each_with_index do |field, index| -%> + <%- (fields = [node.flags || Prism::Template::Flags.empty, *node.fields]).each_with_index do |field, index| -%> <%- pointer = index == fields.length - 1 ? "└── " : "├── " -%> <%- preadd = index == fields.length - 1 ? " " : "│ " -%> <%- case field -%> <%- when Prism::Template::Flags -%> - flags = [<%= field.values.map { |value| "(\"#{value.name.downcase}\" if node.#{value.name.downcase}?)" }.join(", ") %>].compact + flags = [("newline" if node.newline?), ("static_literal" if node.static_literal?), <%= field.values.map { |value| "(\"#{value.name.downcase}\" if node.#{value.name.downcase}?)" }.join(", ") %>].compact commands << ["<%= pointer %>flags: #{flags.empty? ? "∅" : flags.join(", ")}\n", indent] <%- when Prism::Template::NodeListField -%> commands << ["<%= pointer %><%= field.name %>: (length: #{(<%= field.name %> = node.<%= field.name %>).length})\n", indent] diff --git a/prism/templates/template.rb b/prism/templates/template.rb index ba8013c9a3..8e6f1b16aa 100755 --- a/prism/templates/template.rb +++ b/prism/templates/template.rb @@ -493,6 +493,10 @@ module Prism @values = config.fetch("values").map { |flag| Flag.new(flag) } @comment = config.fetch("comment") end + + def self.empty + new("name" => "", "values" => [], "comment" => "") + end end class << self diff --git a/test/prism/snapshots/alias.txt b/test/prism/snapshots/alias.txt index a952e96f67..0d52c14f1a 100644 --- a/test/prism/snapshots/alias.txt +++ b/test/prism/snapshots/alias.txt @@ -1,192 +1,213 @@ @ ProgramNode (location: (1,0)-(23,11)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(23,11)) + ├── flags: ∅ └── body: (length: 12) ├── @ AliasMethodNode (location: (1,0)-(1,15)) + │ ├── flags: newline │ ├── new_name: │ │ @ SymbolNode (location: (1,6)-(1,10)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,6)-(1,7) = ":" │ │ ├── value_loc: (1,7)-(1,10) = "foo" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "foo" │ ├── old_name: │ │ @ SymbolNode (location: (1,11)-(1,15)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,11)-(1,12) = ":" │ │ ├── value_loc: (1,12)-(1,15) = "bar" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "bar" │ └── keyword_loc: (1,0)-(1,5) = "alias" ├── @ AliasMethodNode (location: (3,0)-(3,21)) + │ ├── flags: newline │ ├── new_name: │ │ @ SymbolNode (location: (3,6)-(3,13)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,6)-(3,9) = "%s[" │ │ ├── value_loc: (3,9)-(3,12) = "abc" │ │ ├── closing_loc: (3,12)-(3,13) = "]" │ │ └── unescaped: "abc" │ ├── old_name: │ │ @ SymbolNode (location: (3,14)-(3,21)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,14)-(3,17) = "%s[" │ │ ├── value_loc: (3,17)-(3,20) = "def" │ │ ├── closing_loc: (3,20)-(3,21) = "]" │ │ └── unescaped: "def" │ └── keyword_loc: (3,0)-(3,5) = "alias" ├── @ AliasMethodNode (location: (5,0)-(5,19)) + │ ├── flags: newline │ ├── new_name: │ │ @ SymbolNode (location: (5,6)-(5,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (5,6)-(5,8) = ":'" │ │ ├── value_loc: (5,8)-(5,11) = "abc" │ │ ├── closing_loc: (5,11)-(5,12) = "'" │ │ └── unescaped: "abc" │ ├── old_name: │ │ @ SymbolNode (location: (5,13)-(5,19)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (5,13)-(5,15) = ":'" │ │ ├── value_loc: (5,15)-(5,18) = "def" │ │ ├── closing_loc: (5,18)-(5,19) = "'" │ │ └── unescaped: "def" │ └── keyword_loc: (5,0)-(5,5) = "alias" ├── @ AliasMethodNode (location: (7,0)-(7,23)) + │ ├── flags: newline │ ├── new_name: │ │ @ InterpolatedSymbolNode (location: (7,6)-(7,16)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (7,6)-(7,8) = ":\"" │ │ ├── parts: (length: 2) │ │ │ ├── @ StringNode (location: (7,8)-(7,11)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (7,8)-(7,11) = "abc" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "abc" │ │ │ └── @ EmbeddedStatementsNode (location: (7,11)-(7,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (7,11)-(7,13) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (7,13)-(7,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (7,13)-(7,14)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── closing_loc: (7,14)-(7,15) = "}" │ │ └── closing_loc: (7,15)-(7,16) = "\"" │ ├── old_name: │ │ @ SymbolNode (location: (7,17)-(7,23)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (7,17)-(7,19) = ":'" │ │ ├── value_loc: (7,19)-(7,22) = "def" │ │ ├── closing_loc: (7,22)-(7,23) = "'" │ │ └── unescaped: "def" │ └── keyword_loc: (7,0)-(7,5) = "alias" ├── @ AliasGlobalVariableNode (location: (9,0)-(9,11)) + │ ├── flags: newline │ ├── new_name: │ │ @ GlobalVariableReadNode (location: (9,6)-(9,8)) + │ │ ├── flags: ∅ │ │ └── name: :$a │ ├── old_name: │ │ @ BackReferenceReadNode (location: (9,9)-(9,11)) + │ │ ├── flags: ∅ │ │ └── name: :$' │ └── keyword_loc: (9,0)-(9,5) = "alias" ├── @ AliasMethodNode (location: (11,0)-(11,13)) + │ ├── flags: newline │ ├── new_name: │ │ @ SymbolNode (location: (11,6)-(11,9)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (11,6)-(11,9) = "foo" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "foo" │ ├── old_name: │ │ @ SymbolNode (location: (11,10)-(11,13)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (11,10)-(11,13) = "bar" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "bar" │ └── keyword_loc: (11,0)-(11,5) = "alias" ├── @ AliasGlobalVariableNode (location: (13,0)-(13,15)) + │ ├── flags: newline │ ├── new_name: │ │ @ GlobalVariableReadNode (location: (13,6)-(13,10)) + │ │ ├── flags: ∅ │ │ └── name: :$foo │ ├── old_name: │ │ @ GlobalVariableReadNode (location: (13,11)-(13,15)) + │ │ ├── flags: ∅ │ │ └── name: :$bar │ └── keyword_loc: (13,0)-(13,5) = "alias" ├── @ AliasMethodNode (location: (15,0)-(15,12)) + │ ├── flags: newline │ ├── new_name: │ │ @ SymbolNode (location: (15,6)-(15,9)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (15,6)-(15,9) = "foo" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "foo" │ ├── old_name: │ │ @ SymbolNode (location: (15,10)-(15,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (15,10)-(15,12) = "if" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "if" │ └── keyword_loc: (15,0)-(15,5) = "alias" ├── @ AliasMethodNode (location: (17,0)-(17,13)) + │ ├── flags: newline │ ├── new_name: │ │ @ SymbolNode (location: (17,6)-(17,9)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (17,6)-(17,9) = "foo" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "foo" │ ├── old_name: │ │ @ SymbolNode (location: (17,10)-(17,13)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (17,10)-(17,13) = "<=>" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "<=>" │ └── keyword_loc: (17,0)-(17,5) = "alias" ├── @ AliasMethodNode (location: (19,0)-(19,15)) + │ ├── flags: newline │ ├── new_name: │ │ @ SymbolNode (location: (19,6)-(19,9)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (19,6)-(19,7) = ":" │ │ ├── value_loc: (19,7)-(19,9) = "==" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "==" │ ├── old_name: │ │ @ SymbolNode (location: (19,10)-(19,15)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (19,10)-(19,11) = ":" │ │ ├── value_loc: (19,11)-(19,15) = "eql?" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "eql?" │ └── keyword_loc: (19,0)-(19,5) = "alias" ├── @ AliasMethodNode (location: (21,0)-(21,9)) + │ ├── flags: newline │ ├── new_name: │ │ @ SymbolNode (location: (21,6)-(21,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (21,6)-(21,7) = "A" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "A" │ ├── old_name: │ │ @ SymbolNode (location: (21,8)-(21,9)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (21,8)-(21,9) = "B" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "B" │ └── keyword_loc: (21,0)-(21,5) = "alias" └── @ AliasMethodNode (location: (23,0)-(23,11)) + ├── flags: newline ├── new_name: │ @ SymbolNode (location: (23,6)-(23,8)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (23,6)-(23,7) = ":" │ ├── value_loc: (23,7)-(23,8) = "A" │ ├── closing_loc: ∅ │ └── unescaped: "A" ├── old_name: │ @ SymbolNode (location: (23,9)-(23,11)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (23,9)-(23,10) = ":" │ ├── value_loc: (23,10)-(23,11) = "B" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/arithmetic.txt b/test/prism/snapshots/arithmetic.txt index c8a31c3d70..963080e0d9 100644 --- a/test/prism/snapshots/arithmetic.txt +++ b/test/prism/snapshots/arithmetic.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(13,8)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(13,8)) + ├── flags: ∅ └── body: (length: 7) ├── @ CallNode (location: (1,0)-(1,8)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -37,7 +39,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (3,0)-(3,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (3,0)-(3,4)) │ │ ├── flags: ∅ @@ -80,7 +82,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (5,0)-(5,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (5,0)-(5,4)) │ │ ├── flags: ∅ @@ -123,7 +125,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (7,0)-(7,8)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -156,7 +158,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (9,0)-(9,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (9,0)-(9,10)) │ │ ├── flags: ∅ @@ -212,13 +214,13 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (11,0)-(11,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (11,1)-(11,5)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ IntegerNode (location: (11,1)-(11,2)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── call_operator_loc: ∅ │ │ ├── name: :** @@ -229,7 +231,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (11,4)-(11,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ @@ -241,10 +243,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ CallNode (location: (13,0)-(13,8)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (13,0)-(13,2)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: -1 ├── call_operator_loc: (13,2)-(13,3) = "." ├── name: :zero? diff --git a/test/prism/snapshots/arrays.txt b/test/prism/snapshots/arrays.txt index 90a4d8f3bb..a73c56ac80 100644 --- a/test/prism/snapshots/arrays.txt +++ b/test/prism/snapshots/arrays.txt @@ -1,12 +1,15 @@ @ ProgramNode (location: (1,0)-(122,32)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(122,32)) + ├── flags: ∅ └── body: (length: 50) ├── @ ArrayNode (location: (1,0)-(1,4)) - │ ├── flags: contains_splat + │ ├── flags: newline, contains_splat │ ├── elements: (length: 1) │ │ └── @ SplatNode (location: (1,1)-(1,3)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (1,1)-(1,2) = "*" │ │ └── expression: │ │ @ CallNode (location: (1,2)-(1,3)) @@ -22,7 +25,7 @@ │ ├── opening_loc: (1,0)-(1,1) = "[" │ └── closing_loc: (1,3)-(1,4) = "]" ├── @ CallNode (location: (3,0)-(3,23)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ CallNode (location: (3,0)-(3,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -63,47 +66,48 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ ArrayNode (location: (3,16)-(3,23)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── elements: (length: 3) │ │ │ ├── @ IntegerNode (location: (3,16)-(3,17)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── @ IntegerNode (location: (3,19)-(3,20)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── @ IntegerNode (location: (3,22)-(3,23)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ ├── opening_loc: ∅ │ │ └── closing_loc: ∅ │ ├── closing_loc: (3,12)-(3,13) = "]" │ └── block: ∅ ├── @ ArrayNode (location: (5,0)-(5,13)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 1) │ │ └── @ KeywordHashNode (location: (5,1)-(5,12)) │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (5,1)-(5,12)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (5,1)-(5,3)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (5,1)-(5,2) = "a" │ │ │ ├── closing_loc: (5,2)-(5,3) = ":" │ │ │ └── unescaped: "a" │ │ ├── value: │ │ │ @ ArrayNode (location: (5,4)-(5,12)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 2) │ │ │ │ ├── @ SymbolNode (location: (5,5)-(5,7)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: (5,5)-(5,6) = ":" │ │ │ │ │ ├── value_loc: (5,6)-(5,7) = "b" │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── unescaped: "b" │ │ │ │ └── @ SymbolNode (location: (5,9)-(5,11)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (5,9)-(5,10) = ":" │ │ │ │ ├── value_loc: (5,10)-(5,11) = "c" │ │ │ │ ├── closing_loc: ∅ @@ -114,31 +118,31 @@ │ ├── opening_loc: (5,0)-(5,1) = "[" │ └── closing_loc: (5,12)-(5,13) = "]" ├── @ ArrayNode (location: (9,0)-(15,1)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 5) │ │ ├── @ SymbolNode (location: (9,1)-(9,3)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (9,1)-(9,2) = ":" │ │ │ ├── value_loc: (9,2)-(9,3) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ ├── @ SymbolNode (location: (9,5)-(9,7)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (9,5)-(9,6) = ":" │ │ │ ├── value_loc: (9,6)-(9,7) = "b" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "b" │ │ ├── @ SymbolNode (location: (10,0)-(10,2)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (10,0)-(10,1) = ":" │ │ │ ├── value_loc: (10,1)-(10,2) = "c" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "c" │ │ ├── @ IntegerNode (location: (10,3)-(10,4)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ SymbolNode (location: (14,0)-(14,2)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (14,0)-(14,1) = ":" │ │ ├── value_loc: (14,1)-(14,2) = "d" │ │ ├── closing_loc: ∅ @@ -146,31 +150,31 @@ │ ├── opening_loc: (9,0)-(9,1) = "[" │ └── closing_loc: (15,0)-(15,1) = "]" ├── @ ArrayNode (location: (18,0)-(26,1)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 5) │ │ ├── @ SymbolNode (location: (18,1)-(18,3)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (18,1)-(18,2) = ":" │ │ │ ├── value_loc: (18,2)-(18,3) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ ├── @ SymbolNode (location: (18,5)-(18,7)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (18,5)-(18,6) = ":" │ │ │ ├── value_loc: (18,6)-(18,7) = "b" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "b" │ │ ├── @ SymbolNode (location: (19,0)-(19,2)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (19,0)-(19,1) = ":" │ │ │ ├── value_loc: (19,1)-(19,2) = "c" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "c" │ │ ├── @ IntegerNode (location: (19,3)-(19,4)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ SymbolNode (location: (23,0)-(23,2)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (23,0)-(23,1) = ":" │ │ ├── value_loc: (23,1)-(23,2) = "d" │ │ ├── closing_loc: ∅ @@ -178,12 +182,13 @@ │ ├── opening_loc: (18,0)-(18,1) = "[" │ └── closing_loc: (26,0)-(26,1) = "]" ├── @ ArrayNode (location: (28,0)-(28,12)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 1) │ │ └── @ KeywordHashNode (location: (28,1)-(28,11)) │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (28,1)-(28,11)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ CallNode (location: (28,1)-(28,4)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -210,7 +215,7 @@ │ ├── opening_loc: (28,0)-(28,1) = "[" │ └── closing_loc: (28,11)-(28,12) = "]" ├── @ CallNode (location: (30,0)-(30,19)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ CallNode (location: (30,0)-(30,8)) │ │ ├── flags: ∅ @@ -276,7 +281,7 @@ │ ├── closing_loc: (30,12)-(30,13) = "]" │ └── block: ∅ ├── @ CallNode (location: (32,0)-(32,13)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (32,0)-(32,8)) │ │ ├── flags: ∅ @@ -332,12 +337,12 @@ │ ├── closing_loc: (32,12)-(32,13) = "]" │ └── block: ∅ ├── @ ArrayNode (location: (34,0)-(35,1)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 0) │ ├── opening_loc: (34,0)-(34,1) = "[" │ └── closing_loc: (35,0)-(35,1) = "]" ├── @ CallNode (location: (37,0)-(37,13)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (37,0)-(37,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -380,7 +385,7 @@ │ ├── closing_loc: (37,12)-(37,13) = "]" │ └── block: ∅ ├── @ CallNode (location: (39,0)-(39,19)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ CallNode (location: (39,0)-(39,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -433,6 +438,7 @@ │ ├── closing_loc: (39,12)-(39,13) = "]" │ └── block: ∅ ├── @ MultiWriteNode (location: (41,0)-(41,21)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ IndexTargetNode (location: (41,0)-(41,6)) │ │ │ ├── flags: attribute_write @@ -453,7 +459,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ IntegerNode (location: (41,4)-(41,5)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 0 │ │ │ ├── closing_loc: (41,5)-(41,6) = "]" │ │ │ └── block: ∅ @@ -476,7 +482,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (41,12)-(41,13)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 0 │ │ ├── closing_loc: (41,13)-(41,14) = "]" │ │ └── block: ∅ @@ -487,18 +493,18 @@ │ ├── operator_loc: (41,15)-(41,16) = "=" │ └── value: │ @ ArrayNode (location: (41,17)-(41,21)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (41,17)-(41,18)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (41,20)-(41,21)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: ∅ │ └── closing_loc: ∅ ├── @ CallNode (location: (43,0)-(43,19)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (43,0)-(43,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -564,7 +570,7 @@ │ ├── closing_loc: (43,18)-(43,19) = "]" │ └── block: ∅ ├── @ CallNode (location: (45,0)-(45,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (45,0)-(45,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -597,7 +603,7 @@ │ ├── closing_loc: (45,7)-(45,8) = "]" │ └── block: ∅ ├── @ CallNode (location: (47,0)-(47,14)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ CallNode (location: (47,0)-(47,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -640,14 +646,16 @@ │ ├── closing_loc: (47,7)-(47,8) = "]" │ └── block: ∅ ├── @ ArrayNode (location: (49,0)-(49,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 1) │ │ └── @ KeywordHashNode (location: (49,1)-(49,5)) │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocSplatNode (location: (49,1)-(49,5)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ HashNode (location: (49,3)-(49,5)) + │ │ │ ├── flags: static_literal │ │ │ ├── opening_loc: (49,3)-(49,4) = "{" │ │ │ ├── elements: (length: 0) │ │ │ └── closing_loc: (49,4)-(49,5) = "}" @@ -655,12 +663,13 @@ │ ├── opening_loc: (49,0)-(49,1) = "[" │ └── closing_loc: (49,5)-(49,6) = "]" ├── @ ArrayNode (location: (51,0)-(51,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 1) │ │ └── @ KeywordHashNode (location: (51,1)-(51,5)) │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocSplatNode (location: (51,1)-(51,5)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ CallNode (location: (51,3)-(51,5)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -676,15 +685,16 @@ │ ├── opening_loc: (51,0)-(51,1) = "[" │ └── closing_loc: (51,5)-(51,6) = "]" ├── @ ArrayNode (location: (53,0)-(53,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (53,1)-(53,2)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ KeywordHashNode (location: (53,4)-(53,8)) │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocSplatNode (location: (53,4)-(53,8)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ CallNode (location: (53,6)-(53,8)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -700,15 +710,16 @@ │ ├── opening_loc: (53,0)-(53,1) = "[" │ └── closing_loc: (53,8)-(53,9) = "]" ├── @ ArrayNode (location: (55,0)-(55,21)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (55,1)-(55,2)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ KeywordHashNode (location: (55,4)-(55,20)) │ │ ├── flags: ∅ │ │ └── elements: (length: 3) │ │ ├── @ AssocSplatNode (location: (55,4)-(55,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── value: │ │ │ │ @ CallNode (location: (55,6)-(55,8)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -722,13 +733,16 @@ │ │ │ │ └── block: ∅ │ │ │ └── operator_loc: (55,4)-(55,6) = "**" │ │ ├── @ AssocSplatNode (location: (55,10)-(55,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── value: │ │ │ │ @ HashNode (location: (55,12)-(55,14)) + │ │ │ │ ├── flags: static_literal │ │ │ │ ├── opening_loc: (55,12)-(55,13) = "{" │ │ │ │ ├── elements: (length: 0) │ │ │ │ └── closing_loc: (55,13)-(55,14) = "}" │ │ │ └── operator_loc: (55,10)-(55,12) = "**" │ │ └── @ AssocSplatNode (location: (55,16)-(55,20)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ CallNode (location: (55,18)-(55,20)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -744,12 +758,13 @@ │ ├── opening_loc: (55,0)-(55,1) = "[" │ └── closing_loc: (55,20)-(55,21) = "]" ├── @ ArrayNode (location: (57,0)-(59,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 1) │ │ └── @ KeywordHashNode (location: (58,2)-(58,12)) │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (58,2)-(58,12)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ CallNode (location: (58,2)-(58,5)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -776,22 +791,22 @@ │ ├── opening_loc: (57,0)-(57,1) = "[" │ └── closing_loc: (59,0)-(59,1) = "]" ├── @ ArrayNode (location: (62,0)-(62,17)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 3) │ │ ├── @ SymbolNode (location: (62,3)-(62,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (62,3)-(62,6) = "one" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "one" │ │ ├── @ SymbolNode (location: (62,7)-(62,10)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (62,7)-(62,10) = "two" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "two" │ │ └── @ SymbolNode (location: (62,11)-(62,16)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (62,11)-(62,16) = "three" │ │ ├── closing_loc: ∅ @@ -799,7 +814,7 @@ │ ├── opening_loc: (62,0)-(62,3) = "%i#" │ └── closing_loc: (62,16)-(62,17) = "#" ├── @ ArrayNode (location: (64,0)-(64,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 3) │ │ ├── @ StringNode (location: (64,3)-(64,6)) │ │ │ ├── flags: ∅ @@ -822,28 +837,28 @@ │ ├── opening_loc: (64,0)-(64,3) = "%w#" │ └── closing_loc: (64,16)-(64,17) = "#" ├── @ XStringNode (location: (66,0)-(66,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (66,0)-(66,3) = "%x#" │ ├── content_loc: (66,3)-(66,16) = "one two three" │ ├── closing_loc: (66,16)-(66,17) = "#" │ └── unescaped: "one two three" ├── @ ArrayNode (location: (69,0)-(69,17)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 3) │ │ ├── @ SymbolNode (location: (69,3)-(69,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (69,3)-(69,6) = "one" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "one" │ │ ├── @ SymbolNode (location: (69,7)-(69,10)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (69,7)-(69,10) = "two" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "two" │ │ └── @ SymbolNode (location: (69,11)-(69,16)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (69,11)-(69,16) = "three" │ │ ├── closing_loc: ∅ @@ -851,7 +866,7 @@ │ ├── opening_loc: (69,0)-(69,3) = "%i@" │ └── closing_loc: (69,16)-(69,17) = "@" ├── @ ArrayNode (location: (71,0)-(71,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 3) │ │ ├── @ StringNode (location: (71,3)-(71,6)) │ │ │ ├── flags: ∅ @@ -874,28 +889,28 @@ │ ├── opening_loc: (71,0)-(71,3) = "%w@" │ └── closing_loc: (71,16)-(71,17) = "@" ├── @ XStringNode (location: (73,0)-(73,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (73,0)-(73,3) = "%x@" │ ├── content_loc: (73,3)-(73,16) = "one two three" │ ├── closing_loc: (73,16)-(73,17) = "@" │ └── unescaped: "one two three" ├── @ ArrayNode (location: (76,0)-(76,17)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 3) │ │ ├── @ SymbolNode (location: (76,3)-(76,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (76,3)-(76,6) = "one" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "one" │ │ ├── @ SymbolNode (location: (76,7)-(76,10)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (76,7)-(76,10) = "two" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "two" │ │ └── @ SymbolNode (location: (76,11)-(76,16)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (76,11)-(76,16) = "three" │ │ ├── closing_loc: ∅ @@ -903,7 +918,7 @@ │ ├── opening_loc: (76,0)-(76,3) = "%i{" │ └── closing_loc: (76,16)-(76,17) = "}" ├── @ ArrayNode (location: (78,0)-(78,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 3) │ │ ├── @ StringNode (location: (78,3)-(78,6)) │ │ │ ├── flags: ∅ @@ -926,13 +941,13 @@ │ ├── opening_loc: (78,0)-(78,3) = "%w{" │ └── closing_loc: (78,16)-(78,17) = "}" ├── @ XStringNode (location: (80,0)-(80,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (80,0)-(80,3) = "%x{" │ ├── content_loc: (80,3)-(80,16) = "one two three" │ ├── closing_loc: (80,16)-(80,17) = "}" │ └── unescaped: "one two three" ├── @ ArrayNode (location: (82,0)-(82,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 1) │ │ └── @ StringNode (location: (82,3)-(82,6)) │ │ ├── flags: ∅ @@ -943,7 +958,7 @@ │ ├── opening_loc: (82,0)-(82,3) = "%w[" │ └── closing_loc: (82,6)-(82,7) = "]" ├── @ IndexOperatorWriteNode (location: (84,0)-(84,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (84,0)-(84,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -964,10 +979,10 @@ │ ├── binary_operator_loc: (84,6)-(84,8) = "+=" │ └── value: │ @ IntegerNode (location: (84,9)-(84,10)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ IndexOrWriteNode (location: (86,0)-(86,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (86,0)-(86,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -987,10 +1002,10 @@ │ ├── operator_loc: (86,6)-(86,9) = "||=" │ └── value: │ @ IntegerNode (location: (86,10)-(86,11)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ IndexAndWriteNode (location: (88,0)-(88,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (88,0)-(88,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1010,10 +1025,10 @@ │ ├── operator_loc: (88,6)-(88,9) = "&&=" │ └── value: │ @ IntegerNode (location: (88,10)-(88,11)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ IndexOperatorWriteNode (location: (90,0)-(90,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (90,0)-(90,7)) │ │ ├── flags: ∅ @@ -1044,10 +1059,10 @@ │ ├── binary_operator_loc: (90,10)-(90,12) = "+=" │ └── value: │ @ IntegerNode (location: (90,13)-(90,14)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ IndexOrWriteNode (location: (92,0)-(92,15)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (92,0)-(92,7)) │ │ ├── flags: ∅ @@ -1077,10 +1092,10 @@ │ ├── operator_loc: (92,10)-(92,13) = "||=" │ └── value: │ @ IntegerNode (location: (92,14)-(92,15)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ IndexAndWriteNode (location: (94,0)-(94,15)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (94,0)-(94,7)) │ │ ├── flags: ∅ @@ -1110,10 +1125,10 @@ │ ├── operator_loc: (94,10)-(94,13) = "&&=" │ └── value: │ @ IntegerNode (location: (94,14)-(94,15)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ IndexOperatorWriteNode (location: (96,0)-(96,13)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (96,0)-(96,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1147,10 +1162,10 @@ │ ├── binary_operator_loc: (96,9)-(96,11) = "+=" │ └── value: │ @ IntegerNode (location: (96,12)-(96,13)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ IndexOrWriteNode (location: (98,0)-(98,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (98,0)-(98,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1183,10 +1198,10 @@ │ ├── operator_loc: (98,9)-(98,12) = "||=" │ └── value: │ @ IntegerNode (location: (98,13)-(98,14)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ IndexAndWriteNode (location: (100,0)-(100,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (100,0)-(100,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1219,10 +1234,10 @@ │ ├── operator_loc: (100,9)-(100,12) = "&&=" │ └── value: │ @ IntegerNode (location: (100,13)-(100,14)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ IndexOperatorWriteNode (location: (102,0)-(102,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (102,0)-(102,7)) │ │ ├── flags: ∅ @@ -1266,10 +1281,10 @@ │ ├── binary_operator_loc: (102,13)-(102,15) = "+=" │ └── value: │ @ IntegerNode (location: (102,16)-(102,17)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ IndexOrWriteNode (location: (104,0)-(104,18)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (104,0)-(104,7)) │ │ ├── flags: ∅ @@ -1312,10 +1327,10 @@ │ ├── operator_loc: (104,13)-(104,16) = "||=" │ └── value: │ @ IntegerNode (location: (104,17)-(104,18)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ IndexAndWriteNode (location: (106,0)-(106,18)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (106,0)-(106,7)) │ │ ├── flags: ∅ @@ -1358,14 +1373,16 @@ │ ├── operator_loc: (106,13)-(106,16) = "&&=" │ └── value: │ @ IntegerNode (location: (106,17)-(106,18)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ DefNode (location: (108,0)-(108,19)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (108,4)-(108,5) = "f" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (108,6)-(108,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -1380,9 +1397,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (108,10)-(108,14)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (108,10)-(108,14)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (108,10)-(108,11)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -1403,6 +1421,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ SplatNode (location: (108,12)-(108,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (108,12)-(108,13) = "*" │ │ │ └── expression: ∅ │ │ ├── closing_loc: (108,13)-(108,14) = "]" @@ -1415,11 +1434,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (108,16)-(108,19) = "end" ├── @ DefNode (location: (110,0)-(110,22)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (110,4)-(110,5) = "f" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (110,6)-(110,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -1434,9 +1455,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (110,10)-(110,17)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (110,10)-(110,17)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (110,10)-(110,11)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -1457,9 +1479,10 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 2) │ │ │ ├── @ IntegerNode (location: (110,12)-(110,13)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── @ SplatNode (location: (110,15)-(110,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (110,15)-(110,16) = "*" │ │ │ └── expression: ∅ │ │ ├── closing_loc: (110,16)-(110,17) = "]" @@ -1472,11 +1495,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (110,19)-(110,22) = "end" ├── @ DefNode (location: (112,0)-(112,23)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (112,4)-(112,5) = "f" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (112,6)-(112,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -1491,9 +1516,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (112,10)-(112,18)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (112,10)-(112,18)) - │ │ ├── flags: attribute_write + │ │ ├── flags: newline, attribute_write │ │ ├── receiver: │ │ │ @ CallNode (location: (112,10)-(112,11)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -1514,10 +1540,11 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 2) │ │ │ ├── @ SplatNode (location: (112,12)-(112,13)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (112,12)-(112,13) = "*" │ │ │ │ └── expression: ∅ │ │ │ └── @ IntegerNode (location: (112,17)-(112,18)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: (112,13)-(112,14) = "]" │ │ └── block: ∅ @@ -1529,11 +1556,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (112,20)-(112,23) = "end" ├── @ DefNode (location: (114,0)-(114,26)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (114,4)-(114,5) = "f" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (114,6)-(114,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -1548,9 +1577,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (114,10)-(114,21)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (114,10)-(114,21)) - │ │ ├── flags: attribute_write + │ │ ├── flags: newline, attribute_write │ │ ├── receiver: │ │ │ @ CallNode (location: (114,10)-(114,11)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -1571,13 +1601,14 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 3) │ │ │ ├── @ IntegerNode (location: (114,12)-(114,13)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── @ SplatNode (location: (114,15)-(114,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (114,15)-(114,16) = "*" │ │ │ │ └── expression: ∅ │ │ │ └── @ IntegerNode (location: (114,20)-(114,21)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: (114,16)-(114,17) = "]" │ │ └── block: ∅ @@ -1589,11 +1620,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (114,23)-(114,26) = "end" ├── @ DefNode (location: (116,0)-(116,24)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (116,4)-(116,5) = "f" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (116,6)-(116,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -1608,9 +1641,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (116,10)-(116,19)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IndexOperatorWriteNode (location: (116,10)-(116,19)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (116,10)-(116,11)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -1629,6 +1663,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ SplatNode (location: (116,12)-(116,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (116,12)-(116,13) = "*" │ │ │ └── expression: ∅ │ │ ├── closing_loc: (116,13)-(116,14) = "]" @@ -1637,7 +1672,7 @@ │ │ ├── binary_operator_loc: (116,15)-(116,17) = "+=" │ │ └── value: │ │ @ IntegerNode (location: (116,18)-(116,19)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── locals: [] │ ├── def_keyword_loc: (116,0)-(116,3) = "def" @@ -1647,11 +1682,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (116,21)-(116,24) = "end" ├── @ DefNode (location: (118,0)-(118,28)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (118,4)-(118,5) = "f" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (118,6)-(118,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -1666,9 +1703,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (118,10)-(118,23)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IndexAndWriteNode (location: (118,10)-(118,23)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (118,10)-(118,11)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -1687,9 +1725,10 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 2) │ │ │ ├── @ IntegerNode (location: (118,12)-(118,13)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── @ SplatNode (location: (118,15)-(118,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (118,15)-(118,16) = "*" │ │ │ └── expression: ∅ │ │ ├── closing_loc: (118,16)-(118,17) = "]" @@ -1697,7 +1736,7 @@ │ │ ├── operator_loc: (118,18)-(118,21) = "&&=" │ │ └── value: │ │ @ IntegerNode (location: (118,22)-(118,23)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── locals: [] │ ├── def_keyword_loc: (118,0)-(118,3) = "def" @@ -1707,11 +1746,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (118,25)-(118,28) = "end" ├── @ DefNode (location: (120,0)-(120,29)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (120,4)-(120,5) = "f" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (120,6)-(120,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -1726,10 +1767,12 @@ │ │ └── block: ∅ │ ├── body: │ │ @ BeginNode (location: (120,0)-(120,29)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (120,10)-(120,24)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (120,10)-(120,16) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: (120,17)-(120,19) = "=>" @@ -1753,6 +1796,7 @@ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── arguments: (length: 1) │ │ │ │ │ └── @ SplatNode (location: (120,22)-(120,23)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── operator_loc: (120,22)-(120,23) = "*" │ │ │ │ │ └── expression: ∅ │ │ │ │ ├── closing_loc: (120,23)-(120,24) = "]" @@ -1770,11 +1814,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (120,26)-(120,29) = "end" └── @ DefNode (location: (122,0)-(122,32)) + ├── flags: newline ├── name: :f ├── name_loc: (122,4)-(122,5) = "f" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (122,6)-(122,7)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: @@ -1789,10 +1835,12 @@ │ └── block: ∅ ├── body: │ @ BeginNode (location: (122,0)-(122,32)) + │ ├── flags: ∅ │ ├── begin_keyword_loc: ∅ │ ├── statements: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (122,10)-(122,27)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (122,10)-(122,16) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: (122,17)-(122,19) = "=>" @@ -1816,9 +1864,10 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 2) │ │ │ │ ├── @ IntegerNode (location: (122,22)-(122,23)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ └── @ SplatNode (location: (122,25)-(122,26)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (122,25)-(122,26) = "*" │ │ │ │ └── expression: ∅ │ │ │ ├── closing_loc: (122,26)-(122,27) = "]" diff --git a/test/prism/snapshots/begin_ensure.txt b/test/prism/snapshots/begin_ensure.txt index 9af9b9e573..2f127cd11f 100644 --- a/test/prism/snapshots/begin_ensure.txt +++ b/test/prism/snapshots/begin_ensure.txt @@ -1,15 +1,19 @@ @ ProgramNode (location: (1,0)-(21,15)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(21,15)) + ├── flags: ∅ └── body: (length: 5) ├── @ BeginNode (location: (1,0)-(5,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (1,0)-(1,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (2,0)-(2,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (2,0)-(2,1)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -22,12 +26,14 @@ │ ├── else_clause: ∅ │ ├── ensure_clause: │ │ @ EnsureNode (location: (3,0)-(5,3)) + │ │ ├── flags: ∅ │ │ ├── ensure_keyword_loc: (3,0)-(3,6) = "ensure" │ │ ├── statements: │ │ │ @ StatementsNode (location: (4,0)-(4,1)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (4,0)-(4,1)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -39,12 +45,14 @@ │ │ └── end_keyword_loc: (5,0)-(5,3) = "end" │ └── end_keyword_loc: (5,0)-(5,3) = "end" ├── @ BeginNode (location: (7,0)-(7,24)) + │ ├── flags: newline │ ├── begin_keyword_loc: (7,0)-(7,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (7,7)-(7,8)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (7,7)-(7,8)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -57,12 +65,14 @@ │ ├── else_clause: ∅ │ ├── ensure_clause: │ │ @ EnsureNode (location: (7,10)-(7,24)) + │ │ ├── flags: ∅ │ │ ├── ensure_keyword_loc: (7,10)-(7,16) = "ensure" │ │ ├── statements: │ │ │ @ StatementsNode (location: (7,18)-(7,19)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (7,18)-(7,19)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -74,12 +84,14 @@ │ │ └── end_keyword_loc: (7,21)-(7,24) = "end" │ └── end_keyword_loc: (7,21)-(7,24) = "end" ├── @ BeginNode (location: (9,0)-(11,4)) + │ ├── flags: newline │ ├── begin_keyword_loc: (9,0)-(9,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (9,6)-(9,7)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (9,6)-(9,7)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -92,12 +104,14 @@ │ ├── else_clause: ∅ │ ├── ensure_clause: │ │ @ EnsureNode (location: (10,1)-(11,4)) + │ │ ├── flags: ∅ │ │ ├── ensure_keyword_loc: (10,1)-(10,7) = "ensure" │ │ ├── statements: │ │ │ @ StatementsNode (location: (10,8)-(10,9)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (10,8)-(10,9)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -109,12 +123,14 @@ │ │ └── end_keyword_loc: (11,1)-(11,4) = "end" │ └── end_keyword_loc: (11,1)-(11,4) = "end" ├── @ BeginNode (location: (13,0)-(13,22)) + │ ├── flags: newline │ ├── begin_keyword_loc: (13,0)-(13,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (13,6)-(13,7)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (13,6)-(13,7)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -127,12 +143,14 @@ │ ├── else_clause: ∅ │ ├── ensure_clause: │ │ @ EnsureNode (location: (13,9)-(13,22)) + │ │ ├── flags: ∅ │ │ ├── ensure_keyword_loc: (13,9)-(13,15) = "ensure" │ │ ├── statements: │ │ │ @ StatementsNode (location: (13,16)-(13,17)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (13,16)-(13,17)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -144,20 +162,24 @@ │ │ └── end_keyword_loc: (13,19)-(13,22) = "end" │ └── end_keyword_loc: (13,19)-(13,22) = "end" └── @ BeginNode (location: (15,0)-(21,15)) + ├── flags: newline ├── begin_keyword_loc: (15,0)-(15,5) = "begin" ├── statements: │ @ StatementsNode (location: (15,6)-(21,11)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ BeginNode (location: (15,6)-(21,11)) + │ ├── flags: newline │ ├── begin_keyword_loc: (15,6)-(15,11) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (15,11)-(21,7)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (15,11)-(21,7)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ SymbolNode (location: (15,11)-(15,13)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (15,11)-(15,12) = ":" │ │ │ ├── value_loc: (15,12)-(15,13) = "s" │ │ │ ├── closing_loc: ∅ @@ -171,20 +193,24 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ BeginNode (location: (15,16)-(21,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── begin_keyword_loc: (15,16)-(15,21) = "begin" │ │ │ ├── statements: ∅ │ │ │ ├── rescue_clause: ∅ │ │ │ ├── else_clause: ∅ │ │ │ ├── ensure_clause: │ │ │ │ @ EnsureNode (location: (15,22)-(21,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── ensure_keyword_loc: (15,22)-(15,28) = "ensure" │ │ │ │ ├── statements: │ │ │ │ │ @ StatementsNode (location: (15,29)-(21,3)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ CallNode (location: (15,29)-(21,3)) - │ │ │ │ │ ├── flags: ∅ + │ │ │ │ │ ├── flags: newline │ │ │ │ │ ├── receiver: │ │ │ │ │ │ @ ConstantReadNode (location: (15,29)-(15,35)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── name: :Module │ │ │ │ │ ├── call_operator_loc: (15,35)-(15,36) = "." │ │ │ │ │ ├── name: :new @@ -194,31 +220,39 @@ │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── block: │ │ │ │ │ @ BlockNode (location: (15,40)-(21,3)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── locals: [] │ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ ├── body: │ │ │ │ │ │ @ StatementsNode (location: (16,2)-(20,5)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ │ └── @ BeginNode (location: (16,2)-(20,5)) + │ │ │ │ │ │ ├── flags: newline │ │ │ │ │ │ ├── begin_keyword_loc: (16,2)-(16,7) = "begin" │ │ │ │ │ │ ├── statements: │ │ │ │ │ │ │ @ StatementsNode (location: (17,4)-(17,9)) + │ │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ │ │ └── @ BreakNode (location: (17,4)-(17,9)) + │ │ │ │ │ │ │ ├── flags: newline │ │ │ │ │ │ │ ├── arguments: ∅ │ │ │ │ │ │ │ └── keyword_loc: (17,4)-(17,9) = "break" │ │ │ │ │ │ ├── rescue_clause: ∅ │ │ │ │ │ │ ├── else_clause: ∅ │ │ │ │ │ │ ├── ensure_clause: │ │ │ │ │ │ │ @ EnsureNode (location: (18,4)-(20,5)) + │ │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ │ ├── ensure_keyword_loc: (18,4)-(18,10) = "ensure" │ │ │ │ │ │ │ ├── statements: │ │ │ │ │ │ │ │ @ StatementsNode (location: (18,11)-(19,7)) + │ │ │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ │ │ │ └── @ CallNode (location: (18,11)-(19,7)) - │ │ │ │ │ │ │ │ ├── flags: ∅ + │ │ │ │ │ │ │ │ ├── flags: newline │ │ │ │ │ │ │ │ ├── receiver: │ │ │ │ │ │ │ │ │ @ ConstantReadNode (location: (18,11)-(18,17)) + │ │ │ │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ │ │ │ └── name: :Module │ │ │ │ │ │ │ │ ├── call_operator_loc: (18,17)-(18,18) = "." │ │ │ │ │ │ │ │ ├── name: :new @@ -228,6 +262,7 @@ │ │ │ │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ │ │ │ └── block: │ │ │ │ │ │ │ │ @ BlockNode (location: (18,22)-(19,7)) + │ │ │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ │ │ ├── locals: [] │ │ │ │ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ │ │ │ ├── body: ∅ diff --git a/test/prism/snapshots/begin_rescue.txt b/test/prism/snapshots/begin_rescue.txt index f624f85c07..087d7409e7 100644 --- a/test/prism/snapshots/begin_rescue.txt +++ b/test/prism/snapshots/begin_rescue.txt @@ -1,15 +1,19 @@ @ ProgramNode (location: (1,0)-(78,3)) +├── flags: ∅ ├── locals: [:ex] └── statements: @ StatementsNode (location: (1,0)-(78,3)) + ├── flags: ∅ └── body: (length: 17) ├── @ BeginNode (location: (1,0)-(1,33)) + │ ├── flags: newline │ ├── begin_keyword_loc: (1,0)-(1,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (1,7)-(1,8)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,7)-(1,8)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -20,15 +24,17 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (1,10)-(1,19)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (1,10)-(1,16) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (1,18)-(1,19)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (1,18)-(1,19)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -40,12 +46,14 @@ │ │ └── consequent: ∅ │ ├── else_clause: │ │ @ ElseNode (location: (1,21)-(1,33)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (1,21)-(1,25) = "else" │ │ ├── statements: │ │ │ @ StatementsNode (location: (1,27)-(1,28)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (1,27)-(1,28)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :c @@ -58,12 +66,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (1,30)-(1,33) = "end" ├── @ BeginNode (location: (3,0)-(3,44)) + │ ├── flags: newline │ ├── begin_keyword_loc: (3,0)-(3,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (3,7)-(3,8)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (3,7)-(3,8)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -74,15 +84,17 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (3,10)-(3,19)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (3,10)-(3,16) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (3,18)-(3,19)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (3,18)-(3,19)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -94,12 +106,14 @@ │ │ └── consequent: ∅ │ ├── else_clause: │ │ @ ElseNode (location: (3,21)-(3,36)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (3,21)-(3,25) = "else" │ │ ├── statements: │ │ │ @ StatementsNode (location: (3,27)-(3,28)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (3,27)-(3,28)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :c @@ -111,12 +125,14 @@ │ │ └── end_keyword_loc: (3,30)-(3,36) = "ensure" │ ├── ensure_clause: │ │ @ EnsureNode (location: (3,30)-(3,44)) + │ │ ├── flags: ∅ │ │ ├── ensure_keyword_loc: (3,30)-(3,36) = "ensure" │ │ ├── statements: │ │ │ @ StatementsNode (location: (3,38)-(3,39)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (3,38)-(3,39)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :d @@ -128,12 +144,14 @@ │ │ └── end_keyword_loc: (3,41)-(3,44) = "end" │ └── end_keyword_loc: (3,41)-(3,44) = "end" ├── @ BeginNode (location: (5,0)-(7,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (5,0)-(5,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (6,0)-(6,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (6,0)-(6,1)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -147,12 +165,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (7,0)-(7,3) = "end" ├── @ BeginNode (location: (9,0)-(9,13)) + │ ├── flags: newline │ ├── begin_keyword_loc: (9,0)-(9,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (9,7)-(9,8)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (9,7)-(9,8)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -166,12 +186,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (9,10)-(9,13) = "end" ├── @ BeginNode (location: (11,0)-(12,4)) + │ ├── flags: newline │ ├── begin_keyword_loc: (11,0)-(11,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (11,6)-(11,7)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (11,6)-(11,7)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -185,12 +207,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (12,1)-(12,4) = "end" ├── @ BeginNode (location: (14,0)-(14,12)) + │ ├── flags: newline │ ├── begin_keyword_loc: (14,0)-(14,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (14,6)-(14,7)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (14,6)-(14,7)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -204,12 +228,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (14,9)-(14,12) = "end" ├── @ BeginNode (location: (16,0)-(24,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (16,0)-(16,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (17,0)-(17,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (17,0)-(17,1)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -220,15 +246,17 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (18,0)-(23,1)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (18,0)-(18,6) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (19,0)-(19,1)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (19,0)-(19,1)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -239,15 +267,17 @@ │ │ │ └── block: ∅ │ │ └── consequent: │ │ @ RescueNode (location: (20,0)-(23,1)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (20,0)-(20,6) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (21,0)-(21,1)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (21,0)-(21,1)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :c @@ -258,15 +288,17 @@ │ │ │ └── block: ∅ │ │ └── consequent: │ │ @ RescueNode (location: (22,0)-(23,1)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (22,0)-(22,6) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (23,0)-(23,1)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (23,0)-(23,1)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :d @@ -280,12 +312,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (24,0)-(24,3) = "end" ├── @ BeginNode (location: (26,0)-(32,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (26,0)-(26,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (27,2)-(27,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (27,2)-(27,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -296,20 +330,24 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (28,0)-(31,3)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (28,0)-(28,6) = "rescue" │ │ ├── exceptions: (length: 1) │ │ │ └── @ ConstantReadNode (location: (28,7)-(28,16)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Exception │ │ ├── operator_loc: (28,17)-(28,19) = "=>" │ │ ├── reference: │ │ │ @ LocalVariableTargetNode (location: (28,20)-(28,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :ex │ │ │ └── depth: 0 │ │ ├── statements: │ │ │ @ StatementsNode (location: (29,2)-(29,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (29,2)-(29,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -320,22 +358,27 @@ │ │ │ └── block: ∅ │ │ └── consequent: │ │ @ RescueNode (location: (30,0)-(31,3)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (30,0)-(30,6) = "rescue" │ │ ├── exceptions: (length: 2) │ │ │ ├── @ ConstantReadNode (location: (30,7)-(30,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :AnotherException │ │ │ └── @ ConstantReadNode (location: (30,25)-(30,41)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :OneMoreException │ │ ├── operator_loc: (30,42)-(30,44) = "=>" │ │ ├── reference: │ │ │ @ LocalVariableTargetNode (location: (30,45)-(30,47)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :ex │ │ │ └── depth: 0 │ │ ├── statements: │ │ │ @ StatementsNode (location: (31,2)-(31,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (31,2)-(31,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :c @@ -349,12 +392,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (32,0)-(32,3) = "end" ├── @ BeginNode (location: (34,0)-(40,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (34,0)-(34,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (35,2)-(35,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (35,2)-(35,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -365,20 +410,24 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (36,0)-(37,3)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (36,0)-(36,6) = "rescue" │ │ ├── exceptions: (length: 1) │ │ │ └── @ ConstantReadNode (location: (36,7)-(36,16)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Exception │ │ ├── operator_loc: (36,17)-(36,19) = "=>" │ │ ├── reference: │ │ │ @ LocalVariableTargetNode (location: (36,20)-(36,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :ex │ │ │ └── depth: 0 │ │ ├── statements: │ │ │ @ StatementsNode (location: (37,2)-(37,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (37,2)-(37,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -391,12 +440,14 @@ │ ├── else_clause: ∅ │ ├── ensure_clause: │ │ @ EnsureNode (location: (38,0)-(40,3)) + │ │ ├── flags: ∅ │ │ ├── ensure_keyword_loc: (38,0)-(38,6) = "ensure" │ │ ├── statements: │ │ │ @ StatementsNode (location: (39,2)-(39,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (39,2)-(39,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -408,18 +459,20 @@ │ │ └── end_keyword_loc: (40,0)-(40,3) = "end" │ └── end_keyword_loc: (40,0)-(40,3) = "end" ├── @ StringNode (location: (42,0)-(42,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (42,0)-(42,2) = "%!" │ ├── content_loc: (42,2)-(42,5) = "abc" │ ├── closing_loc: (42,5)-(42,6) = "!" │ └── unescaped: "abc" ├── @ BeginNode (location: (44,0)-(48,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (44,0)-(44,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (45,0)-(45,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (45,0)-(45,1)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -430,15 +483,17 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (46,0)-(47,1)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (46,0)-(46,6) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (47,0)-(47,1)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (47,0)-(47,1)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -452,12 +507,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (48,0)-(48,3) = "end" ├── @ BeginNode (location: (50,0)-(50,20)) + │ ├── flags: newline │ ├── begin_keyword_loc: (50,0)-(50,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (50,6)-(50,7)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (50,6)-(50,7)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -468,15 +525,17 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (50,8)-(50,16)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (50,8)-(50,14) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (50,15)-(50,16)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (50,15)-(50,16)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -490,12 +549,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (50,17)-(50,20) = "end" ├── @ BeginNode (location: (52,0)-(54,5)) + │ ├── flags: newline │ ├── begin_keyword_loc: (52,0)-(52,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (53,0)-(53,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (53,0)-(53,1)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -506,15 +567,17 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (53,2)-(54,1)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (53,2)-(53,8) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (54,0)-(54,1)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (54,0)-(54,1)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -528,12 +591,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (54,2)-(54,5) = "end" ├── @ BeginNode (location: (56,0)-(60,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (56,0)-(56,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (57,0)-(57,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (57,0)-(57,1)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -544,17 +609,20 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (58,0)-(59,1)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (58,0)-(58,6) = "rescue" │ │ ├── exceptions: (length: 1) │ │ │ └── @ ConstantReadNode (location: (58,7)-(58,16)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Exception │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (59,0)-(59,1)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (59,0)-(59,1)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -568,12 +636,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (60,0)-(60,3) = "end" ├── @ BeginNode (location: (62,0)-(66,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (62,0)-(62,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (63,0)-(63,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (63,0)-(63,1)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -584,19 +654,23 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (64,0)-(65,1)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (64,0)-(64,6) = "rescue" │ │ ├── exceptions: (length: 2) │ │ │ ├── @ ConstantReadNode (location: (64,7)-(64,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :Exception │ │ │ └── @ ConstantReadNode (location: (64,18)-(64,33)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :CustomException │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (65,0)-(65,1)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (65,0)-(65,1)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -610,12 +684,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (66,0)-(66,3) = "end" ├── @ BeginNode (location: (68,0)-(72,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (68,0)-(68,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (69,2)-(69,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (69,2)-(69,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -626,22 +702,27 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (70,0)-(71,3)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (70,0)-(70,6) = "rescue" │ │ ├── exceptions: (length: 2) │ │ │ ├── @ ConstantReadNode (location: (70,7)-(70,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :Exception │ │ │ └── @ ConstantReadNode (location: (70,18)-(70,33)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :CustomException │ │ ├── operator_loc: (70,34)-(70,36) = "=>" │ │ ├── reference: │ │ │ @ LocalVariableTargetNode (location: (70,37)-(70,39)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :ex │ │ │ └── depth: 0 │ │ ├── statements: │ │ │ @ StatementsNode (location: (71,2)-(71,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (71,2)-(71,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -655,12 +736,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (72,0)-(72,3) = "end" └── @ BeginNode (location: (74,0)-(78,3)) + ├── flags: newline ├── begin_keyword_loc: (74,0)-(74,5) = "begin" ├── statements: │ @ StatementsNode (location: (75,2)-(75,3)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (75,2)-(75,3)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a @@ -671,20 +754,24 @@ │ └── block: ∅ ├── rescue_clause: │ @ RescueNode (location: (76,0)-(77,3)) + │ ├── flags: ∅ │ ├── keyword_loc: (76,0)-(76,6) = "rescue" │ ├── exceptions: (length: 1) │ │ └── @ ConstantReadNode (location: (76,7)-(76,16)) + │ │ ├── flags: ∅ │ │ └── name: :Exception │ ├── operator_loc: (76,17)-(76,19) = "=>" │ ├── reference: │ │ @ LocalVariableTargetNode (location: (76,20)-(76,22)) + │ │ ├── flags: ∅ │ │ ├── name: :ex │ │ └── depth: 0 │ ├── statements: │ │ @ StatementsNode (location: (77,2)-(77,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (77,2)-(77,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :b diff --git a/test/prism/snapshots/blocks.txt b/test/prism/snapshots/blocks.txt index 1c996ebd09..933de3e7be 100644 --- a/test/prism/snapshots/blocks.txt +++ b/test/prism/snapshots/blocks.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(54,17)) +├── flags: ∅ ├── locals: [:fork] └── statements: @ StatementsNode (location: (1,0)-(54,17)) + ├── flags: ∅ └── body: (length: 20) ├── @ CallNode (location: (1,0)-(1,16)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (1,0)-(1,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -37,13 +39,15 @@ │ ├── closing_loc: (1,7)-(1,8) = "]" │ └── block: │ @ BlockNode (location: (1,9)-(1,16)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,11)-(1,14)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,11)-(1,14)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :baz @@ -55,7 +59,7 @@ │ ├── opening_loc: (1,9)-(1,10) = "{" │ └── closing_loc: (1,15)-(1,16) = "}" ├── @ CallNode (location: (3,0)-(5,3)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (3,0)-(3,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -88,13 +92,15 @@ │ ├── closing_loc: (3,7)-(3,8) = "]" │ └── block: │ @ BlockNode (location: (3,9)-(5,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (4,0)-(4,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (4,0)-(4,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :baz @@ -106,7 +112,7 @@ │ ├── opening_loc: (3,9)-(3,11) = "do" │ └── closing_loc: (5,0)-(5,3) = "end" ├── @ CallNode (location: (7,0)-(7,35)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (7,0)-(7,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -127,16 +133,19 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (7,9)-(7,10)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 0 │ ├── closing_loc: (7,10)-(7,11) = ")" │ └── block: │ @ BlockNode (location: (7,12)-(7,35)) + │ ├── flags: ∅ │ ├── locals: [:x, :memo] │ ├── parameters: │ │ @ BlockParametersNode (location: (7,14)-(7,23)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (7,15)-(7,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 2) │ │ │ │ ├── @ RequiredParameterNode (location: (7,15)-(7,16)) │ │ │ │ │ ├── flags: ∅ @@ -155,12 +164,15 @@ │ │ └── closing_loc: (7,22)-(7,23) = "|" │ ├── body: │ │ @ StatementsNode (location: (7,24)-(7,33)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableOperatorWriteNode (location: (7,24)-(7,33)) + │ │ ├── flags: newline │ │ ├── name_loc: (7,24)-(7,28) = "memo" │ │ ├── binary_operator_loc: (7,29)-(7,31) = "+=" │ │ ├── value: │ │ │ @ LocalVariableReadNode (location: (7,32)-(7,33)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :x │ │ │ └── depth: 0 │ │ ├── name: :memo @@ -169,7 +181,7 @@ │ ├── opening_loc: (7,12)-(7,13) = "{" │ └── closing_loc: (7,34)-(7,35) = "}" ├── @ CallNode (location: (9,0)-(9,10)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -179,13 +191,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (9,4)-(9,10)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ │ ├── opening_loc: (9,4)-(9,6) = "do" │ └── closing_loc: (9,7)-(9,10) = "end" ├── @ CallNode (location: (11,0)-(11,21)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -206,11 +219,13 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ ParenthesesNode (location: (11,9)-(11,21)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (11,10)-(11,20)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (11,10)-(11,20)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :baz @@ -220,6 +235,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: │ │ │ @ BlockNode (location: (11,14)-(11,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [] │ │ │ ├── parameters: ∅ │ │ │ ├── body: ∅ @@ -230,7 +246,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (13,0)-(13,14)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -253,13 +269,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (13,8)-(13,14)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ │ ├── opening_loc: (13,8)-(13,10) = "do" │ └── closing_loc: (13,11)-(13,14) = "end" ├── @ CallNode (location: (15,0)-(15,18)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -295,13 +312,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (15,12)-(15,18)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ │ ├── opening_loc: (15,12)-(15,14) = "do" │ └── closing_loc: (15,15)-(15,18) = "end" ├── @ CallNode (location: (17,0)-(18,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -311,11 +329,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (17,4)-(18,3)) + │ ├── flags: ∅ │ ├── locals: [:a] │ ├── parameters: │ │ @ BlockParametersNode (location: (17,7)-(17,17)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (17,8)-(17,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 0) │ │ │ ├── optionals: (length: 1) │ │ │ │ └── @ OptionalParameterNode (location: (17,8)-(17,16)) @@ -346,7 +367,7 @@ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── arguments: (length: 1) │ │ │ │ │ └── @ IntegerNode (location: (17,14)-(17,15)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── closing_loc: (17,15)-(17,16) = "]" │ │ │ │ └── block: ∅ @@ -362,7 +383,7 @@ │ ├── opening_loc: (17,4)-(17,6) = "do" │ └── closing_loc: (18,0)-(18,3) = "end" ├── @ CallNode (location: (20,0)-(22,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -372,14 +393,17 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (20,4)-(22,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (20,4)-(22,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (21,0)-(21,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (21,0)-(21,6) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ @@ -392,7 +416,7 @@ │ ├── opening_loc: (20,4)-(20,6) = "do" │ └── closing_loc: (22,0)-(22,3) = "end" ├── @ CallNode (location: (24,0)-(29,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -402,13 +426,15 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (24,4)-(29,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (25,2)-(28,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (25,2)-(28,5)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -418,13 +444,15 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (25,6)-(28,5)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (26,4)-(27,7)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (26,4)-(27,7)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :baz @@ -434,6 +462,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: │ │ │ @ BlockNode (location: (26,8)-(27,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [] │ │ │ ├── parameters: ∅ │ │ │ ├── body: ∅ @@ -444,7 +473,7 @@ │ ├── opening_loc: (24,4)-(24,6) = "do" │ └── closing_loc: (29,0)-(29,3) = "end" ├── @ CallNode (location: (31,0)-(31,16)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (31,0)-(31,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -477,13 +506,15 @@ │ ├── closing_loc: (31,7)-(31,8) = "]" │ └── block: │ @ BlockNode (location: (31,9)-(31,16)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (31,11)-(31,14)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (31,11)-(31,14)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :baz @@ -495,7 +526,7 @@ │ ├── opening_loc: (31,9)-(31,10) = "{" │ └── closing_loc: (31,15)-(31,16) = "}" ├── @ CallNode (location: (33,0)-(33,24)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -505,11 +536,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (33,4)-(33,24)) + │ ├── flags: ∅ │ ├── locals: [:x, :y, :z] │ ├── parameters: │ │ @ BlockParametersNode (location: (33,6)-(33,20)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (33,7)-(33,19)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (33,7)-(33,8)) │ │ │ │ ├── flags: ∅ @@ -522,7 +556,7 @@ │ │ │ │ ├── operator_loc: (33,12)-(33,13) = "=" │ │ │ │ └── value: │ │ │ │ @ IntegerNode (location: (33,14)-(33,15)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ ├── rest: ∅ │ │ │ ├── posts: (length: 0) @@ -538,14 +572,16 @@ │ │ └── closing_loc: (33,19)-(33,20) = "|" │ ├── body: │ │ @ StatementsNode (location: (33,21)-(33,22)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (33,21)-(33,22)) + │ │ ├── flags: newline │ │ ├── name: :x │ │ └── depth: 0 │ ├── opening_loc: (33,4)-(33,5) = "{" │ └── closing_loc: (33,23)-(33,24) = "}" ├── @ CallNode (location: (35,0)-(35,11)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -555,11 +591,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (35,4)-(35,11)) + │ ├── flags: ∅ │ ├── locals: [:x] │ ├── parameters: │ │ @ BlockParametersNode (location: (35,6)-(35,9)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (35,7)-(35,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (35,7)-(35,8)) │ │ │ │ ├── flags: ∅ @@ -577,16 +616,17 @@ │ ├── opening_loc: (35,4)-(35,5) = "{" │ └── closing_loc: (35,10)-(35,11) = "}" ├── @ LocalVariableWriteNode (location: (37,0)-(37,8)) + │ ├── flags: newline │ ├── name: :fork │ ├── depth: 0 │ ├── name_loc: (37,0)-(37,4) = "fork" │ ├── value: │ │ @ IntegerNode (location: (37,7)-(37,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (37,5)-(37,6) = "=" ├── @ CallNode (location: (38,0)-(39,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :fork @@ -596,11 +636,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (38,5)-(39,3)) + │ ├── flags: ∅ │ ├── locals: [:a] │ ├── parameters: │ │ @ BlockParametersNode (location: (38,8)-(38,11)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (38,9)-(38,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (38,9)-(38,10)) │ │ │ │ ├── flags: ∅ @@ -618,7 +661,7 @@ │ ├── opening_loc: (38,5)-(38,7) = "do" │ └── closing_loc: (39,0)-(39,3) = "end" ├── @ CallNode (location: (41,0)-(41,12)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :fork @@ -628,11 +671,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (41,5)-(41,12)) + │ ├── flags: ∅ │ ├── locals: [:a] │ ├── parameters: │ │ @ BlockParametersNode (location: (41,7)-(41,10)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (41,8)-(41,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (41,8)-(41,9)) │ │ │ │ ├── flags: ∅ @@ -650,7 +696,7 @@ │ ├── opening_loc: (41,5)-(41,6) = "{" │ └── closing_loc: (41,11)-(41,12) = "}" ├── @ CallNode (location: (43,0)-(44,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :C @@ -660,13 +706,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (43,2)-(44,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ │ ├── opening_loc: (43,2)-(43,4) = "do" │ └── closing_loc: (44,0)-(44,3) = "end" ├── @ CallNode (location: (46,0)-(46,4)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :C @@ -676,13 +723,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (46,2)-(46,4)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ │ ├── opening_loc: (46,2)-(46,3) = "{" │ └── closing_loc: (46,3)-(46,4) = "}" ├── @ CallNode (location: (48,0)-(52,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -703,11 +751,14 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (48,11)-(52,1)) + │ │ ├── flags: ∅ │ │ ├── locals: [:a, :b] │ │ ├── parameters: │ │ │ @ BlockParametersNode (location: (48,13)-(51,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── parameters: │ │ │ │ @ ParametersNode (location: (49,2)-(50,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── requireds: (length: 0) │ │ │ │ ├── optionals: (length: 0) │ │ │ │ ├── rest: ∅ @@ -719,7 +770,7 @@ │ │ │ │ │ │ ├── name_loc: (49,2)-(49,4) = "a:" │ │ │ │ │ │ └── value: │ │ │ │ │ │ @ IntegerNode (location: (49,5)-(49,6)) - │ │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ │ └── value: 1 │ │ │ │ │ └── @ OptionalKeywordParameterNode (location: (50,2)-(50,6)) │ │ │ │ │ ├── flags: ∅ @@ -727,7 +778,7 @@ │ │ │ │ │ ├── name_loc: (50,2)-(50,4) = "b:" │ │ │ │ │ └── value: │ │ │ │ │ @ IntegerNode (location: (50,5)-(50,6)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 2 │ │ │ │ ├── keyword_rest: ∅ │ │ │ │ └── block: ∅ @@ -740,7 +791,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ CallNode (location: (54,0)-(54,17)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :foo @@ -750,11 +801,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (54,4)-(54,17)) + ├── flags: ∅ ├── locals: [:bar] ├── parameters: │ @ BlockParametersNode (location: (54,7)-(54,13)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (54,8)-(54,12)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (54,8)-(54,11)) │ │ │ ├── flags: ∅ @@ -762,6 +816,7 @@ │ │ ├── optionals: (length: 0) │ │ ├── rest: │ │ │ @ ImplicitRestNode (location: (54,11)-(54,12)) + │ │ │ └── flags: ∅ │ │ ├── posts: (length: 0) │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: ∅ diff --git a/test/prism/snapshots/boolean_operators.txt b/test/prism/snapshots/boolean_operators.txt index 3bf33430c9..bde70d6509 100644 --- a/test/prism/snapshots/boolean_operators.txt +++ b/test/prism/snapshots/boolean_operators.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(5,7)) +├── flags: ∅ ├── locals: [:a] └── statements: @ StatementsNode (location: (1,0)-(5,7)) + ├── flags: ∅ └── body: (length: 3) ├── @ LocalVariableAndWriteNode (location: (1,0)-(1,7)) + │ ├── flags: newline │ ├── name_loc: (1,0)-(1,1) = "a" │ ├── operator_loc: (1,2)-(1,5) = "&&=" │ ├── value: @@ -20,6 +23,7 @@ │ ├── name: :a │ └── depth: 0 ├── @ LocalVariableOperatorWriteNode (location: (3,0)-(3,6)) + │ ├── flags: newline │ ├── name_loc: (3,0)-(3,1) = "a" │ ├── binary_operator_loc: (3,2)-(3,4) = "+=" │ ├── value: @@ -37,6 +41,7 @@ │ ├── binary_operator: :+ │ └── depth: 0 └── @ LocalVariableOrWriteNode (location: (5,0)-(5,7)) + ├── flags: newline ├── name_loc: (5,0)-(5,1) = "a" ├── operator_loc: (5,2)-(5,5) = "||=" ├── value: diff --git a/test/prism/snapshots/booleans.txt b/test/prism/snapshots/booleans.txt index 4731966243..47ce80217a 100644 --- a/test/prism/snapshots/booleans.txt +++ b/test/prism/snapshots/booleans.txt @@ -1,7 +1,11 @@ @ ProgramNode (location: (1,0)-(3,4)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,4)) + ├── flags: ∅ └── body: (length: 2) ├── @ FalseNode (location: (1,0)-(1,5)) + │ └── flags: newline, static_literal └── @ TrueNode (location: (3,0)-(3,4)) + └── flags: newline, static_literal diff --git a/test/prism/snapshots/break.txt b/test/prism/snapshots/break.txt index 7d5bf5e69a..469b603f84 100644 --- a/test/prism/snapshots/break.txt +++ b/test/prism/snapshots/break.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(29,21)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(29,21)) + ├── flags: ∅ └── body: (length: 13) ├── @ CallNode (location: (1,0)-(1,13)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -14,18 +16,21 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,4)-(1,13)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,6)-(1,11)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ BreakNode (location: (1,6)-(1,11)) + │ │ ├── flags: newline │ │ ├── arguments: ∅ │ │ └── keyword_loc: (1,6)-(1,11) = "break" │ ├── opening_loc: (1,4)-(1,5) = "{" │ └── closing_loc: (1,12)-(1,13) = "}" ├── @ CallNode (location: (3,0)-(3,27)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -35,40 +40,49 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (3,4)-(3,27)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (3,6)-(3,25)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ BreakNode (location: (3,6)-(3,25)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (3,12)-(3,25)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 3) │ │ │ ├── @ ParenthesesNode (location: (3,12)-(3,15)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (3,13)-(3,14)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ IntegerNode (location: (3,13)-(3,14)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── opening_loc: (3,12)-(3,13) = "(" │ │ │ │ └── closing_loc: (3,14)-(3,15) = ")" │ │ │ ├── @ ParenthesesNode (location: (3,17)-(3,20)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (3,18)-(3,19)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ IntegerNode (location: (3,18)-(3,19)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ │ └── value: 2 │ │ │ │ ├── opening_loc: (3,17)-(3,18) = "(" │ │ │ │ └── closing_loc: (3,19)-(3,20) = ")" │ │ │ └── @ ParenthesesNode (location: (3,22)-(3,25)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (3,23)-(3,24)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (3,23)-(3,24)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ └── value: 3 │ │ │ ├── opening_loc: (3,22)-(3,23) = "(" │ │ │ └── closing_loc: (3,24)-(3,25) = ")" @@ -76,7 +90,7 @@ │ ├── opening_loc: (3,4)-(3,5) = "{" │ └── closing_loc: (3,26)-(3,27) = "}" ├── @ CallNode (location: (5,0)-(5,15)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -86,24 +100,27 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (5,4)-(5,15)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (5,6)-(5,13)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ BreakNode (location: (5,6)-(5,13)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (5,12)-(5,13)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (5,12)-(5,13)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── keyword_loc: (5,6)-(5,11) = "break" │ ├── opening_loc: (5,4)-(5,5) = "{" │ └── closing_loc: (5,14)-(5,15) = "}" ├── @ CallNode (location: (7,0)-(8,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -113,30 +130,33 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (7,4)-(8,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (7,6)-(8,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ BreakNode (location: (7,6)-(8,1)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (7,12)-(8,1)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 3) │ │ │ ├── @ IntegerNode (location: (7,12)-(7,13)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── @ IntegerNode (location: (7,15)-(7,16)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── @ IntegerNode (location: (8,0)-(8,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ └── keyword_loc: (7,6)-(7,11) = "break" │ ├── opening_loc: (7,4)-(7,5) = "{" │ └── closing_loc: (8,2)-(8,3) = "}" ├── @ CallNode (location: (10,0)-(10,21)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -146,30 +166,33 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (10,4)-(10,21)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (10,6)-(10,19)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ BreakNode (location: (10,6)-(10,19)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (10,12)-(10,19)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 3) │ │ │ ├── @ IntegerNode (location: (10,12)-(10,13)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── @ IntegerNode (location: (10,15)-(10,16)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── @ IntegerNode (location: (10,18)-(10,19)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ └── keyword_loc: (10,6)-(10,11) = "break" │ ├── opening_loc: (10,4)-(10,5) = "{" │ └── closing_loc: (10,20)-(10,21) = "}" ├── @ CallNode (location: (12,0)-(12,23)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -179,27 +202,30 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (12,4)-(12,23)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (12,6)-(12,21)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ BreakNode (location: (12,6)-(12,21)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (12,12)-(12,21)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ArrayNode (location: (12,12)-(12,21)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 3) │ │ │ │ ├── @ IntegerNode (location: (12,13)-(12,14)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── @ IntegerNode (location: (12,16)-(12,17)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 2 │ │ │ │ └── @ IntegerNode (location: (12,19)-(12,20)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 3 │ │ │ ├── opening_loc: (12,12)-(12,13) = "[" │ │ │ └── closing_loc: (12,20)-(12,21) = "]" @@ -207,7 +233,7 @@ │ ├── opening_loc: (12,4)-(12,5) = "{" │ └── closing_loc: (12,22)-(12,23) = "}" ├── @ CallNode (location: (14,0)-(17,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -217,25 +243,30 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (14,4)-(17,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (14,6)-(17,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ BreakNode (location: (14,6)-(17,1)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (14,11)-(17,1)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ParenthesesNode (location: (14,11)-(17,1)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (15,2)-(16,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 2) │ │ │ │ ├── @ IntegerNode (location: (15,2)-(15,3)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ └── @ IntegerNode (location: (16,2)-(16,3)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ └── value: 2 │ │ │ ├── opening_loc: (14,11)-(14,12) = "(" │ │ │ └── closing_loc: (17,0)-(17,1) = ")" @@ -243,7 +274,7 @@ │ ├── opening_loc: (14,4)-(14,5) = "{" │ └── closing_loc: (17,2)-(17,3) = "}" ├── @ CallNode (location: (19,0)-(19,15)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -253,17 +284,21 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (19,4)-(19,15)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (19,6)-(19,13)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ BreakNode (location: (19,6)-(19,13)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (19,11)-(19,13)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ParenthesesNode (location: (19,11)-(19,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: ∅ │ │ │ ├── opening_loc: (19,11)-(19,12) = "(" │ │ │ └── closing_loc: (19,12)-(19,13) = ")" @@ -271,7 +306,7 @@ │ ├── opening_loc: (19,4)-(19,5) = "{" │ └── closing_loc: (19,14)-(19,15) = "}" ├── @ CallNode (location: (21,0)-(21,16)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -281,22 +316,27 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (21,4)-(21,16)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (21,6)-(21,14)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ BreakNode (location: (21,6)-(21,14)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (21,11)-(21,14)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ParenthesesNode (location: (21,11)-(21,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (21,12)-(21,13)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (21,12)-(21,13)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── opening_loc: (21,11)-(21,12) = "(" │ │ │ └── closing_loc: (21,13)-(21,14) = ")" @@ -304,7 +344,7 @@ │ ├── opening_loc: (21,4)-(21,5) = "{" │ └── closing_loc: (21,15)-(21,16) = "}" ├── @ CallNode (location: (23,0)-(23,22)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (23,0)-(23,16)) │ │ ├── flags: ignore_visibility @@ -317,18 +357,21 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (23,4)-(23,16)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (23,6)-(23,14)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ BreakNode (location: (23,6)-(23,14)) + │ │ │ ├── flags: newline │ │ │ ├── arguments: │ │ │ │ @ ArgumentsNode (location: (23,12)-(23,14)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ IntegerNode (location: (23,12)-(23,14)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 42 │ │ │ └── keyword_loc: (23,6)-(23,11) = "break" │ │ ├── opening_loc: (23,4)-(23,5) = "{" @@ -342,12 +385,12 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (23,20)-(23,22)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 42 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (25,0)-(25,23)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (25,0)-(25,17)) │ │ ├── flags: ignore_visibility @@ -360,11 +403,14 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (25,4)-(25,17)) + │ │ ├── flags: ∅ │ │ ├── locals: [:a] │ │ ├── parameters: │ │ │ @ BlockParametersNode (location: (25,6)-(25,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── parameters: │ │ │ │ @ ParametersNode (location: (25,7)-(25,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ └── @ RequiredParameterNode (location: (25,7)-(25,8)) │ │ │ │ │ ├── flags: ∅ @@ -380,8 +426,10 @@ │ │ │ └── closing_loc: (25,8)-(25,9) = "|" │ │ ├── body: │ │ │ @ StatementsNode (location: (25,10)-(25,15)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ BreakNode (location: (25,10)-(25,15)) + │ │ │ ├── flags: newline │ │ │ ├── arguments: ∅ │ │ │ └── keyword_loc: (25,10)-(25,15) = "break" │ │ ├── opening_loc: (25,4)-(25,5) = "{" @@ -395,16 +443,17 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (25,21)-(25,23)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 42 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ WhileNode (location: (27,0)-(27,21)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (27,0)-(27,5) = "while" │ ├── closing_loc: (27,18)-(27,21) = "end" │ ├── predicate: │ │ @ AndNode (location: (27,6)-(27,16)) + │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ CallNode (location: (27,6)-(27,7)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -418,16 +467,18 @@ │ │ │ └── block: ∅ │ │ ├── right: │ │ │ @ BreakNode (location: (27,11)-(27,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── arguments: ∅ │ │ │ └── keyword_loc: (27,11)-(27,16) = "break" │ │ └── operator_loc: (27,8)-(27,10) = "&&" │ └── statements: ∅ └── @ UntilNode (location: (29,0)-(29,21)) - ├── flags: ∅ + ├── flags: newline ├── keyword_loc: (29,0)-(29,5) = "until" ├── closing_loc: (29,18)-(29,21) = "end" ├── predicate: │ @ AndNode (location: (29,6)-(29,16)) + │ ├── flags: ∅ │ ├── left: │ │ @ CallNode (location: (29,6)-(29,7)) │ │ ├── flags: variable_call, ignore_visibility @@ -441,6 +492,7 @@ │ │ └── block: ∅ │ ├── right: │ │ @ BreakNode (location: (29,11)-(29,16)) + │ │ ├── flags: ∅ │ │ ├── arguments: ∅ │ │ └── keyword_loc: (29,11)-(29,16) = "break" │ └── operator_loc: (29,8)-(29,10) = "&&" diff --git a/test/prism/snapshots/case.txt b/test/prism/snapshots/case.txt index 417bf9492a..14a2f79e45 100644 --- a/test/prism/snapshots/case.txt +++ b/test/prism/snapshots/case.txt @@ -1,22 +1,26 @@ @ ProgramNode (location: (1,0)-(55,3)) +├── flags: ∅ ├── locals: [:b] └── statements: @ StatementsNode (location: (1,0)-(55,3)) + ├── flags: ∅ └── body: (length: 15) ├── @ CaseNode (location: (1,0)-(3,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (1,5)-(1,8)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,5)-(1,6) = ":" │ │ ├── value_loc: (1,6)-(1,8) = "hi" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "hi" │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (2,0)-(2,8)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (2,0)-(2,4) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ SymbolNode (location: (2,5)-(2,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (2,5)-(2,6) = ":" │ │ │ ├── value_loc: (2,6)-(2,8) = "hi" │ │ │ ├── closing_loc: ∅ @@ -27,19 +31,24 @@ │ ├── case_keyword_loc: (1,0)-(1,4) = "case" │ └── end_keyword_loc: (3,0)-(3,3) = "end" ├── @ CaseNode (location: (5,0)-(5,58)) + │ ├── flags: newline │ ├── predicate: │ │ @ TrueNode (location: (5,5)-(5,9)) + │ │ └── flags: static_literal │ ├── conditions: (length: 2) │ │ ├── @ WhenNode (location: (5,11)-(5,30)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (5,11)-(5,15) = "when" │ │ │ ├── conditions: (length: 1) │ │ │ │ └── @ TrueNode (location: (5,16)-(5,20)) + │ │ │ │ └── flags: static_literal │ │ │ ├── then_keyword_loc: ∅ │ │ │ └── statements: │ │ │ @ StatementsNode (location: (5,22)-(5,30)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (5,22)-(5,30)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :puts @@ -50,7 +59,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ SymbolNode (location: (5,27)-(5,30)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (5,27)-(5,28) = ":" │ │ │ │ ├── value_loc: (5,28)-(5,30) = "hi" │ │ │ │ ├── closing_loc: ∅ @@ -58,15 +67,18 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ WhenNode (location: (5,32)-(5,53)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (5,32)-(5,36) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ FalseNode (location: (5,37)-(5,42)) + │ │ │ └── flags: static_literal │ │ ├── then_keyword_loc: ∅ │ │ └── statements: │ │ @ StatementsNode (location: (5,44)-(5,53)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (5,44)-(5,53)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :puts @@ -77,7 +89,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ SymbolNode (location: (5,49)-(5,53)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (5,49)-(5,50) = ":" │ │ │ ├── value_loc: (5,50)-(5,53) = "bye" │ │ │ ├── closing_loc: ∅ @@ -88,12 +100,15 @@ │ ├── case_keyword_loc: (5,0)-(5,4) = "case" │ └── end_keyword_loc: (5,55)-(5,58) = "end" ├── @ CaseNode (location: (7,0)-(7,20)) + │ ├── flags: newline │ ├── predicate: ∅ │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (7,6)-(7,15)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (7,6)-(7,10) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ SplatNode (location: (7,11)-(7,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (7,11)-(7,12) = "*" │ │ │ └── expression: │ │ │ @ CallNode (location: (7,12)-(7,15)) @@ -112,19 +127,21 @@ │ ├── case_keyword_loc: (7,0)-(7,4) = "case" │ └── end_keyword_loc: (7,17)-(7,20) = "end" ├── @ CaseNode (location: (9,0)-(13,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (9,5)-(9,8)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (9,5)-(9,6) = ":" │ │ ├── value_loc: (9,6)-(9,8) = "hi" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "hi" │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (10,0)-(10,8)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (10,0)-(10,4) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ SymbolNode (location: (10,5)-(10,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (10,5)-(10,6) = ":" │ │ │ ├── value_loc: (10,6)-(10,8) = "hi" │ │ │ ├── closing_loc: ∅ @@ -133,12 +150,14 @@ │ │ └── statements: ∅ │ ├── consequent: │ │ @ ElseNode (location: (11,0)-(13,3)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (11,0)-(11,4) = "else" │ │ ├── statements: │ │ │ @ StatementsNode (location: (12,0)-(12,2)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ SymbolNode (location: (12,0)-(12,2)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (12,0)-(12,1) = ":" │ │ │ ├── value_loc: (12,1)-(12,2) = "b" │ │ │ ├── closing_loc: ∅ @@ -147,6 +166,7 @@ │ ├── case_keyword_loc: (9,0)-(9,4) = "case" │ └── end_keyword_loc: (13,0)-(13,3) = "end" ├── @ CaseNode (location: (15,0)-(15,36)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (15,5)-(15,9)) │ │ ├── flags: variable_call, ignore_visibility @@ -160,11 +180,14 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (15,11)-(15,31)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (15,11)-(15,15) = "when" │ │ ├── conditions: (length: 2) │ │ │ ├── @ ConstantReadNode (location: (15,16)-(15,22)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :FooBar │ │ │ └── @ ConstantReadNode (location: (15,24)-(15,31)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :BazBonk │ │ ├── then_keyword_loc: ∅ │ │ └── statements: ∅ @@ -172,9 +195,11 @@ │ ├── case_keyword_loc: (15,0)-(15,4) = "case" │ └── end_keyword_loc: (15,33)-(15,36) = "end" ├── @ CaseNode (location: (17,0)-(19,3)) + │ ├── flags: newline │ ├── predicate: ∅ │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (18,0)-(18,15)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (18,0)-(18,4) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ CallNode (location: (18,5)-(18,15)) @@ -216,9 +241,11 @@ │ ├── case_keyword_loc: (17,0)-(17,4) = "case" │ └── end_keyword_loc: (19,0)-(19,3) = "end" ├── @ CaseNode (location: (21,0)-(25,3)) + │ ├── flags: newline │ ├── predicate: ∅ │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (22,0)-(22,6)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (22,0)-(22,4) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ CallNode (location: (22,5)-(22,6)) @@ -235,12 +262,14 @@ │ │ └── statements: ∅ │ ├── consequent: │ │ @ ElseNode (location: (23,0)-(25,3)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (23,0)-(23,4) = "else" │ │ ├── statements: ∅ │ │ └── end_keyword_loc: (25,0)-(25,3) = "end" │ ├── case_keyword_loc: (21,0)-(21,4) = "case" │ └── end_keyword_loc: (25,0)-(25,3) = "end" ├── @ CaseNode (location: (27,0)-(30,6)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (27,5)-(27,9)) │ │ ├── flags: variable_call, ignore_visibility @@ -254,10 +283,11 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (28,3)-(28,10)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (28,3)-(28,7) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ SymbolNode (location: (28,8)-(28,10)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (28,8)-(28,9) = ":" │ │ │ ├── value_loc: (28,9)-(28,10) = "b" │ │ │ ├── closing_loc: ∅ @@ -266,19 +296,22 @@ │ │ └── statements: ∅ │ ├── consequent: │ │ @ ElseNode (location: (29,5)-(30,6)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (29,5)-(29,9) = "else" │ │ ├── statements: ∅ │ │ └── end_keyword_loc: (30,3)-(30,6) = "end" │ ├── case_keyword_loc: (27,0)-(27,4) = "case" │ └── end_keyword_loc: (30,3)-(30,6) = "end" ├── @ CaseNode (location: (32,0)-(32,25)) + │ ├── flags: newline │ ├── predicate: ∅ │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (32,14)-(32,20)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (32,14)-(32,18) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ IntegerNode (location: (32,19)-(32,20)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── then_keyword_loc: ∅ │ │ └── statements: ∅ @@ -286,23 +319,26 @@ │ ├── case_keyword_loc: (32,0)-(32,4) = "case" │ └── end_keyword_loc: (32,22)-(32,25) = "end" ├── @ CaseNode (location: (34,0)-(36,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ MatchPredicateNode (location: (34,5)-(34,11)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ IntegerNode (location: (34,5)-(34,6)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── pattern: │ │ │ @ IntegerNode (location: (34,10)-(34,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: (34,7)-(34,9) = "in" │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (35,0)-(35,6)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (35,0)-(35,4) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ IntegerNode (location: (35,5)-(35,6)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ ├── then_keyword_loc: ∅ │ │ └── statements: ∅ @@ -310,23 +346,26 @@ │ ├── case_keyword_loc: (34,0)-(34,4) = "case" │ └── end_keyword_loc: (36,0)-(36,3) = "end" ├── @ CaseNode (location: (38,0)-(38,24)) + │ ├── flags: newline │ ├── predicate: │ │ @ MatchPredicateNode (location: (38,5)-(38,11)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ IntegerNode (location: (38,5)-(38,6)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── pattern: │ │ │ @ IntegerNode (location: (38,10)-(38,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: (38,7)-(38,9) = "in" │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (38,13)-(38,19)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (38,13)-(38,17) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ IntegerNode (location: (38,18)-(38,19)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ ├── then_keyword_loc: ∅ │ │ └── statements: ∅ @@ -334,22 +373,25 @@ │ ├── case_keyword_loc: (38,0)-(38,4) = "case" │ └── end_keyword_loc: (38,21)-(38,24) = "end" ├── @ CaseMatchNode (location: (40,0)-(42,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ MatchPredicateNode (location: (40,5)-(40,11)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ IntegerNode (location: (40,5)-(40,6)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── pattern: │ │ │ @ IntegerNode (location: (40,10)-(40,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: (40,7)-(40,9) = "in" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (41,0)-(41,4)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IntegerNode (location: (41,3)-(41,4)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ ├── statements: ∅ │ │ ├── in_loc: (41,0)-(41,2) = "in" @@ -358,22 +400,25 @@ │ ├── case_keyword_loc: (40,0)-(40,4) = "case" │ └── end_keyword_loc: (42,0)-(42,3) = "end" ├── @ CaseMatchNode (location: (44,0)-(44,22)) + │ ├── flags: newline │ ├── predicate: │ │ @ MatchPredicateNode (location: (44,5)-(44,11)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ IntegerNode (location: (44,5)-(44,6)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── pattern: │ │ │ @ IntegerNode (location: (44,10)-(44,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: (44,7)-(44,9) = "in" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (44,13)-(44,17)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IntegerNode (location: (44,16)-(44,17)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ ├── statements: ∅ │ │ ├── in_loc: (44,13)-(44,15) = "in" @@ -382,6 +427,7 @@ │ ├── case_keyword_loc: (44,0)-(44,4) = "case" │ └── end_keyword_loc: (44,19)-(44,22) = "end" ├── @ CaseMatchNode (location: (46,0)-(49,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (46,5)-(46,6)) │ │ ├── flags: variable_call, ignore_visibility @@ -395,11 +441,14 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (47,0)-(48,3)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (47,3)-(47,15)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (47,5)-(47,7) = "if" │ │ │ ├── predicate: │ │ │ │ @ AndNode (location: (47,8)-(47,15)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── left: │ │ │ │ │ @ CallNode (location: (47,8)-(47,9)) │ │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -426,17 +475,20 @@ │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (47,3)-(47,4)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ LocalVariableTargetNode (location: (47,3)-(47,4)) + │ │ │ │ ├── flags: newline │ │ │ │ ├── name: :b │ │ │ │ └── depth: 0 │ │ │ ├── consequent: ∅ │ │ │ └── end_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (48,2)-(48,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (48,2)-(48,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :e @@ -451,10 +503,10 @@ │ ├── case_keyword_loc: (46,0)-(46,4) = "case" │ └── end_keyword_loc: (49,0)-(49,3) = "end" └── @ CallNode (location: (51,0)-(55,3)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (51,0)-(51,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: (51,1)-(51,2) = "." ├── name: :then @@ -464,24 +516,31 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (51,7)-(55,3)) + ├── flags: ∅ ├── locals: [:_1] ├── parameters: │ @ NumberedParametersNode (location: (51,7)-(55,3)) + │ ├── flags: ∅ │ └── maximum: 1 ├── body: │ @ StatementsNode (location: (52,2)-(54,5)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CaseMatchNode (location: (52,2)-(54,5)) + │ ├── flags: newline │ ├── predicate: │ │ @ IntegerNode (location: (52,7)-(52,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (53,2)-(53,8)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ PinnedVariableNode (location: (53,5)-(53,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── variable: │ │ │ │ @ LocalVariableReadNode (location: (53,6)-(53,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :_1 │ │ │ │ └── depth: 0 │ │ │ └── operator_loc: (53,5)-(53,6) = "^" diff --git a/test/prism/snapshots/classes.txt b/test/prism/snapshots/classes.txt index 4a36bd5cdc..6e30ba0389 100644 --- a/test/prism/snapshots/classes.txt +++ b/test/prism/snapshots/classes.txt @@ -1,46 +1,56 @@ @ ProgramNode (location: (1,0)-(35,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(35,3)) + ├── flags: ∅ └── body: (length: 14) ├── @ ClassNode (location: (1,0)-(1,17)) + │ ├── flags: newline │ ├── locals: [:a] │ ├── class_keyword_loc: (1,0)-(1,5) = "class" │ ├── constant_path: │ │ @ ConstantReadNode (location: (1,6)-(1,7)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── inheritance_operator_loc: ∅ │ ├── superclass: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,8)-(1,13)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableWriteNode (location: (1,8)-(1,13)) + │ │ ├── flags: newline │ │ ├── name: :a │ │ ├── depth: 0 │ │ ├── name_loc: (1,8)-(1,9) = "a" │ │ ├── value: │ │ │ @ IntegerNode (location: (1,12)-(1,13)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── operator_loc: (1,10)-(1,11) = "=" │ ├── end_keyword_loc: (1,14)-(1,17) = "end" │ └── name: :A ├── @ ClassNode (location: (3,0)-(3,20)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (3,0)-(3,5) = "class" │ ├── constant_path: │ │ @ ConstantReadNode (location: (3,6)-(3,7)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── inheritance_operator_loc: ∅ │ ├── superclass: ∅ │ ├── body: │ │ @ BeginNode (location: (3,0)-(3,20)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: ∅ │ │ ├── rescue_clause: ∅ │ │ ├── else_clause: ∅ │ │ ├── ensure_clause: │ │ │ @ EnsureNode (location: (3,9)-(3,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── ensure_keyword_loc: (3,9)-(3,15) = "ensure" │ │ │ ├── statements: ∅ │ │ │ └── end_keyword_loc: (3,17)-(3,20) = "end" @@ -48,19 +58,23 @@ │ ├── end_keyword_loc: (3,17)-(3,20) = "end" │ └── name: :A ├── @ ClassNode (location: (5,0)-(5,34)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (5,0)-(5,5) = "class" │ ├── constant_path: │ │ @ ConstantReadNode (location: (5,6)-(5,7)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── inheritance_operator_loc: ∅ │ ├── superclass: ∅ │ ├── body: │ │ @ BeginNode (location: (5,0)-(5,34)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (5,9)-(5,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (5,9)-(5,15) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ @@ -69,11 +83,13 @@ │ │ │ └── consequent: ∅ │ │ ├── else_clause: │ │ │ @ ElseNode (location: (5,17)-(5,29)) + │ │ │ ├── flags: ∅ │ │ │ ├── else_keyword_loc: (5,17)-(5,21) = "else" │ │ │ ├── statements: ∅ │ │ │ └── end_keyword_loc: (5,23)-(5,29) = "ensure" │ │ ├── ensure_clause: │ │ │ @ EnsureNode (location: (5,23)-(5,34)) + │ │ │ ├── flags: ∅ │ │ │ ├── ensure_keyword_loc: (5,23)-(5,29) = "ensure" │ │ │ ├── statements: ∅ │ │ │ └── end_keyword_loc: (5,31)-(5,34) = "end" @@ -81,30 +97,36 @@ │ ├── end_keyword_loc: (5,31)-(5,34) = "end" │ └── name: :A ├── @ ClassNode (location: (7,0)-(9,3)) + │ ├── flags: newline │ ├── locals: [:a] │ ├── class_keyword_loc: (7,0)-(7,5) = "class" │ ├── constant_path: │ │ @ ConstantReadNode (location: (7,6)-(7,7)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── inheritance_operator_loc: (7,8)-(7,9) = "<" │ ├── superclass: │ │ @ ConstantReadNode (location: (7,10)-(7,11)) + │ │ ├── flags: ∅ │ │ └── name: :B │ ├── body: │ │ @ StatementsNode (location: (8,0)-(8,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableWriteNode (location: (8,0)-(8,5)) + │ │ ├── flags: newline │ │ ├── name: :a │ │ ├── depth: 0 │ │ ├── name_loc: (8,0)-(8,1) = "a" │ │ ├── value: │ │ │ @ IntegerNode (location: (8,4)-(8,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── operator_loc: (8,2)-(8,3) = "=" │ ├── end_keyword_loc: (9,0)-(9,3) = "end" │ └── name: :A ├── @ SingletonClassNode (location: (11,0)-(12,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (11,0)-(11,5) = "class" │ ├── operator_loc: (11,6)-(11,8) = "<<" @@ -132,30 +154,37 @@ │ ├── body: ∅ │ └── end_keyword_loc: (12,0)-(12,3) = "end" ├── @ ClassNode (location: (14,0)-(14,40)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (14,0)-(14,5) = "class" │ ├── constant_path: │ │ @ ConstantReadNode (location: (14,6)-(14,7)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── inheritance_operator_loc: ∅ │ ├── superclass: ∅ │ ├── body: │ │ @ StatementsNode (location: (14,9)-(14,35)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SingletonClassNode (location: (14,9)-(14,35)) + │ │ ├── flags: newline │ │ ├── locals: [] │ │ ├── class_keyword_loc: (14,9)-(14,14) = "class" │ │ ├── operator_loc: (14,15)-(14,17) = "<<" │ │ ├── expression: │ │ │ @ SelfNode (location: (14,18)-(14,22)) + │ │ │ └── flags: ∅ │ │ ├── body: │ │ │ @ BeginNode (location: (14,9)-(14,35)) + │ │ │ ├── flags: ∅ │ │ │ ├── begin_keyword_loc: ∅ │ │ │ ├── statements: ∅ │ │ │ ├── rescue_clause: ∅ │ │ │ ├── else_clause: ∅ │ │ │ ├── ensure_clause: │ │ │ │ @ EnsureNode (location: (14,24)-(14,35)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── ensure_keyword_loc: (14,24)-(14,30) = "ensure" │ │ │ │ ├── statements: ∅ │ │ │ │ └── end_keyword_loc: (14,32)-(14,35) = "end" @@ -164,28 +193,35 @@ │ ├── end_keyword_loc: (14,37)-(14,40) = "end" │ └── name: :A ├── @ ClassNode (location: (16,0)-(16,54)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (16,0)-(16,5) = "class" │ ├── constant_path: │ │ @ ConstantReadNode (location: (16,6)-(16,7)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── inheritance_operator_loc: ∅ │ ├── superclass: ∅ │ ├── body: │ │ @ StatementsNode (location: (16,9)-(16,49)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SingletonClassNode (location: (16,9)-(16,49)) + │ │ ├── flags: newline │ │ ├── locals: [] │ │ ├── class_keyword_loc: (16,9)-(16,14) = "class" │ │ ├── operator_loc: (16,15)-(16,17) = "<<" │ │ ├── expression: │ │ │ @ SelfNode (location: (16,18)-(16,22)) + │ │ │ └── flags: ∅ │ │ ├── body: │ │ │ @ BeginNode (location: (16,9)-(16,49)) + │ │ │ ├── flags: ∅ │ │ │ ├── begin_keyword_loc: ∅ │ │ │ ├── statements: ∅ │ │ │ ├── rescue_clause: │ │ │ │ @ RescueNode (location: (16,24)-(16,30)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── keyword_loc: (16,24)-(16,30) = "rescue" │ │ │ │ ├── exceptions: (length: 0) │ │ │ │ ├── operator_loc: ∅ @@ -194,11 +230,13 @@ │ │ │ │ └── consequent: ∅ │ │ │ ├── else_clause: │ │ │ │ @ ElseNode (location: (16,32)-(16,44)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── else_keyword_loc: (16,32)-(16,36) = "else" │ │ │ │ ├── statements: ∅ │ │ │ │ └── end_keyword_loc: (16,38)-(16,44) = "ensure" │ │ │ ├── ensure_clause: │ │ │ │ @ EnsureNode (location: (16,38)-(16,49)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── ensure_keyword_loc: (16,38)-(16,44) = "ensure" │ │ │ │ ├── statements: ∅ │ │ │ │ └── end_keyword_loc: (16,46)-(16,49) = "end" @@ -207,6 +245,7 @@ │ ├── end_keyword_loc: (16,51)-(16,54) = "end" │ └── name: :A ├── @ SingletonClassNode (location: (18,0)-(19,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (18,0)-(18,5) = "class" │ ├── operator_loc: (18,6)-(18,8) = "<<" @@ -234,6 +273,7 @@ │ ├── body: ∅ │ └── end_keyword_loc: (19,0)-(19,3) = "end" ├── @ SingletonClassNode (location: (21,0)-(21,20)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (21,0)-(21,5) = "class" │ ├── operator_loc: (21,6)-(21,8) = "<<" @@ -261,35 +301,42 @@ │ ├── body: ∅ │ └── end_keyword_loc: (21,17)-(21,20) = "end" ├── @ SingletonClassNode (location: (23,0)-(24,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (23,0)-(23,5) = "class" │ ├── operator_loc: (23,6)-(23,8) = "<<" │ ├── expression: │ │ @ SelfNode (location: (23,9)-(23,13)) + │ │ └── flags: ∅ │ ├── body: ∅ │ └── end_keyword_loc: (24,0)-(24,3) = "end" ├── @ SingletonClassNode (location: (26,0)-(26,17)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (26,0)-(26,5) = "class" │ ├── operator_loc: (26,6)-(26,8) = "<<" │ ├── expression: │ │ @ SelfNode (location: (26,9)-(26,13)) + │ │ └── flags: ∅ │ ├── body: ∅ │ └── end_keyword_loc: (26,14)-(26,17) = "end" ├── @ SingletonClassNode (location: (28,0)-(30,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (28,0)-(28,5) = "class" │ ├── operator_loc: (28,6)-(28,8) = "<<" │ ├── expression: │ │ @ SelfNode (location: (28,9)-(28,13)) + │ │ └── flags: ∅ │ ├── body: │ │ @ StatementsNode (location: (29,0)-(29,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (29,0)-(29,5)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ IntegerNode (location: (29,0)-(29,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── call_operator_loc: ∅ │ │ ├── name: :+ @@ -300,25 +347,28 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (29,4)-(29,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ └── end_keyword_loc: (30,0)-(30,3) = "end" ├── @ SingletonClassNode (location: (32,0)-(32,23)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (32,0)-(32,5) = "class" │ ├── operator_loc: (32,6)-(32,8) = "<<" │ ├── expression: │ │ @ SelfNode (location: (32,9)-(32,13)) + │ │ └── flags: ∅ │ ├── body: │ │ @ StatementsNode (location: (32,14)-(32,19)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (32,14)-(32,19)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ IntegerNode (location: (32,14)-(32,15)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── call_operator_loc: ∅ │ │ ├── name: :+ @@ -329,16 +379,18 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (32,18)-(32,19)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ └── end_keyword_loc: (32,20)-(32,23) = "end" └── @ ClassNode (location: (34,0)-(35,3)) + ├── flags: newline ├── locals: [] ├── class_keyword_loc: (34,0)-(34,5) = "class" ├── constant_path: │ @ ConstantReadNode (location: (34,6)-(34,7)) + │ ├── flags: ∅ │ └── name: :A ├── inheritance_operator_loc: (34,8)-(34,9) = "<" ├── superclass: @@ -346,6 +398,7 @@ │ ├── flags: ∅ │ ├── receiver: │ │ @ ConstantReadNode (location: (34,10)-(34,11)) + │ │ ├── flags: ∅ │ │ └── name: :B │ ├── call_operator_loc: ∅ │ ├── name: :[] @@ -356,7 +409,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (34,12)-(34,13)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── closing_loc: (34,13)-(34,14) = "]" │ └── block: ∅ diff --git a/test/prism/snapshots/command_method_call.txt b/test/prism/snapshots/command_method_call.txt index 7fd6341304..2c0f44e52b 100644 --- a/test/prism/snapshots/command_method_call.txt +++ b/test/prism/snapshots/command_method_call.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(41,10)) +├── flags: ∅ ├── locals: [:foo, :bar] └── statements: @ StatementsNode (location: (1,0)-(41,10)) + ├── flags: ∅ └── body: (length: 21) ├── @ CallNode (location: (1,0)-(1,5)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -15,12 +17,12 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (1,4)-(1,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (3,0)-(3,9)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -42,13 +44,14 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (3,8)-(3,9)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ IfNode (location: (5,0)-(5,14)) + │ ├── flags: newline │ ├── if_keyword_loc: (5,6)-(5,8) = "if" │ ├── predicate: │ │ @ CallNode (location: (5,9)-(5,14)) @@ -63,16 +66,17 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (5,13)-(5,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (5,0)-(5,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (5,0)-(5,5)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :foo @@ -83,13 +87,14 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (5,4)-(5,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── consequent: ∅ │ └── end_keyword_loc: ∅ ├── @ UnlessNode (location: (7,0)-(7,18)) + │ ├── flags: newline │ ├── keyword_loc: (7,6)-(7,12) = "unless" │ ├── predicate: │ │ @ CallNode (location: (7,13)-(7,18)) @@ -104,16 +109,17 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (7,17)-(7,18)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (7,0)-(7,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (7,0)-(7,5)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :foo @@ -124,14 +130,14 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (7,4)-(7,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── consequent: ∅ │ └── end_keyword_loc: ∅ ├── @ WhileNode (location: (9,0)-(9,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (9,6)-(9,11) = "while" │ ├── closing_loc: ∅ │ ├── predicate: @@ -147,15 +153,16 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (9,16)-(9,17)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ └── statements: │ @ StatementsNode (location: (9,0)-(9,5)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (9,0)-(9,5)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -166,12 +173,12 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (9,4)-(9,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ UntilNode (location: (11,0)-(11,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (11,6)-(11,11) = "until" │ ├── closing_loc: ∅ │ ├── predicate: @@ -187,15 +194,16 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (11,16)-(11,17)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ └── statements: │ @ StatementsNode (location: (11,0)-(11,5)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (11,0)-(11,5)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -206,11 +214,12 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (11,4)-(11,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ RescueModifierNode (location: (13,0)-(13,18)) + │ ├── flags: newline │ ├── expression: │ │ @ CallNode (location: (13,0)-(13,5)) │ │ ├── flags: ignore_visibility @@ -224,7 +233,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (13,4)-(13,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ @@ -242,12 +251,12 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (13,17)-(13,18)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (15,0)-(15,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (15,0)-(15,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -279,13 +288,14 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (15,8)-(15,9)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── closing_loc: (15,9)-(15,10) = "]" │ └── block: ∅ ├── @ AndNode (location: (17,0)-(17,15)) + │ ├── flags: newline │ ├── left: │ │ @ CallNode (location: (17,0)-(17,5)) │ │ ├── flags: ignore_visibility @@ -299,7 +309,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (17,4)-(17,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ @@ -316,12 +326,13 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (17,14)-(17,15)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ └── operator_loc: (17,6)-(17,9) = "and" ├── @ OrNode (location: (19,0)-(19,14)) + │ ├── flags: newline │ ├── left: │ │ @ CallNode (location: (19,0)-(19,5)) │ │ ├── flags: ignore_visibility @@ -335,7 +346,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (19,4)-(19,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ @@ -352,13 +363,13 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (19,13)-(19,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ └── operator_loc: (19,6)-(19,8) = "or" ├── @ CallNode (location: (21,0)-(21,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (21,4)-(21,9)) │ │ ├── flags: ignore_visibility @@ -372,7 +383,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (21,8)-(21,9)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ @@ -384,11 +395,13 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ LocalVariableWriteNode (location: (23,0)-(23,17)) + │ ├── flags: newline │ ├── name: :foo │ ├── depth: 0 │ ├── name_loc: (23,0)-(23,3) = "foo" │ ├── value: │ │ @ LocalVariableWriteNode (location: (23,6)-(23,17)) + │ │ ├── flags: ∅ │ │ ├── name: :bar │ │ ├── depth: 0 │ │ ├── name_loc: (23,6)-(23,9) = "bar" @@ -405,22 +418,24 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ IntegerNode (location: (23,16)-(23,17)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── operator_loc: (23,10)-(23,11) = "=" │ └── operator_loc: (23,4)-(23,5) = "=" ├── @ DefNode (location: (25,0)-(25,15)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (25,4)-(25,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (25,10)-(25,15)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (25,10)-(25,15)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -431,7 +446,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (25,14)-(25,15)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ @@ -443,10 +458,10 @@ │ ├── equal_loc: (25,8)-(25,9) = "=" │ └── end_keyword_loc: ∅ ├── @ CallNode (location: (27,0)-(27,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IntegerNode (location: (27,0)-(27,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: (27,1)-(27,2) = "." │ ├── name: :foo @@ -457,18 +472,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (27,6)-(27,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (29,0)-(29,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (29,0)-(29,5)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ IntegerNode (location: (29,0)-(29,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── call_operator_loc: (29,1)-(29,2) = "." │ │ ├── name: :foo @@ -486,12 +501,12 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (29,10)-(29,11)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (31,0)-(31,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (31,0)-(31,8)) │ │ ├── flags: ∅ @@ -500,7 +515,7 @@ │ │ │ ├── flags: ∅ │ │ │ ├── receiver: │ │ │ │ @ IntegerNode (location: (31,0)-(31,1)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── call_operator_loc: (31,1)-(31,2) = "." │ │ │ ├── name: :foo @@ -518,7 +533,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (31,6)-(31,7)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: (31,7)-(31,8) = "]" │ │ └── block: ∅ @@ -531,18 +546,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (31,13)-(31,14)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (33,0)-(33,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (33,0)-(33,8)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ IntegerNode (location: (33,0)-(33,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── call_operator_loc: (33,1)-(33,2) = "." │ │ ├── name: :foo @@ -553,7 +568,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (33,6)-(33,7)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: (33,7)-(33,8) = ")" │ │ └── block: ∅ @@ -566,18 +581,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (33,13)-(33,14)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (35,0)-(35,15)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (35,0)-(35,9)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ IntegerNode (location: (35,0)-(35,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── call_operator_loc: (35,1)-(35,2) = "." │ │ ├── name: :foo @@ -587,9 +602,10 @@ │ │ ├── closing_loc: (35,8)-(35,9) = ")" │ │ └── block: │ │ @ BlockArgumentNode (location: (35,6)-(35,8)) + │ │ ├── flags: ∅ │ │ ├── expression: │ │ │ @ IntegerNode (location: (35,7)-(35,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: (35,6)-(35,7) = "&" │ ├── call_operator_loc: (35,9)-(35,10) = "." @@ -601,11 +617,12 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (35,14)-(35,15)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ AndNode (location: (37,0)-(37,17)) + │ ├── flags: newline │ ├── left: │ │ @ CallNode (location: (37,0)-(37,6)) │ │ ├── flags: ∅ @@ -622,7 +639,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ IntegerNode (location: (37,5)-(37,6)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ @@ -649,7 +666,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ IntegerNode (location: (37,16)-(37,17)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ @@ -662,6 +679,7 @@ │ │ └── block: ∅ │ └── operator_loc: (37,7)-(37,10) = "and" ├── @ OrNode (location: (39,0)-(39,16)) + │ ├── flags: newline │ ├── left: │ │ @ CallNode (location: (39,0)-(39,6)) │ │ ├── flags: ∅ @@ -678,7 +696,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ IntegerNode (location: (39,5)-(39,6)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ @@ -705,7 +723,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ IntegerNode (location: (39,15)-(39,16)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ @@ -718,7 +736,7 @@ │ │ └── block: ∅ │ └── operator_loc: (39,7)-(39,9) = "or" └── @ CallNode (location: (41,0)-(41,10)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (41,4)-(41,10)) │ ├── flags: ∅ @@ -735,7 +753,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (41,9)-(41,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ diff --git a/test/prism/snapshots/comments.txt b/test/prism/snapshots/comments.txt index b7088adcd5..66869bc2a9 100644 --- a/test/prism/snapshots/comments.txt +++ b/test/prism/snapshots/comments.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(24,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(24,5)) + ├── flags: ∅ └── body: (length: 9) ├── @ CallNode (location: (1,0)-(1,1)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a @@ -14,7 +16,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (3,0)-(3,1)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :b @@ -24,7 +26,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (5,0)-(5,1)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :c @@ -34,7 +36,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (6,0)-(6,1)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :d @@ -44,7 +46,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (8,0)-(10,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (8,0)-(8,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -64,7 +66,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (12,0)-(14,2)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (12,0)-(12,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -84,7 +86,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (16,0)-(17,2)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (16,0)-(16,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -104,7 +106,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (19,0)-(20,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (19,0)-(19,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -124,7 +126,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ CallNode (location: (22,0)-(24,5)) - ├── flags: safe_navigation + ├── flags: newline, safe_navigation ├── receiver: │ @ CallNode (location: (22,0)-(22,1)) │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/constants.txt b/test/prism/snapshots/constants.txt index 1251833663..3246ff80c3 100644 --- a/test/prism/snapshots/constants.txt +++ b/test/prism/snapshots/constants.txt @@ -1,20 +1,27 @@ @ ProgramNode (location: (1,0)-(184,10)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(184,10)) + ├── flags: ∅ └── body: (length: 90) ├── @ ConstantPathNode (location: (1,0)-(1,4)) + │ ├── flags: newline │ ├── parent: │ │ @ ConstantReadNode (location: (1,0)-(1,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── name: :B │ ├── delimiter_loc: (1,1)-(1,3) = "::" │ └── name_loc: (1,3)-(1,4) = "B" ├── @ ConstantPathNode (location: (3,0)-(3,7)) + │ ├── flags: newline │ ├── parent: │ │ @ ConstantPathNode (location: (3,0)-(3,4)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantReadNode (location: (3,0)-(3,1)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── name: :B │ │ ├── delimiter_loc: (3,1)-(3,3) = "::" @@ -23,6 +30,7 @@ │ ├── delimiter_loc: (3,4)-(3,6) = "::" │ └── name_loc: (3,6)-(3,7) = "C" ├── @ ConstantPathNode (location: (5,0)-(5,4)) + │ ├── flags: newline │ ├── parent: │ │ @ CallNode (location: (5,0)-(5,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -38,10 +46,13 @@ │ ├── delimiter_loc: (5,1)-(5,3) = "::" │ └── name_loc: (5,3)-(5,4) = "B" ├── @ ConstantPathWriteNode (location: (7,0)-(7,8)) + │ ├── flags: newline │ ├── target: │ │ @ ConstantPathNode (location: (7,0)-(7,4)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantReadNode (location: (7,0)-(7,1)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── name: :B │ │ ├── delimiter_loc: (7,1)-(7,3) = "::" @@ -49,20 +60,22 @@ │ ├── operator_loc: (7,5)-(7,6) = "=" │ └── value: │ @ IntegerNode (location: (7,7)-(7,8)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ ConstantWriteNode (location: (9,0)-(9,5)) + │ ├── flags: newline │ ├── name: :A │ ├── name_loc: (9,0)-(9,1) = "A" │ ├── value: │ │ @ IntegerNode (location: (9,4)-(9,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (9,2)-(9,3) = "=" ├── @ ConstantReadNode (location: (11,0)-(11,3)) + │ ├── flags: newline │ └── name: :ABC ├── @ CallNode (location: (13,0)-(13,5)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :Foo @@ -73,12 +86,12 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (13,4)-(13,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (15,0)-(15,8)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :Foo @@ -89,6 +102,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SplatNode (location: (15,4)-(15,8)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (15,4)-(15,5) = "*" │ │ └── expression: │ │ @ CallNode (location: (15,5)-(15,8)) @@ -104,7 +118,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (17,0)-(17,9)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :Foo @@ -118,6 +132,7 @@ │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocSplatNode (location: (17,4)-(17,9)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ CallNode (location: (17,6)-(17,9)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -133,7 +148,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (19,0)-(19,8)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :Foo @@ -143,6 +158,7 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockArgumentNode (location: (19,4)-(19,8)) + │ ├── flags: ∅ │ ├── expression: │ │ @ CallNode (location: (19,5)-(19,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -156,9 +172,10 @@ │ │ └── block: ∅ │ └── operator_loc: (19,4)-(19,5) = "&" ├── @ CallNode (location: (21,0)-(21,13)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (21,0)-(21,3)) + │ │ ├── flags: ∅ │ │ └── name: :Foo │ ├── call_operator_loc: (21,3)-(21,5) = "::" │ ├── name: :Bar @@ -169,6 +186,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SplatNode (location: (21,9)-(21,13)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (21,9)-(21,10) = "*" │ │ └── expression: │ │ @ CallNode (location: (21,10)-(21,13)) @@ -184,9 +202,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (23,0)-(23,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (23,0)-(23,3)) + │ │ ├── flags: ∅ │ │ └── name: :Foo │ ├── call_operator_loc: (23,3)-(23,5) = "::" │ ├── name: :Bar @@ -200,6 +219,7 @@ │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocSplatNode (location: (23,9)-(23,14)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ CallNode (location: (23,11)-(23,14)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -215,9 +235,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (25,0)-(25,13)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (25,0)-(25,3)) + │ │ ├── flags: ∅ │ │ └── name: :Foo │ ├── call_operator_loc: (25,3)-(25,5) = "::" │ ├── name: :Bar @@ -227,6 +248,7 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockArgumentNode (location: (25,9)-(25,13)) + │ ├── flags: ∅ │ ├── expression: │ │ @ CallNode (location: (25,10)-(25,13)) │ │ ├── flags: variable_call, ignore_visibility @@ -240,9 +262,10 @@ │ │ └── block: ∅ │ └── operator_loc: (25,9)-(25,10) = "&" ├── @ CallNode (location: (27,0)-(27,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantPathNode (location: (27,0)-(27,3)) + │ │ ├── flags: ∅ │ │ ├── parent: ∅ │ │ ├── name: :A │ │ ├── delimiter_loc: (27,0)-(27,2) = "::" @@ -255,8 +278,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ ConstantPathWriteNode (location: (29,0)-(29,7)) + │ ├── flags: newline │ ├── target: │ │ @ ConstantPathNode (location: (29,0)-(29,3)) + │ │ ├── flags: ∅ │ │ ├── parent: ∅ │ │ ├── name: :A │ │ ├── delimiter_loc: (29,0)-(29,2) = "::" @@ -264,13 +289,16 @@ │ ├── operator_loc: (29,4)-(29,5) = "=" │ └── value: │ @ IntegerNode (location: (29,6)-(29,7)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ ConstantPathWriteNode (location: (31,0)-(31,10)) + │ ├── flags: newline │ ├── target: │ │ @ ConstantPathNode (location: (31,0)-(31,6)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantPathNode (location: (31,0)-(31,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── parent: ∅ │ │ │ ├── name: :A │ │ │ ├── delimiter_loc: (31,0)-(31,2) = "::" @@ -281,11 +309,13 @@ │ ├── operator_loc: (31,7)-(31,8) = "=" │ └── value: │ @ IntegerNode (location: (31,9)-(31,10)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ ConstantPathNode (location: (33,0)-(33,6)) + │ ├── flags: newline │ ├── parent: │ │ @ ConstantPathNode (location: (33,0)-(33,3)) + │ │ ├── flags: ∅ │ │ ├── parent: ∅ │ │ ├── name: :A │ │ ├── delimiter_loc: (33,0)-(33,2) = "::" @@ -294,14 +324,16 @@ │ ├── delimiter_loc: (33,3)-(33,5) = "::" │ └── name_loc: (33,5)-(33,6) = "B" ├── @ ConstantPathNode (location: (35,0)-(35,3)) + │ ├── flags: newline │ ├── parent: ∅ │ ├── name: :A │ ├── delimiter_loc: (35,0)-(35,2) = "::" │ └── name_loc: (35,2)-(35,3) = "A" ├── @ CallNode (location: (37,0)-(37,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (37,0)-(37,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (37,1)-(37,3) = "::" │ ├── name: :false @@ -311,11 +343,13 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (39,0)-(39,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantPathNode (location: (39,0)-(39,4)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantReadNode (location: (39,0)-(39,1)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── name: :B │ │ ├── delimiter_loc: (39,1)-(39,3) = "::" @@ -328,9 +362,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (41,0)-(41,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (41,0)-(41,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (41,1)-(41,3) = "::" │ ├── name: :& @@ -340,9 +375,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (43,0)-(43,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (43,0)-(43,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (43,1)-(43,3) = "::" │ ├── name: :` @@ -352,9 +388,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (45,0)-(45,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (45,0)-(45,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (45,1)-(45,3) = "::" │ ├── name: :! @@ -364,9 +401,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (47,0)-(47,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (47,0)-(47,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (47,1)-(47,3) = "::" │ ├── name: :!= @@ -376,9 +414,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (49,0)-(49,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (49,0)-(49,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (49,1)-(49,3) = "::" │ ├── name: :^ @@ -388,9 +427,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (51,0)-(51,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (51,0)-(51,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (51,1)-(51,3) = "::" │ ├── name: :== @@ -400,9 +440,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (53,0)-(53,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (53,0)-(53,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (53,1)-(53,3) = "::" │ ├── name: :=== @@ -412,9 +453,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (55,0)-(55,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (55,0)-(55,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (55,1)-(55,3) = "::" │ ├── name: :=~ @@ -424,9 +466,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (57,0)-(57,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (57,0)-(57,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (57,1)-(57,3) = "::" │ ├── name: :> @@ -436,9 +479,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (59,0)-(59,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (59,0)-(59,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (59,1)-(59,3) = "::" │ ├── name: :>= @@ -448,9 +492,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (61,0)-(61,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (61,0)-(61,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (61,1)-(61,3) = "::" │ ├── name: :>> @@ -460,9 +505,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (63,0)-(63,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (63,0)-(63,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (63,1)-(63,3) = "::" │ ├── name: :<< @@ -472,16 +518,19 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ ConstantPathNode (location: (65,0)-(67,1)) + │ ├── flags: newline │ ├── parent: │ │ @ ConstantReadNode (location: (65,0)-(65,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── name: :C │ ├── delimiter_loc: (65,1)-(65,3) = "::" │ └── name_loc: (67,0)-(67,1) = "C" ├── @ CallNode (location: (69,0)-(69,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (69,0)-(69,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (69,1)-(69,3) = "::" │ ├── name: :alias @@ -491,9 +540,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (71,0)-(71,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (71,0)-(71,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (71,1)-(71,3) = "::" │ ├── name: :and @@ -503,9 +553,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (73,0)-(73,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (73,0)-(73,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (73,1)-(73,3) = "::" │ ├── name: :begin @@ -515,16 +566,19 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ ConstantPathNode (location: (75,0)-(75,8)) + │ ├── flags: newline │ ├── parent: │ │ @ ConstantReadNode (location: (75,0)-(75,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── name: :BEGIN │ ├── delimiter_loc: (75,1)-(75,3) = "::" │ └── name_loc: (75,3)-(75,8) = "BEGIN" ├── @ CallNode (location: (77,0)-(77,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (77,0)-(77,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (77,1)-(77,3) = "::" │ ├── name: :break @@ -534,9 +588,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (79,0)-(79,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (79,0)-(79,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (79,1)-(79,3) = "::" │ ├── name: :class @@ -546,9 +601,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (81,0)-(81,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (81,0)-(81,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (81,1)-(81,3) = "::" │ ├── name: :def @@ -558,9 +614,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (83,0)-(83,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (83,0)-(83,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (83,1)-(83,3) = "::" │ ├── name: :defined @@ -570,9 +627,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (85,0)-(85,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (85,0)-(85,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (85,1)-(85,3) = "::" │ ├── name: :do @@ -582,9 +640,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (87,0)-(87,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (87,0)-(87,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (87,1)-(87,3) = "::" │ ├── name: :else @@ -594,9 +653,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (89,0)-(89,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (89,0)-(89,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (89,1)-(89,3) = "::" │ ├── name: :elsif @@ -606,9 +666,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (91,0)-(91,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (91,0)-(91,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (91,1)-(91,3) = "::" │ ├── name: :end @@ -618,16 +679,19 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ ConstantPathNode (location: (93,0)-(93,6)) + │ ├── flags: newline │ ├── parent: │ │ @ ConstantReadNode (location: (93,0)-(93,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── name: :END │ ├── delimiter_loc: (93,1)-(93,3) = "::" │ └── name_loc: (93,3)-(93,6) = "END" ├── @ CallNode (location: (95,0)-(95,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (95,0)-(95,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (95,1)-(95,3) = "::" │ ├── name: :ensure @@ -637,9 +701,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (97,0)-(97,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (97,0)-(97,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (97,1)-(97,3) = "::" │ ├── name: :false @@ -649,9 +714,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (99,0)-(99,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (99,0)-(99,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (99,1)-(99,3) = "::" │ ├── name: :for @@ -661,9 +727,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (101,0)-(101,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (101,0)-(101,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (101,1)-(101,3) = "::" │ ├── name: :if @@ -673,9 +740,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (103,0)-(103,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (103,0)-(103,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (103,1)-(103,3) = "::" │ ├── name: :in @@ -685,9 +753,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (105,0)-(105,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (105,0)-(105,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (105,1)-(105,3) = "::" │ ├── name: :next @@ -697,9 +766,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (107,0)-(107,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (107,0)-(107,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (107,1)-(107,3) = "::" │ ├── name: :nil @@ -709,9 +779,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (109,0)-(109,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (109,0)-(109,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (109,1)-(109,3) = "::" │ ├── name: :not @@ -721,9 +792,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (111,0)-(111,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (111,0)-(111,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (111,1)-(111,3) = "::" │ ├── name: :or @@ -733,9 +805,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (113,0)-(113,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (113,0)-(113,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (113,1)-(113,3) = "::" │ ├── name: :redo @@ -745,9 +818,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (115,0)-(115,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (115,0)-(115,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (115,1)-(115,3) = "::" │ ├── name: :rescue @@ -757,9 +831,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (117,0)-(117,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (117,0)-(117,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (117,1)-(117,3) = "::" │ ├── name: :retry @@ -769,9 +844,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (119,0)-(119,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (119,0)-(119,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (119,1)-(119,3) = "::" │ ├── name: :return @@ -781,9 +857,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (121,0)-(121,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (121,0)-(121,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (121,1)-(121,3) = "::" │ ├── name: :self @@ -793,9 +870,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (123,0)-(123,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (123,0)-(123,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (123,1)-(123,3) = "::" │ ├── name: :super @@ -805,9 +883,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (125,0)-(125,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (125,0)-(125,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (125,1)-(125,3) = "::" │ ├── name: :then @@ -817,9 +896,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (127,0)-(127,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (127,0)-(127,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (127,1)-(127,3) = "::" │ ├── name: :true @@ -829,9 +909,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (129,0)-(129,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (129,0)-(129,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (129,1)-(129,3) = "::" │ ├── name: :undef @@ -841,9 +922,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (131,0)-(131,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (131,0)-(131,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (131,1)-(131,3) = "::" │ ├── name: :unless @@ -853,9 +935,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (133,0)-(133,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (133,0)-(133,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (133,1)-(133,3) = "::" │ ├── name: :until @@ -865,9 +948,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (135,0)-(135,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (135,0)-(135,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (135,1)-(135,3) = "::" │ ├── name: :when @@ -877,9 +961,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (137,0)-(137,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (137,0)-(137,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (137,1)-(137,3) = "::" │ ├── name: :while @@ -889,9 +974,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (139,0)-(139,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (139,0)-(139,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (139,1)-(139,3) = "::" │ ├── name: :yield @@ -901,9 +987,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (141,0)-(141,15)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (141,0)-(141,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (141,1)-(141,3) = "::" │ ├── name: :__ENCODING__ @@ -913,9 +1000,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (143,0)-(143,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (143,0)-(143,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (143,1)-(143,3) = "::" │ ├── name: :__FILE__ @@ -925,9 +1013,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (145,0)-(145,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (145,0)-(145,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (145,1)-(145,3) = "::" │ ├── name: :__LINE__ @@ -937,9 +1026,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (147,0)-(147,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (147,0)-(147,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (147,1)-(147,3) = "::" │ ├── name: :< @@ -949,9 +1039,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (149,0)-(149,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (149,0)-(149,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (149,1)-(149,3) = "::" │ ├── name: :<=> @@ -961,9 +1052,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (151,0)-(151,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (151,0)-(151,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (151,1)-(151,3) = "::" │ ├── name: :<< @@ -973,9 +1065,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (153,0)-(153,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (153,0)-(153,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (153,1)-(153,3) = "::" │ ├── name: :- @@ -985,9 +1078,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (155,0)-(155,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (155,0)-(155,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (155,1)-(155,3) = "::" │ ├── name: :% @@ -997,9 +1091,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (157,0)-(157,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (157,0)-(157,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (157,1)-(157,3) = "::" │ ├── name: :% @@ -1022,9 +1117,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (159,0)-(159,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (159,0)-(159,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (159,1)-(159,3) = "::" │ ├── name: :% @@ -1047,9 +1143,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (161,0)-(161,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (161,0)-(161,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (161,1)-(161,3) = "::" │ ├── name: :% @@ -1072,9 +1169,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (163,0)-(163,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (163,0)-(163,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (163,1)-(163,3) = "::" │ ├── name: :% @@ -1085,13 +1183,15 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ConstantReadNode (location: (163,4)-(163,5)) + │ │ ├── flags: ∅ │ │ └── name: :I │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (165,0)-(165,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (165,0)-(165,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (165,1)-(165,3) = "::" │ ├── name: :% @@ -1102,13 +1202,15 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ConstantReadNode (location: (165,4)-(165,5)) + │ │ ├── flags: ∅ │ │ └── name: :W │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (167,0)-(167,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (167,0)-(167,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (167,1)-(167,3) = "::" │ ├── name: :| @@ -1118,9 +1220,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (169,0)-(169,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (169,0)-(169,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (169,1)-(169,3) = "::" │ ├── name: :+ @@ -1130,9 +1233,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (171,0)-(171,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (171,0)-(171,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (171,1)-(171,3) = "::" │ ├── name: :/ @@ -1142,9 +1246,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (173,0)-(173,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (173,0)-(173,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (173,1)-(173,3) = "::" │ ├── name: :* @@ -1154,9 +1259,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (175,0)-(175,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (175,0)-(175,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (175,1)-(175,3) = "::" │ ├── name: :** @@ -1166,9 +1272,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (177,0)-(177,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (177,0)-(177,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (177,1)-(177,3) = "::" │ ├── name: :~ @@ -1178,11 +1285,13 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ ConstantPathNode (location: (179,0)-(180,1)) + │ ├── flags: newline │ ├── parent: │ │ @ CallNode (location: (179,0)-(179,4)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ ConstantReadNode (location: (179,0)-(179,1)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── call_operator_loc: (179,1)-(179,3) = "::" │ │ ├── name: :_ @@ -1195,12 +1304,13 @@ │ ├── delimiter_loc: (179,4)-(179,6) = "::" │ └── name_loc: (180,0)-(180,1) = "C" └── @ RangeNode (location: (182,0)-(184,10)) - ├── flags: ∅ + ├── flags: newline ├── left: │ @ CallNode (location: (182,0)-(182,4)) │ ├── flags: ∅ │ ├── receiver: │ │ @ ConstantReadNode (location: (182,0)-(182,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (182,1)-(182,3) = "::" │ ├── name: :_ @@ -1214,6 +1324,7 @@ │ ├── flags: ∅ │ ├── receiver: │ │ @ ConstantReadNode (location: (184,0)-(184,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (184,1)-(184,3) = "::" │ ├── name: :__END__ diff --git a/test/prism/snapshots/dash_heredocs.txt b/test/prism/snapshots/dash_heredocs.txt index bd2b05ea0d..1ca8b4f73d 100644 --- a/test/prism/snapshots/dash_heredocs.txt +++ b/test/prism/snapshots/dash_heredocs.txt @@ -1,16 +1,18 @@ @ ProgramNode (location: (1,0)-(57,11)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(57,11)) + ├── flags: ∅ └── body: (length: 13) ├── @ StringNode (location: (1,0)-(1,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (1,0)-(1,6) = "<<-EOF" │ ├── content_loc: (2,0)-(3,0) = " a\n" │ ├── closing_loc: (3,0)-(4,0) = "EOF\n" │ └── unescaped: " a\n" ├── @ CallNode (location: (5,0)-(5,20)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ StringNode (location: (5,0)-(5,8)) │ │ ├── flags: ∅ @@ -35,6 +37,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ InterpolatedXStringNode (location: (11,0)-(11,8)) + │ ├── flags: newline │ ├── opening_loc: (11,0)-(11,8) = "<<-`EOF`" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (12,0)-(13,0)) @@ -44,9 +47,11 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: " a\n" │ │ ├── @ EmbeddedStatementsNode (location: (13,0)-(13,4)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (13,0)-(13,2) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (13,2)-(13,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (13,2)-(13,3)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -67,31 +72,33 @@ │ │ └── unescaped: "\n" │ └── closing_loc: (14,0)-(15,0) = "EOF\n" ├── @ StringNode (location: (16,0)-(16,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (16,0)-(16,6) = "<<-EOF" │ ├── content_loc: (17,0)-(18,0) = " a\n" │ ├── closing_loc: (18,0)-(19,0) = "EOF\n" │ └── unescaped: " a\n" ├── @ StringNode (location: (20,0)-(20,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (20,0)-(20,6) = "<<-EOF" │ ├── content_loc: (21,0)-(23,0) = " a\n b\n" │ ├── closing_loc: (23,0)-(24,0) = " EOF\n" │ └── unescaped: " a\n b\n" ├── @ InterpolatedStringNode (location: (25,0)-(25,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (25,0)-(25,8) = "<<-\"EOF\"" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (26,0)-(27,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (26,0)-(27,0) = " a\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: " a\n" │ │ ├── @ EmbeddedStatementsNode (location: (27,0)-(27,4)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (27,0)-(27,2) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (27,2)-(27,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (27,2)-(27,3)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -105,26 +112,28 @@ │ │ │ │ └── block: ∅ │ │ │ └── closing_loc: (27,3)-(27,4) = "}" │ │ └── @ StringNode (location: (27,4)-(28,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (27,4)-(28,0) = "\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "\n" │ └── closing_loc: (28,0)-(29,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (30,0)-(30,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (30,0)-(30,6) = "<<-EOF" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (31,0)-(32,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (31,0)-(32,0) = " a\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: " a\n" │ │ ├── @ EmbeddedStatementsNode (location: (32,0)-(32,4)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (32,0)-(32,2) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (32,2)-(32,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (32,2)-(32,3)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -138,38 +147,38 @@ │ │ │ │ └── block: ∅ │ │ │ └── closing_loc: (32,3)-(32,4) = "}" │ │ └── @ StringNode (location: (32,4)-(33,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (32,4)-(33,0) = "\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "\n" │ └── closing_loc: (33,0)-(34,0) = "EOF\n" ├── @ StringNode (location: (35,0)-(35,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (35,0)-(35,2) = "%#" │ ├── content_loc: (35,2)-(35,5) = "abc" │ ├── closing_loc: (35,5)-(35,6) = "#" │ └── unescaped: "abc" ├── @ StringNode (location: (37,0)-(37,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (37,0)-(37,6) = "<<-EOF" │ ├── content_loc: (38,0)-(40,0) = " a\n b\n" │ ├── closing_loc: (40,0)-(41,0) = "EOF\n" │ └── unescaped: " a\n b\n" ├── @ StringNode (location: (42,0)-(42,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (42,0)-(42,5) = "<<-''" │ ├── content_loc: (43,0)-(43,0) = "" │ ├── closing_loc: (43,0)-(44,0) = "\n" │ └── unescaped: "" ├── @ StringNode (location: (45,0)-(45,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (45,0)-(45,8) = "<<-'EOF'" │ ├── content_loc: (46,0)-(47,0) = " a \#{1}\n" │ ├── closing_loc: (47,0)-(48,0) = "EOF\n" │ └── unescaped: " a \#{1}\n" ├── @ CallNode (location: (49,0)-(49,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ StringNode (location: (49,0)-(49,4)) │ │ ├── flags: ∅ @@ -190,22 +199,24 @@ │ │ ├── opening_loc: (49,7)-(49,11) = "<<-B" │ │ ├── parts: (length: 3) │ │ │ ├── @ StringNode (location: (52,0)-(53,2)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (52,0)-(53,2) = " b\n " │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: " b\n " │ │ │ ├── @ EmbeddedStatementsNode (location: (53,2)-(54,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── opening_loc: (53,2)-(53,4) = "\#{" │ │ │ │ ├── statements: │ │ │ │ │ @ StatementsNode (location: (53,4)-(53,5)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ IntegerNode (location: (53,4)-(53,5)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 2 │ │ │ │ └── closing_loc: (54,2)-(54,3) = "}" │ │ │ └── @ StringNode (location: (54,3)-(55,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (54,3)-(55,0) = "\n" │ │ │ ├── closing_loc: ∅ @@ -214,7 +225,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ CallNode (location: (57,0)-(57,11)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ StringNode (location: (57,0)-(57,4)) │ ├── flags: ∅ @@ -235,22 +246,24 @@ │ ├── opening_loc: (57,7)-(57,11) = "<<-B" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (60,0)-(61,2)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (60,0)-(61,2) = " b\n " │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: " b\n " │ │ ├── @ EmbeddedStatementsNode (location: (61,2)-(62,4)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (61,2)-(61,4) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (62,2)-(62,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (62,2)-(62,3)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── closing_loc: (62,3)-(62,4) = "}" │ │ └── @ StringNode (location: (62,4)-(63,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (62,4)-(63,0) = "\n" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/defined.txt b/test/prism/snapshots/defined.txt index c60173ff37..761c7b2ce7 100644 --- a/test/prism/snapshots/defined.txt +++ b/test/prism/snapshots/defined.txt @@ -1,37 +1,44 @@ @ ProgramNode (location: (1,0)-(10,1)) +├── flags: ∅ ├── locals: [:x] └── statements: @ StatementsNode (location: (1,0)-(10,1)) + ├── flags: ∅ └── body: (length: 5) ├── @ AndNode (location: (1,0)-(1,25)) + │ ├── flags: newline │ ├── left: │ │ @ DefinedNode (location: (1,0)-(1,10)) + │ │ ├── flags: ∅ │ │ ├── lparen_loc: ∅ │ │ ├── value: │ │ │ @ IntegerNode (location: (1,9)-(1,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rparen_loc: ∅ │ │ └── keyword_loc: (1,0)-(1,8) = "defined?" │ ├── right: │ │ @ DefinedNode (location: (1,15)-(1,25)) + │ │ ├── flags: ∅ │ │ ├── lparen_loc: ∅ │ │ ├── value: │ │ │ @ IntegerNode (location: (1,24)-(1,25)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── rparen_loc: ∅ │ │ └── keyword_loc: (1,15)-(1,23) = "defined?" │ └── operator_loc: (1,11)-(1,14) = "and" ├── @ DefinedNode (location: (3,0)-(3,16)) + │ ├── flags: newline │ ├── lparen_loc: (3,8)-(3,9) = "(" │ ├── value: │ │ @ LocalVariableOperatorWriteNode (location: (3,9)-(3,15)) + │ │ ├── flags: ∅ │ │ ├── name_loc: (3,9)-(3,10) = "x" │ │ ├── binary_operator_loc: (3,11)-(3,13) = "%=" │ │ ├── value: │ │ │ @ IntegerNode (location: (3,14)-(3,15)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── name: :x │ │ ├── binary_operator: :% @@ -39,9 +46,11 @@ │ ├── rparen_loc: (3,15)-(3,16) = ")" │ └── keyword_loc: (3,0)-(3,8) = "defined?" ├── @ DefinedNode (location: (5,0)-(5,21)) + │ ├── flags: newline │ ├── lparen_loc: (5,8)-(5,9) = "(" │ ├── value: │ │ @ AndNode (location: (5,9)-(5,20)) + │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ CallNode (location: (5,9)-(5,12)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -68,14 +77,16 @@ │ ├── rparen_loc: (5,20)-(5,21) = ")" │ └── keyword_loc: (5,0)-(5,8) = "defined?" ├── @ DefinedNode (location: (7,0)-(7,10)) + │ ├── flags: newline │ ├── lparen_loc: ∅ │ ├── value: │ │ @ IntegerNode (location: (7,9)-(7,10)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── rparen_loc: ∅ │ └── keyword_loc: (7,0)-(7,8) = "defined?" └── @ DefinedNode (location: (9,0)-(10,1)) + ├── flags: newline ├── lparen_loc: (9,8)-(9,9) = "(" ├── value: │ @ StringNode (location: (9,9)-(9,14)) diff --git a/test/prism/snapshots/dos_endings.txt b/test/prism/snapshots/dos_endings.txt index 1ae15e1e87..69d6b7cd7e 100644 --- a/test/prism/snapshots/dos_endings.txt +++ b/test/prism/snapshots/dos_endings.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(17,20)) +├── flags: ∅ ├── locals: [:x, :a] └── statements: @ StatementsNode (location: (1,0)-(17,20)) + ├── flags: ∅ └── body: (length: 5) ├── @ CallNode (location: (1,0)-(2,12)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :puts @@ -15,17 +17,17 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ InterpolatedStringNode (location: (1,5)-(2,12)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── opening_loc: ∅ │ │ ├── parts: (length: 2) │ │ │ ├── @ StringNode (location: (1,5)-(1,9)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: (1,5)-(1,6) = "\"" │ │ │ │ ├── content_loc: (1,6)-(1,8) = "hi" │ │ │ │ ├── closing_loc: (1,8)-(1,9) = "\"" │ │ │ │ └── unescaped: "hi" │ │ │ └── @ StringNode (location: (2,5)-(2,12)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: (2,5)-(2,6) = "\"" │ │ │ ├── content_loc: (2,6)-(2,11) = "there" │ │ │ ├── closing_loc: (2,11)-(2,12) = "\"" @@ -34,10 +36,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ ArrayNode (location: (4,0)-(5,2)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 1) │ │ └── @ SymbolNode (location: (4,3)-(5,1)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (4,3)-(5,1) = "a\\\r\nb" │ │ ├── closing_loc: ∅ @@ -45,12 +47,13 @@ │ ├── opening_loc: (4,0)-(4,3) = "%I{" │ └── closing_loc: (5,1)-(5,2) = "}" ├── @ StringNode (location: (7,0)-(7,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (7,0)-(7,4) = "<<-E" │ ├── content_loc: (8,0)-(11,0) = " 1 \\\r\n 2\r\n 3\r\n" │ ├── closing_loc: (11,0)-(12,0) = "E\r\n" │ └── unescaped: " 1 2\n 3\n" ├── @ LocalVariableWriteNode (location: (13,0)-(15,0)) + │ ├── flags: newline │ ├── name: :x │ ├── depth: 0 │ ├── name_loc: (13,0)-(13,1) = "x" @@ -63,6 +66,7 @@ │ │ └── unescaped: "" │ └── operator_loc: (13,2)-(13,3) = "=" └── @ LocalVariableWriteNode (location: (17,0)-(17,20)) + ├── flags: newline ├── name: :a ├── depth: 0 ├── name_loc: (17,0)-(17,1) = "a" @@ -82,17 +86,17 @@ │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ InterpolatedStringNode (location: (17,8)-(17,14)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── opening_loc: (17,8)-(17,14) = "<<~EOF" │ │ │ ├── parts: (length: 2) │ │ │ │ ├── @ StringNode (location: (18,0)-(19,0)) - │ │ │ │ │ ├── flags: frozen + │ │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── content_loc: (18,0)-(19,0) = "\r\n" │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── unescaped: "\n" │ │ │ │ └── @ StringNode (location: (19,0)-(20,0)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (19,0)-(20,0) = " baz\r\n" │ │ │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/dstring.txt b/test/prism/snapshots/dstring.txt index 3978a2f087..b3ece40513 100644 --- a/test/prism/snapshots/dstring.txt +++ b/test/prism/snapshots/dstring.txt @@ -1,28 +1,32 @@ @ ProgramNode (location: (1,0)-(29,1)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(29,1)) + ├── flags: ∅ └── body: (length: 8) ├── @ StringNode (location: (1,0)-(2,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (1,0)-(1,1) = "\"" │ ├── content_loc: (1,1)-(2,5) = "foo\n bar" │ ├── closing_loc: (2,5)-(2,6) = "\"" │ └── unescaped: "foo\n bar" ├── @ InterpolatedStringNode (location: (4,0)-(5,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (4,0)-(4,1) = "\"" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (4,1)-(5,2)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (4,1)-(5,2) = "foo\n " │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "foo\n " │ │ └── @ EmbeddedStatementsNode (location: (5,2)-(5,8)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (5,2)-(5,4) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (5,4)-(5,7)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (5,4)-(5,7)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -37,48 +41,48 @@ │ │ └── closing_loc: (5,7)-(5,8) = "}" │ └── closing_loc: (5,8)-(5,9) = "\"" ├── @ InterpolatedStringNode (location: (7,0)-(9,2)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: ∅ │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (7,0)-(8,2)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: (7,0)-(7,1) = "\"" │ │ │ ├── content_loc: (7,1)-(8,1) = "fo\no" │ │ │ ├── closing_loc: (8,1)-(8,2) = "\"" │ │ │ └── unescaped: "fo\no" │ │ └── @ StringNode (location: (8,3)-(9,2)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: (8,3)-(8,4) = "\"" │ │ ├── content_loc: (8,4)-(9,1) = "ba\nr" │ │ ├── closing_loc: (9,1)-(9,2) = "\"" │ │ └── unescaped: "ba\nr" │ └── closing_loc: ∅ ├── @ StringNode (location: (11,0)-(13,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (11,0)-(11,1) = "\"" │ ├── content_loc: (11,1)-(13,0) = "\nfoo\\\n" │ ├── closing_loc: (13,0)-(13,1) = "\"" │ └── unescaped: "\nfoo" ├── @ StringNode (location: (15,0)-(17,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (15,0)-(15,1) = "\"" │ ├── content_loc: (15,1)-(17,0) = "\nfoo\\\\\n" │ ├── closing_loc: (17,0)-(17,1) = "\"" │ └── unescaped: "\nfoo\\\n" ├── @ StringNode (location: (19,0)-(21,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (19,0)-(19,1) = "\"" │ ├── content_loc: (19,1)-(21,0) = "\nfoo\\\\\\\n" │ ├── closing_loc: (21,0)-(21,1) = "\"" │ └── unescaped: "\nfoo\\" ├── @ StringNode (location: (23,0)-(25,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (23,0)-(23,1) = "\"" │ ├── content_loc: (23,1)-(25,0) = "\nfoo\\\\\\\\\n" │ ├── closing_loc: (25,0)-(25,1) = "\"" │ └── unescaped: "\nfoo\\\\\n" └── @ StringNode (location: (27,0)-(29,1)) - ├── flags: ∅ + ├── flags: newline ├── opening_loc: (27,0)-(27,1) = "\"" ├── content_loc: (27,1)-(29,0) = "\nfoo\\\\\\\\\\\n" ├── closing_loc: (29,0)-(29,1) = "\"" diff --git a/test/prism/snapshots/dsym_str.txt b/test/prism/snapshots/dsym_str.txt index 33a5e2da21..835cbbdc8a 100644 --- a/test/prism/snapshots/dsym_str.txt +++ b/test/prism/snapshots/dsym_str.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(2,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(2,6)) + ├── flags: ∅ └── body: (length: 1) └── @ SymbolNode (location: (1,0)-(2,6)) - ├── flags: forced_us_ascii_encoding + ├── flags: newline, static_literal, forced_us_ascii_encoding ├── opening_loc: (1,0)-(1,2) = ":\"" ├── value_loc: (1,2)-(2,5) = "foo\n bar" ├── closing_loc: (2,5)-(2,6) = "\"" diff --git a/test/prism/snapshots/embdoc_no_newline_at_end.txt b/test/prism/snapshots/embdoc_no_newline_at_end.txt index 3a21ce5559..5756285aaf 100644 --- a/test/prism/snapshots/embdoc_no_newline_at_end.txt +++ b/test/prism/snapshots/embdoc_no_newline_at_end.txt @@ -1,5 +1,7 @@ @ ProgramNode (location: (1,0)-(1,0)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,0)) + ├── flags: ∅ └── body: (length: 0) diff --git a/test/prism/snapshots/emoji_method_calls.txt b/test/prism/snapshots/emoji_method_calls.txt index 8f71181ac1..f6f1bc4162 100644 --- a/test/prism/snapshots/emoji_method_calls.txt +++ b/test/prism/snapshots/emoji_method_calls.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,12)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,12)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,12)) - ├── flags: attribute_write + ├── flags: newline, attribute_write ├── receiver: │ @ CallNode (location: (1,0)-(1,3)) │ ├── flags: variable_call, ignore_visibility @@ -25,7 +27,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,11)-(1,12)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/endless_methods.txt b/test/prism/snapshots/endless_methods.txt index 6e20c0deec..50a0f41a67 100644 --- a/test/prism/snapshots/endless_methods.txt +++ b/test/prism/snapshots/endless_methods.txt @@ -1,18 +1,22 @@ @ ProgramNode (location: (1,0)-(5,22)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(5,22)) + ├── flags: ∅ └── body: (length: 3) ├── @ DefNode (location: (1,0)-(1,11)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (1,4)-(1,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,10)-(1,11)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (1,10)-(1,11)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 1 │ ├── locals: [] │ ├── def_keyword_loc: (1,0)-(1,3) = "def" @@ -22,15 +26,17 @@ │ ├── equal_loc: (1,8)-(1,9) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (3,0)-(3,14)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (3,4)-(3,7) = "bar" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (3,10)-(3,14)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (3,10)-(3,14)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :A @@ -56,21 +62,23 @@ │ ├── equal_loc: (3,8)-(3,9) = "=" │ └── end_keyword_loc: ∅ └── @ DefNode (location: (5,0)-(5,22)) + ├── flags: newline ├── name: :method ├── name_loc: (5,4)-(5,10) = "method" ├── receiver: ∅ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (5,13)-(5,22)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (5,13)-(5,22)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (5,13)-(5,18)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ IntegerNode (location: (5,13)-(5,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── call_operator_loc: ∅ │ │ ├── name: :+ @@ -81,7 +89,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (5,17)-(5,18)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ @@ -94,7 +102,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (5,21)-(5,22)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ ├── closing_loc: ∅ │ └── block: ∅ diff --git a/test/prism/snapshots/endless_range_in_conditional.txt b/test/prism/snapshots/endless_range_in_conditional.txt index 1802c4faed..518e96ed53 100644 --- a/test/prism/snapshots/endless_range_in_conditional.txt +++ b/test/prism/snapshots/endless_range_in_conditional.txt @@ -1,20 +1,23 @@ @ ProgramNode (location: (1,0)-(3,12)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,12)) + ├── flags: ∅ └── body: (length: 3) ├── @ IfNode (location: (1,0)-(1,13)) + │ ├── flags: newline │ ├── if_keyword_loc: (1,0)-(1,2) = "if" │ ├── predicate: │ │ @ FlipFlopNode (location: (1,3)-(1,7)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (1,3)-(1,4)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: │ │ │ @ IntegerNode (location: (1,6)-(1,7)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: (1,4)-(1,6) = ".." │ ├── then_keyword_loc: ∅ @@ -22,14 +25,15 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (1,10)-(1,13) = "end" ├── @ IfNode (location: (2,0)-(2,12)) + │ ├── flags: newline │ ├── if_keyword_loc: (2,0)-(2,2) = "if" │ ├── predicate: │ │ @ FlipFlopNode (location: (2,3)-(2,6)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: ∅ │ │ ├── right: │ │ │ @ IntegerNode (location: (2,5)-(2,6)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── operator_loc: (2,3)-(2,5) = ".." │ ├── then_keyword_loc: ∅ @@ -37,13 +41,14 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (2,9)-(2,12) = "end" └── @ IfNode (location: (3,0)-(3,12)) + ├── flags: newline ├── if_keyword_loc: (3,0)-(3,2) = "if" ├── predicate: │ @ FlipFlopNode (location: (3,3)-(3,6)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── left: │ │ @ IntegerNode (location: (3,3)-(3,4)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── right: ∅ │ └── operator_loc: (3,4)-(3,6) = ".." diff --git a/test/prism/snapshots/for.txt b/test/prism/snapshots/for.txt index cc4bbc1166..5558209826 100644 --- a/test/prism/snapshots/for.txt +++ b/test/prism/snapshots/for.txt @@ -1,29 +1,35 @@ @ ProgramNode (location: (1,0)-(19,22)) +├── flags: ∅ ├── locals: [:i, :j, :k] └── statements: @ StatementsNode (location: (1,0)-(19,22)) + ├── flags: ∅ └── body: (length: 6) ├── @ ForNode (location: (1,0)-(3,3)) + │ ├── flags: newline │ ├── index: │ │ @ LocalVariableTargetNode (location: (1,4)-(1,5)) + │ │ ├── flags: ∅ │ │ ├── name: :i │ │ └── depth: 0 │ ├── collection: │ │ @ RangeNode (location: (1,9)-(1,14)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (1,9)-(1,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: │ │ │ @ IntegerNode (location: (1,12)-(1,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 10 │ │ └── operator_loc: (1,10)-(1,12) = ".." │ ├── statements: │ │ @ StatementsNode (location: (2,0)-(2,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (2,0)-(2,1)) + │ │ ├── flags: newline │ │ ├── name: :i │ │ └── depth: 0 │ ├── for_keyword_loc: (1,0)-(1,3) = "for" @@ -31,26 +37,30 @@ │ ├── do_keyword_loc: ∅ │ └── end_keyword_loc: (3,0)-(3,3) = "end" ├── @ ForNode (location: (5,0)-(5,22)) + │ ├── flags: newline │ ├── index: │ │ @ LocalVariableTargetNode (location: (5,4)-(5,5)) + │ │ ├── flags: ∅ │ │ ├── name: :i │ │ └── depth: 0 │ ├── collection: │ │ @ RangeNode (location: (5,9)-(5,14)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (5,9)-(5,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: │ │ │ @ IntegerNode (location: (5,12)-(5,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 10 │ │ └── operator_loc: (5,10)-(5,12) = ".." │ ├── statements: │ │ @ StatementsNode (location: (5,16)-(5,17)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (5,16)-(5,17)) + │ │ ├── flags: newline │ │ ├── name: :i │ │ └── depth: 0 │ ├── for_keyword_loc: (5,0)-(5,3) = "for" @@ -58,13 +68,17 @@ │ ├── do_keyword_loc: ∅ │ └── end_keyword_loc: (5,19)-(5,22) = "end" ├── @ ForNode (location: (7,0)-(9,3)) + │ ├── flags: newline │ ├── index: │ │ @ MultiTargetNode (location: (7,4)-(7,7)) + │ │ ├── flags: ∅ │ │ ├── lefts: (length: 2) │ │ │ ├── @ LocalVariableTargetNode (location: (7,4)-(7,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :i │ │ │ │ └── depth: 0 │ │ │ └── @ LocalVariableTargetNode (location: (7,6)-(7,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :j │ │ │ └── depth: 0 │ │ ├── rest: ∅ @@ -73,20 +87,22 @@ │ │ └── rparen_loc: ∅ │ ├── collection: │ │ @ RangeNode (location: (7,11)-(7,16)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (7,11)-(7,12)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: │ │ │ @ IntegerNode (location: (7,14)-(7,16)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 10 │ │ └── operator_loc: (7,12)-(7,14) = ".." │ ├── statements: │ │ @ StatementsNode (location: (8,0)-(8,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (8,0)-(8,1)) + │ │ ├── flags: newline │ │ ├── name: :i │ │ └── depth: 0 │ ├── for_keyword_loc: (7,0)-(7,3) = "for" @@ -94,16 +110,21 @@ │ ├── do_keyword_loc: ∅ │ └── end_keyword_loc: (9,0)-(9,3) = "end" ├── @ ForNode (location: (11,0)-(13,3)) + │ ├── flags: newline │ ├── index: │ │ @ MultiTargetNode (location: (11,4)-(11,9)) + │ │ ├── flags: ∅ │ │ ├── lefts: (length: 3) │ │ │ ├── @ LocalVariableTargetNode (location: (11,4)-(11,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :i │ │ │ │ └── depth: 0 │ │ │ ├── @ LocalVariableTargetNode (location: (11,6)-(11,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :j │ │ │ │ └── depth: 0 │ │ │ └── @ LocalVariableTargetNode (location: (11,8)-(11,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :k │ │ │ └── depth: 0 │ │ ├── rest: ∅ @@ -112,20 +133,22 @@ │ │ └── rparen_loc: ∅ │ ├── collection: │ │ @ RangeNode (location: (11,13)-(11,18)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (11,13)-(11,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: │ │ │ @ IntegerNode (location: (11,16)-(11,18)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 10 │ │ └── operator_loc: (11,14)-(11,16) = ".." │ ├── statements: │ │ @ StatementsNode (location: (12,0)-(12,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (12,0)-(12,1)) + │ │ ├── flags: newline │ │ ├── name: :i │ │ └── depth: 0 │ ├── for_keyword_loc: (11,0)-(11,3) = "for" @@ -133,26 +156,30 @@ │ ├── do_keyword_loc: ∅ │ └── end_keyword_loc: (13,0)-(13,3) = "end" ├── @ ForNode (location: (15,0)-(17,3)) + │ ├── flags: newline │ ├── index: │ │ @ LocalVariableTargetNode (location: (15,4)-(15,5)) + │ │ ├── flags: ∅ │ │ ├── name: :i │ │ └── depth: 0 │ ├── collection: │ │ @ RangeNode (location: (15,9)-(15,14)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (15,9)-(15,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: │ │ │ @ IntegerNode (location: (15,12)-(15,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 10 │ │ └── operator_loc: (15,10)-(15,12) = ".." │ ├── statements: │ │ @ StatementsNode (location: (16,0)-(16,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (16,0)-(16,1)) + │ │ ├── flags: newline │ │ ├── name: :i │ │ └── depth: 0 │ ├── for_keyword_loc: (15,0)-(15,3) = "for" @@ -160,26 +187,30 @@ │ ├── do_keyword_loc: (15,15)-(15,17) = "do" │ └── end_keyword_loc: (17,0)-(17,3) = "end" └── @ ForNode (location: (19,0)-(19,22)) + ├── flags: newline ├── index: │ @ LocalVariableTargetNode (location: (19,4)-(19,5)) + │ ├── flags: ∅ │ ├── name: :i │ └── depth: 0 ├── collection: │ @ RangeNode (location: (19,9)-(19,14)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── left: │ │ @ IntegerNode (location: (19,9)-(19,10)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── right: │ │ @ IntegerNode (location: (19,12)-(19,14)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 10 │ └── operator_loc: (19,10)-(19,12) = ".." ├── statements: │ @ StatementsNode (location: (19,16)-(19,17)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ LocalVariableReadNode (location: (19,16)-(19,17)) + │ ├── flags: newline │ ├── name: :i │ └── depth: 0 ├── for_keyword_loc: (19,0)-(19,3) = "for" diff --git a/test/prism/snapshots/global_variables.txt b/test/prism/snapshots/global_variables.txt index 9f775ed80d..17b7728a32 100644 --- a/test/prism/snapshots/global_variables.txt +++ b/test/prism/snapshots/global_variables.txt @@ -1,190 +1,216 @@ @ ProgramNode (location: (1,0)-(93,4)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(93,4)) + ├── flags: ∅ └── body: (length: 47) ├── @ GlobalVariableReadNode (location: (1,0)-(1,16)) + │ ├── flags: newline │ └── name: :$global_variable ├── @ GlobalVariableReadNode (location: (3,0)-(3,2)) + │ ├── flags: newline │ └── name: :$_ ├── @ GlobalVariableReadNode (location: (5,0)-(5,3)) + │ ├── flags: newline │ └── name: :$-w ├── @ GlobalVariableReadNode (location: (7,0)-(7,10)) + │ ├── flags: newline │ └── name: :$LOAD_PATH ├── @ GlobalVariableReadNode (location: (9,0)-(9,6)) + │ ├── flags: newline │ └── name: :$stdin ├── @ GlobalVariableReadNode (location: (11,0)-(11,7)) + │ ├── flags: newline │ └── name: :$stdout ├── @ GlobalVariableReadNode (location: (13,0)-(13,7)) + │ ├── flags: newline │ └── name: :$stderr ├── @ GlobalVariableReadNode (location: (15,0)-(15,2)) + │ ├── flags: newline │ └── name: :$! ├── @ GlobalVariableReadNode (location: (17,0)-(17,2)) + │ ├── flags: newline │ └── name: :$? ├── @ GlobalVariableReadNode (location: (19,0)-(19,2)) + │ ├── flags: newline │ └── name: :$~ ├── @ BackReferenceReadNode (location: (21,0)-(21,2)) + │ ├── flags: newline │ └── name: :$& ├── @ BackReferenceReadNode (location: (23,0)-(23,2)) + │ ├── flags: newline │ └── name: :$` ├── @ BackReferenceReadNode (location: (25,0)-(25,2)) + │ ├── flags: newline │ └── name: :$' ├── @ BackReferenceReadNode (location: (27,0)-(27,2)) + │ ├── flags: newline │ └── name: :$+ ├── @ GlobalVariableReadNode (location: (29,0)-(29,2)) + │ ├── flags: newline │ └── name: :$: ├── @ GlobalVariableReadNode (location: (31,0)-(31,2)) + │ ├── flags: newline │ └── name: :$; ├── @ GlobalVariableReadNode (location: (33,0)-(33,2)) + │ ├── flags: newline │ └── name: :$, ├── @ GlobalVariableReadNode (location: (35,0)-(35,6)) + │ ├── flags: newline │ └── name: :$DEBUG ├── @ GlobalVariableReadNode (location: (37,0)-(37,9)) + │ ├── flags: newline │ └── name: :$FILENAME ├── @ GlobalVariableReadNode (location: (39,0)-(39,2)) + │ ├── flags: newline │ └── name: :$0 ├── @ GlobalVariableReadNode (location: (41,0)-(41,3)) + │ ├── flags: newline │ └── name: :$-0 ├── @ GlobalVariableReadNode (location: (43,0)-(43,16)) + │ ├── flags: newline │ └── name: :$LOADED_FEATURES ├── @ GlobalVariableReadNode (location: (45,0)-(45,8)) + │ ├── flags: newline │ └── name: :$VERBOSE ├── @ GlobalVariableReadNode (location: (47,0)-(47,3)) + │ ├── flags: newline │ └── name: :$-K ├── @ SymbolNode (location: (49,0)-(49,17)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (49,0)-(49,1) = ":" │ ├── value_loc: (49,1)-(49,17) = "$global_variable" │ ├── closing_loc: ∅ │ └── unescaped: "$global_variable" ├── @ SymbolNode (location: (51,0)-(51,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (51,0)-(51,1) = ":" │ ├── value_loc: (51,1)-(51,3) = "$_" │ ├── closing_loc: ∅ │ └── unescaped: "$_" ├── @ SymbolNode (location: (53,0)-(53,4)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (53,0)-(53,1) = ":" │ ├── value_loc: (53,1)-(53,4) = "$-w" │ ├── closing_loc: ∅ │ └── unescaped: "$-w" ├── @ SymbolNode (location: (55,0)-(55,11)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (55,0)-(55,1) = ":" │ ├── value_loc: (55,1)-(55,11) = "$LOAD_PATH" │ ├── closing_loc: ∅ │ └── unescaped: "$LOAD_PATH" ├── @ SymbolNode (location: (57,0)-(57,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (57,0)-(57,1) = ":" │ ├── value_loc: (57,1)-(57,7) = "$stdin" │ ├── closing_loc: ∅ │ └── unescaped: "$stdin" ├── @ SymbolNode (location: (59,0)-(59,8)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (59,0)-(59,1) = ":" │ ├── value_loc: (59,1)-(59,8) = "$stdout" │ ├── closing_loc: ∅ │ └── unescaped: "$stdout" ├── @ SymbolNode (location: (61,0)-(61,8)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (61,0)-(61,1) = ":" │ ├── value_loc: (61,1)-(61,8) = "$stderr" │ ├── closing_loc: ∅ │ └── unescaped: "$stderr" ├── @ SymbolNode (location: (63,0)-(63,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (63,0)-(63,1) = ":" │ ├── value_loc: (63,1)-(63,3) = "$!" │ ├── closing_loc: ∅ │ └── unescaped: "$!" ├── @ SymbolNode (location: (65,0)-(65,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (65,0)-(65,1) = ":" │ ├── value_loc: (65,1)-(65,3) = "$?" │ ├── closing_loc: ∅ │ └── unescaped: "$?" ├── @ SymbolNode (location: (67,0)-(67,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (67,0)-(67,1) = ":" │ ├── value_loc: (67,1)-(67,3) = "$~" │ ├── closing_loc: ∅ │ └── unescaped: "$~" ├── @ SymbolNode (location: (69,0)-(69,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (69,0)-(69,1) = ":" │ ├── value_loc: (69,1)-(69,3) = "$&" │ ├── closing_loc: ∅ │ └── unescaped: "$&" ├── @ SymbolNode (location: (71,0)-(71,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (71,0)-(71,1) = ":" │ ├── value_loc: (71,1)-(71,3) = "$`" │ ├── closing_loc: ∅ │ └── unescaped: "$`" ├── @ SymbolNode (location: (73,0)-(73,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (73,0)-(73,1) = ":" │ ├── value_loc: (73,1)-(73,3) = "$'" │ ├── closing_loc: ∅ │ └── unescaped: "$'" ├── @ SymbolNode (location: (75,0)-(75,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (75,0)-(75,1) = ":" │ ├── value_loc: (75,1)-(75,3) = "$+" │ ├── closing_loc: ∅ │ └── unescaped: "$+" ├── @ SymbolNode (location: (77,0)-(77,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (77,0)-(77,1) = ":" │ ├── value_loc: (77,1)-(77,3) = "$:" │ ├── closing_loc: ∅ │ └── unescaped: "$:" ├── @ SymbolNode (location: (79,0)-(79,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (79,0)-(79,1) = ":" │ ├── value_loc: (79,1)-(79,3) = "$;" │ ├── closing_loc: ∅ │ └── unescaped: "$;" ├── @ SymbolNode (location: (81,0)-(81,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (81,0)-(81,1) = ":" │ ├── value_loc: (81,1)-(81,7) = "$DEBUG" │ ├── closing_loc: ∅ │ └── unescaped: "$DEBUG" ├── @ SymbolNode (location: (83,0)-(83,10)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (83,0)-(83,1) = ":" │ ├── value_loc: (83,1)-(83,10) = "$FILENAME" │ ├── closing_loc: ∅ │ └── unescaped: "$FILENAME" ├── @ SymbolNode (location: (85,0)-(85,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (85,0)-(85,1) = ":" │ ├── value_loc: (85,1)-(85,3) = "$0" │ ├── closing_loc: ∅ │ └── unescaped: "$0" ├── @ SymbolNode (location: (87,0)-(87,4)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (87,0)-(87,1) = ":" │ ├── value_loc: (87,1)-(87,4) = "$-0" │ ├── closing_loc: ∅ │ └── unescaped: "$-0" ├── @ SymbolNode (location: (89,0)-(89,17)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (89,0)-(89,1) = ":" │ ├── value_loc: (89,1)-(89,17) = "$LOADED_FEATURES" │ ├── closing_loc: ∅ │ └── unescaped: "$LOADED_FEATURES" ├── @ SymbolNode (location: (91,0)-(91,9)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (91,0)-(91,1) = ":" │ ├── value_loc: (91,1)-(91,9) = "$VERBOSE" │ ├── closing_loc: ∅ │ └── unescaped: "$VERBOSE" └── @ SymbolNode (location: (93,0)-(93,4)) - ├── flags: forced_us_ascii_encoding + ├── flags: newline, static_literal, forced_us_ascii_encoding ├── opening_loc: (93,0)-(93,1) = ":" ├── value_loc: (93,1)-(93,4) = "$-K" ├── closing_loc: ∅ diff --git a/test/prism/snapshots/hashes.txt b/test/prism/snapshots/hashes.txt index 7a3ac4b0ea..8462c28994 100644 --- a/test/prism/snapshots/hashes.txt +++ b/test/prism/snapshots/hashes.txt @@ -1,20 +1,26 @@ @ ProgramNode (location: (1,0)-(28,9)) +├── flags: ∅ ├── locals: [:a] └── statements: @ StatementsNode (location: (1,0)-(28,9)) + ├── flags: ∅ └── body: (length: 10) ├── @ HashNode (location: (1,0)-(1,2)) + │ ├── flags: newline, static_literal │ ├── opening_loc: (1,0)-(1,1) = "{" │ ├── elements: (length: 0) │ └── closing_loc: (1,1)-(1,2) = "}" ├── @ HashNode (location: (3,0)-(4,1)) + │ ├── flags: newline, static_literal │ ├── opening_loc: (3,0)-(3,1) = "{" │ ├── elements: (length: 0) │ └── closing_loc: (4,0)-(4,1) = "}" ├── @ HashNode (location: (6,0)-(6,18)) + │ ├── flags: newline │ ├── opening_loc: (6,0)-(6,1) = "{" │ ├── elements: (length: 2) │ │ ├── @ AssocNode (location: (6,2)-(6,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ CallNode (location: (6,2)-(6,3)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -39,6 +45,7 @@ │ │ │ │ └── block: ∅ │ │ │ └── operator_loc: (6,4)-(6,6) = "=>" │ │ └── @ AssocNode (location: (6,10)-(6,16)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ CallNode (location: (6,10)-(6,11)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -64,9 +71,11 @@ │ │ └── operator_loc: (6,12)-(6,14) = "=>" │ └── closing_loc: (6,17)-(6,18) = "}" ├── @ HashNode (location: (8,0)-(8,15)) + │ ├── flags: newline │ ├── opening_loc: (8,0)-(8,1) = "{" │ ├── elements: (length: 2) │ │ ├── @ AssocNode (location: (8,2)-(8,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ CallNode (location: (8,2)-(8,3)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -91,6 +100,7 @@ │ │ │ │ └── block: ∅ │ │ │ └── operator_loc: (8,4)-(8,6) = "=>" │ │ └── @ AssocSplatNode (location: (8,10)-(8,13)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ CallNode (location: (8,12)-(8,13)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -105,12 +115,14 @@ │ │ └── operator_loc: (8,10)-(8,12) = "**" │ └── closing_loc: (8,14)-(8,15) = "}" ├── @ HashNode (location: (10,0)-(16,5)) + │ ├── flags: newline │ ├── opening_loc: (10,0)-(10,1) = "{" │ ├── elements: (length: 2) │ │ ├── @ AssocNode (location: (11,6)-(11,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (11,6)-(11,8)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (11,6)-(11,7) = "a" │ │ │ │ ├── closing_loc: (11,7)-(11,8) = ":" @@ -128,9 +140,10 @@ │ │ │ │ └── block: ∅ │ │ │ └── operator_loc: ∅ │ │ └── @ AssocNode (location: (12,6)-(12,10)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (12,6)-(12,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (12,6)-(12,7) = "c" │ │ │ ├── closing_loc: (12,7)-(12,8) = ":" @@ -149,12 +162,14 @@ │ │ └── operator_loc: ∅ │ └── closing_loc: (16,4)-(16,5) = "}" ├── @ HashNode (location: (18,0)-(18,25)) + │ ├── flags: newline │ ├── opening_loc: (18,0)-(18,1) = "{" │ ├── elements: (length: 4) │ │ ├── @ AssocNode (location: (18,2)-(18,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (18,2)-(18,4)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (18,2)-(18,3) = "a" │ │ │ │ ├── closing_loc: (18,3)-(18,4) = ":" @@ -172,9 +187,10 @@ │ │ │ │ └── block: ∅ │ │ │ └── operator_loc: ∅ │ │ ├── @ AssocNode (location: (18,8)-(18,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (18,8)-(18,10)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (18,8)-(18,9) = "c" │ │ │ │ ├── closing_loc: (18,9)-(18,10) = ":" @@ -192,6 +208,7 @@ │ │ │ │ └── block: ∅ │ │ │ └── operator_loc: ∅ │ │ ├── @ AssocSplatNode (location: (18,14)-(18,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── value: │ │ │ │ @ CallNode (location: (18,16)-(18,17)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -205,9 +222,10 @@ │ │ │ │ └── block: ∅ │ │ │ └── operator_loc: (18,14)-(18,16) = "**" │ │ └── @ AssocNode (location: (18,19)-(18,23)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (18,19)-(18,21)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (18,19)-(18,20) = "f" │ │ │ ├── closing_loc: (18,20)-(18,21) = ":" @@ -226,12 +244,14 @@ │ │ └── operator_loc: ∅ │ └── closing_loc: (18,24)-(18,25) = "}" ├── @ HashNode (location: (20,0)-(20,12)) + │ ├── flags: newline │ ├── opening_loc: (20,0)-(20,1) = "{" │ ├── elements: (length: 1) │ │ └── @ AssocNode (location: (20,2)-(20,10)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (20,2)-(20,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (20,2)-(20,3) = "\"" │ │ │ ├── value_loc: (20,3)-(20,4) = "a" │ │ │ ├── closing_loc: (20,4)-(20,6) = "\":" @@ -260,16 +280,17 @@ │ │ └── operator_loc: ∅ │ └── closing_loc: (20,11)-(20,12) = "}" ├── @ LocalVariableWriteNode (location: (22,0)-(22,5)) + │ ├── flags: newline │ ├── name: :a │ ├── depth: 0 │ ├── name_loc: (22,0)-(22,1) = "a" │ ├── value: │ │ @ IntegerNode (location: (22,4)-(22,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (22,2)-(22,3) = "=" ├── @ CallNode (location: (23,0)-(26,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -279,63 +300,75 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (23,4)-(26,3)) + │ ├── flags: ∅ │ ├── locals: [:b] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (24,2)-(25,20)) + │ │ ├── flags: ∅ │ │ └── body: (length: 2) │ │ ├── @ LocalVariableWriteNode (location: (24,2)-(24,7)) + │ │ │ ├── flags: newline │ │ │ ├── name: :b │ │ │ ├── depth: 0 │ │ │ ├── name_loc: (24,2)-(24,3) = "b" │ │ │ ├── value: │ │ │ │ @ IntegerNode (location: (24,6)-(24,7)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── operator_loc: (24,4)-(24,5) = "=" │ │ └── @ HashNode (location: (25,2)-(25,20)) + │ │ ├── flags: newline │ │ ├── opening_loc: (25,2)-(25,3) = "{" │ │ ├── elements: (length: 4) │ │ │ ├── @ AssocNode (location: (25,4)-(25,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (25,4)-(25,6)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (25,4)-(25,5) = "a" │ │ │ │ │ ├── closing_loc: (25,5)-(25,6) = ":" │ │ │ │ │ └── unescaped: "a" │ │ │ │ ├── value: │ │ │ │ │ @ ImplicitNode (location: (25,4)-(25,6)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── value: │ │ │ │ │ @ LocalVariableReadNode (location: (25,4)-(25,6)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :a │ │ │ │ │ └── depth: 1 │ │ │ │ └── operator_loc: ∅ │ │ │ ├── @ AssocNode (location: (25,8)-(25,10)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (25,8)-(25,10)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (25,8)-(25,9) = "b" │ │ │ │ │ ├── closing_loc: (25,9)-(25,10) = ":" │ │ │ │ │ └── unescaped: "b" │ │ │ │ ├── value: │ │ │ │ │ @ ImplicitNode (location: (25,8)-(25,10)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── value: │ │ │ │ │ @ LocalVariableReadNode (location: (25,8)-(25,10)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :b │ │ │ │ │ └── depth: 0 │ │ │ │ └── operator_loc: ∅ │ │ │ ├── @ AssocNode (location: (25,12)-(25,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (25,12)-(25,14)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (25,12)-(25,13) = "c" │ │ │ │ │ ├── closing_loc: (25,13)-(25,14) = ":" │ │ │ │ │ └── unescaped: "c" │ │ │ │ ├── value: │ │ │ │ │ @ ImplicitNode (location: (25,12)-(25,14)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── value: │ │ │ │ │ @ CallNode (location: (25,12)-(25,14)) │ │ │ │ │ ├── flags: ignore_visibility @@ -349,36 +382,41 @@ │ │ │ │ │ └── block: ∅ │ │ │ │ └── operator_loc: ∅ │ │ │ └── @ AssocNode (location: (25,16)-(25,18)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (25,16)-(25,18)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (25,16)-(25,17) = "D" │ │ │ │ ├── closing_loc: (25,17)-(25,18) = ":" │ │ │ │ └── unescaped: "D" │ │ │ ├── value: │ │ │ │ @ ImplicitNode (location: (25,16)-(25,18)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── value: │ │ │ │ @ ConstantReadNode (location: (25,16)-(25,18)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :D │ │ │ └── operator_loc: ∅ │ │ └── closing_loc: (25,19)-(25,20) = "}" │ ├── opening_loc: (23,4)-(23,6) = "do" │ └── closing_loc: (26,0)-(26,3) = "end" └── @ HashNode (location: (28,0)-(28,9)) + ├── flags: newline, static_literal ├── opening_loc: (28,0)-(28,1) = "{" ├── elements: (length: 1) │ └── @ AssocNode (location: (28,2)-(28,7)) + │ ├── flags: static_literal │ ├── key: │ │ @ SymbolNode (location: (28,2)-(28,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (28,2)-(28,3) = "a" │ │ ├── closing_loc: (28,3)-(28,4) = ":" │ │ └── unescaped: "a" │ ├── value: │ │ @ IntegerNode (location: (28,5)-(28,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: -1 │ └── operator_loc: ∅ └── closing_loc: (28,8)-(28,9) = "}" diff --git a/test/prism/snapshots/heredoc.txt b/test/prism/snapshots/heredoc.txt index 3ca66dd989..7145f0f752 100644 --- a/test/prism/snapshots/heredoc.txt +++ b/test/prism/snapshots/heredoc.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ StringNode (location: (1,0)-(1,6)) - ├── flags: ∅ + ├── flags: newline ├── opening_loc: (1,0)-(1,6) = "< @@ -307,15 +309,15 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (31,6)-(31,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (33,0)-(33,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IntegerNode (location: (33,0)-(33,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: ∅ │ ├── name: :== @@ -326,15 +328,15 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (33,5)-(33,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (35,0)-(35,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IntegerNode (location: (35,0)-(35,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: ∅ │ ├── name: :=== @@ -345,15 +347,15 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (35,6)-(35,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (37,0)-(37,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IntegerNode (location: (37,0)-(37,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: ∅ │ ├── name: :=~ @@ -364,15 +366,15 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (37,5)-(37,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (39,0)-(39,5)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: │ │ @ IntegerNode (location: (39,0)-(39,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: ∅ │ ├── name: :> @@ -383,15 +385,15 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (39,4)-(39,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (41,0)-(41,6)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: │ │ @ IntegerNode (location: (41,0)-(41,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: ∅ │ ├── name: :>= @@ -402,15 +404,15 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (41,5)-(41,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (43,0)-(43,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IntegerNode (location: (43,0)-(43,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: ∅ │ ├── name: :>> @@ -421,15 +423,15 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (43,5)-(43,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (45,0)-(45,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IntegerNode (location: (45,0)-(45,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: ∅ │ ├── name: :^ @@ -440,15 +442,15 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (45,4)-(45,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (47,0)-(47,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IntegerNode (location: (47,0)-(47,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: ∅ │ ├── name: :| @@ -459,35 +461,37 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (47,4)-(47,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ AndNode (location: (49,0)-(49,6)) + │ ├── flags: newline │ ├── left: │ │ @ IntegerNode (location: (49,0)-(49,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── right: │ │ @ IntegerNode (location: (49,5)-(49,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── operator_loc: (49,2)-(49,4) = "&&" ├── @ AndNode (location: (51,0)-(51,7)) + │ ├── flags: newline │ ├── left: │ │ @ IntegerNode (location: (51,0)-(51,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── right: │ │ @ IntegerNode (location: (51,6)-(51,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── operator_loc: (51,2)-(51,5) = "and" ├── @ CallNode (location: (53,0)-(53,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IntegerNode (location: (53,0)-(53,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: ∅ │ ├── name: :* @@ -501,7 +505,7 @@ │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ IntegerNode (location: (53,4)-(53,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── call_operator_loc: ∅ │ │ ├── name: :** @@ -512,20 +516,20 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (53,9)-(53,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (55,0)-(55,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (55,0)-(55,5)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ IntegerNode (location: (55,0)-(55,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── call_operator_loc: ∅ │ │ ├── name: :* @@ -536,7 +540,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (55,4)-(55,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ @@ -549,35 +553,37 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (55,8)-(55,9)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ OrNode (location: (57,0)-(57,6)) + │ ├── flags: newline │ ├── left: │ │ @ IntegerNode (location: (57,0)-(57,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── right: │ │ @ IntegerNode (location: (57,5)-(57,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── operator_loc: (57,2)-(57,4) = "or" ├── @ OrNode (location: (59,0)-(59,6)) + │ ├── flags: newline │ ├── left: │ │ @ IntegerNode (location: (59,0)-(59,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── right: │ │ @ IntegerNode (location: (59,5)-(59,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── operator_loc: (59,2)-(59,4) = "||" ├── @ CallNode (location: (61,0)-(61,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IntegerNode (location: (61,0)-(61,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: ∅ │ ├── name: :+ @@ -591,7 +597,7 @@ │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ IntegerNode (location: (61,4)-(61,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── call_operator_loc: ∅ │ │ ├── name: :* @@ -602,21 +608,23 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (61,8)-(61,9)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ ParenthesesNode (location: (63,0)-(63,7)) + ├── flags: newline ├── body: │ @ StatementsNode (location: (63,1)-(63,6)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (63,1)-(63,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IntegerNode (location: (63,1)-(63,2)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: ∅ │ ├── name: :+ @@ -627,7 +635,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (63,5)-(63,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── closing_loc: ∅ │ └── block: ∅ diff --git a/test/prism/snapshots/keyword_method_names.txt b/test/prism/snapshots/keyword_method_names.txt index 6d59790b07..6bb4d97084 100644 --- a/test/prism/snapshots/keyword_method_names.txt +++ b/test/prism/snapshots/keyword_method_names.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(29,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(29,3)) + ├── flags: ∅ └── body: (length: 10) ├── @ DefNode (location: (1,0)-(2,3)) + │ ├── flags: newline │ ├── name: :def │ ├── name_loc: (1,4)-(1,7) = "def" │ ├── receiver: ∅ @@ -17,10 +20,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (2,0)-(2,3) = "end" ├── @ DefNode (location: (4,0)-(5,3)) + │ ├── flags: newline │ ├── name: :ensure │ ├── name_loc: (4,9)-(4,15) = "ensure" │ ├── receiver: │ │ @ SelfNode (location: (4,4)-(4,8)) + │ │ └── flags: ∅ │ ├── parameters: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -31,7 +36,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (5,0)-(5,3) = "end" ├── @ CallNode (location: (7,0)-(10,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :private @@ -42,15 +47,17 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ DefNode (location: (7,8)-(10,3)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ ├── name_loc: (7,12)-(7,15) = "foo" │ │ ├── receiver: ∅ │ │ ├── parameters: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (8,2)-(9,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (8,2)-(9,5)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -60,6 +67,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: │ │ │ @ BlockNode (location: (8,6)-(9,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [] │ │ │ ├── parameters: ∅ │ │ │ ├── body: ∅ @@ -75,11 +83,13 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ DefNode (location: (12,0)-(13,3)) + │ ├── flags: newline │ ├── name: :m │ ├── name_loc: (12,4)-(12,5) = "m" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (12,6)-(12,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (12,6)-(12,7)) │ │ │ ├── flags: ∅ @@ -90,6 +100,7 @@ │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ NoKeywordsParameterNode (location: (12,9)-(12,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (12,9)-(12,11) = "**" │ │ │ └── keyword_loc: (12,11)-(12,14) = "nil" │ │ └── block: ∅ @@ -102,10 +113,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (13,0)-(13,3) = "end" ├── @ DefNode (location: (15,0)-(16,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (15,17)-(15,18) = "a" │ ├── receiver: │ │ @ SourceEncodingNode (location: (15,4)-(15,16)) + │ │ └── flags: static_literal │ ├── parameters: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -116,18 +129,19 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (16,0)-(16,3) = "end" ├── @ StringNode (location: (18,0)-(18,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (18,0)-(18,2) = "%{" │ ├── content_loc: (18,2)-(18,5) = "abc" │ ├── closing_loc: (18,5)-(18,6) = "}" │ └── unescaped: "abc" ├── @ StringNode (location: (20,0)-(20,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (20,0)-(20,2) = "%\"" │ ├── content_loc: (20,2)-(20,5) = "abc" │ ├── closing_loc: (20,5)-(20,6) = "\"" │ └── unescaped: "abc" ├── @ DefNode (location: (22,0)-(23,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (22,13)-(22,14) = "a" │ ├── receiver: @@ -144,10 +158,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (23,0)-(23,3) = "end" ├── @ DefNode (location: (25,0)-(26,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (25,13)-(25,14) = "a" │ ├── receiver: │ │ @ SourceLineNode (location: (25,4)-(25,12)) + │ │ └── flags: static_literal │ ├── parameters: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -158,10 +174,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (26,0)-(26,3) = "end" └── @ DefNode (location: (28,0)-(29,3)) + ├── flags: newline ├── name: :a ├── name_loc: (28,9)-(28,10) = "a" ├── receiver: │ @ NilNode (location: (28,4)-(28,7)) + │ └── flags: static_literal ├── parameters: ∅ ├── body: ∅ ├── locals: [] diff --git a/test/prism/snapshots/keywords.txt b/test/prism/snapshots/keywords.txt index b3d5c5e1c3..afe1bad483 100644 --- a/test/prism/snapshots/keywords.txt +++ b/test/prism/snapshots/keywords.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(11,8)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(11,8)) + ├── flags: ∅ └── body: (length: 6) ├── @ CallNode (location: (1,0)-(1,12)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -14,34 +16,44 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,4)-(1,12)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,6)-(1,10)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RedoNode (location: (1,6)-(1,10)) + │ │ └── flags: newline │ ├── opening_loc: (1,4)-(1,5) = "{" │ └── closing_loc: (1,11)-(1,12) = "}" ├── @ BeginNode (location: (3,0)-(3,25)) + │ ├── flags: newline │ ├── begin_keyword_loc: (3,0)-(3,5) = "begin" │ ├── statements: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (3,7)-(3,20)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (3,7)-(3,13) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (3,15)-(3,20)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ RetryNode (location: (3,15)-(3,20)) + │ │ │ └── flags: newline │ │ └── consequent: ∅ │ ├── else_clause: ∅ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (3,22)-(3,25) = "end" ├── @ SelfNode (location: (5,0)-(5,4)) + │ └── flags: newline ├── @ SourceEncodingNode (location: (7,0)-(7,12)) + │ └── flags: newline, static_literal ├── @ SourceFileNode (location: (9,0)-(9,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ └── filepath: "keywords.txt" └── @ SourceLineNode (location: (11,0)-(11,8)) + └── flags: newline, static_literal diff --git a/test/prism/snapshots/lambda.txt b/test/prism/snapshots/lambda.txt index 0864b10369..90b0b523aa 100644 --- a/test/prism/snapshots/lambda.txt +++ b/test/prism/snapshots/lambda.txt @@ -1,17 +1,22 @@ @ ProgramNode (location: (1,0)-(11,18)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(11,18)) + ├── flags: ∅ └── body: (length: 5) ├── @ LambdaNode (location: (1,0)-(3,4)) + │ ├── flags: newline │ ├── locals: [:foo] │ ├── operator_loc: (1,0)-(1,2) = "->" │ ├── opening_loc: (3,2)-(3,3) = "{" │ ├── closing_loc: (3,3)-(3,4) = "}" │ ├── parameters: │ │ @ BlockParametersNode (location: (1,2)-(3,1)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (2,2)-(2,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (2,2)-(2,5)) │ │ │ │ ├── flags: ∅ @@ -27,14 +32,17 @@ │ │ └── closing_loc: (3,0)-(3,1) = ")" │ └── body: ∅ ├── @ LambdaNode (location: (5,0)-(5,18)) + │ ├── flags: newline │ ├── locals: [:x] │ ├── operator_loc: (5,0)-(5,2) = "->" │ ├── opening_loc: (5,15)-(5,16) = "{" │ ├── closing_loc: (5,17)-(5,18) = "}" │ ├── parameters: │ │ @ BlockParametersNode (location: (5,2)-(5,14)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (5,3)-(5,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 0) │ │ │ ├── optionals: (length: 0) │ │ │ ├── rest: ∅ @@ -50,15 +58,17 @@ │ │ │ │ ├── opening_loc: (5,6)-(5,7) = "\"" │ │ │ │ ├── parts: (length: 2) │ │ │ │ │ ├── @ StringNode (location: (5,7)-(5,8)) - │ │ │ │ │ │ ├── flags: frozen + │ │ │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ │ ├── content_loc: (5,7)-(5,8) = "b" │ │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ │ └── unescaped: "b" │ │ │ │ │ └── @ EmbeddedStatementsNode (location: (5,8)-(5,12)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── opening_loc: (5,8)-(5,10) = "\#{" │ │ │ │ │ ├── statements: │ │ │ │ │ │ @ StatementsNode (location: (5,10)-(5,11)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ │ └── @ CallNode (location: (5,10)-(5,11)) │ │ │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -79,14 +89,17 @@ │ │ └── closing_loc: (5,13)-(5,14) = ")" │ └── body: ∅ ├── @ LambdaNode (location: (7,0)-(7,15)) + │ ├── flags: newline │ ├── locals: [:a] │ ├── operator_loc: (7,0)-(7,2) = "->" │ ├── opening_loc: (7,13)-(7,14) = "{" │ ├── closing_loc: (7,14)-(7,15) = "}" │ ├── parameters: │ │ @ BlockParametersNode (location: (7,2)-(7,12)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (7,3)-(7,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 0) │ │ │ ├── optionals: (length: 0) │ │ │ ├── rest: ∅ @@ -119,7 +132,7 @@ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── arguments: (length: 1) │ │ │ │ │ └── @ IntegerNode (location: (7,10)-(7,11)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 3 │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── block: ∅ @@ -130,14 +143,17 @@ │ │ └── closing_loc: (7,11)-(7,12) = ")" │ └── body: ∅ ├── @ LambdaNode (location: (9,0)-(9,19)) + │ ├── flags: newline │ ├── locals: [:foo] │ ├── operator_loc: (9,0)-(9,2) = "->" │ ├── opening_loc: (9,13)-(9,15) = "do" │ ├── closing_loc: (9,16)-(9,19) = "end" │ ├── parameters: │ │ @ BlockParametersNode (location: (9,3)-(9,12)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (9,3)-(9,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 0) │ │ │ ├── optionals: (length: 1) │ │ │ │ └── @ OptionalParameterNode (location: (9,3)-(9,12)) @@ -166,14 +182,17 @@ │ │ └── closing_loc: ∅ │ └── body: ∅ └── @ LambdaNode (location: (11,0)-(11,18)) + ├── flags: newline ├── locals: [:foo] ├── operator_loc: (11,0)-(11,2) = "->" ├── opening_loc: (11,12)-(11,14) = "do" ├── closing_loc: (11,15)-(11,18) = "end" ├── parameters: │ @ BlockParametersNode (location: (11,3)-(11,11)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (11,3)-(11,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ diff --git a/test/prism/snapshots/method_calls.txt b/test/prism/snapshots/method_calls.txt index 6082b567f7..4bf8f3c710 100644 --- a/test/prism/snapshots/method_calls.txt +++ b/test/prism/snapshots/method_calls.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(156,19)) +├── flags: ∅ ├── locals: [:foo] └── statements: @ StatementsNode (location: (1,0)-(156,19)) + ├── flags: ∅ └── body: (length: 67) ├── @ CallNode (location: (1,0)-(1,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (1,0)-(1,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -33,7 +35,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (3,0)-(3,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (3,0)-(3,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -76,7 +78,7 @@ │ ├── closing_loc: (3,8)-(3,9) = ")" │ └── block: ∅ ├── @ CallNode (location: (5,0)-(5,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (5,0)-(5,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -96,7 +98,7 @@ │ ├── closing_loc: (5,4)-(5,5) = ")" │ └── block: ∅ ├── @ CallNode (location: (7,0)-(9,7)) - │ ├── flags: safe_navigation + │ ├── flags: newline, safe_navigation │ ├── receiver: │ │ @ CallNode (location: (7,0)-(8,6)) │ │ ├── flags: ∅ @@ -126,7 +128,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (11,0)-(11,2)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a! @@ -136,7 +138,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (13,0)-(13,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (13,0)-(13,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -156,7 +158,7 @@ │ ├── closing_loc: (13,3)-(13,4) = ")" │ └── block: ∅ ├── @ CallNode (location: (15,0)-(15,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (15,0)-(15,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -177,18 +179,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 3) │ │ ├── @ IntegerNode (location: (15,3)-(15,4)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── @ IntegerNode (location: (15,6)-(15,7)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── @ IntegerNode (location: (15,9)-(15,10)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ ├── closing_loc: (15,10)-(15,11) = ")" │ └── block: ∅ ├── @ CallNode (location: (17,0)-(17,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (17,0)-(17,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -208,7 +210,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (19,0)-(19,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (19,0)-(19,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -241,7 +243,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (21,0)-(21,11)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ CallNode (location: (21,0)-(21,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -262,12 +264,12 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (21,10)-(21,11)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (23,0)-(23,2)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a? @@ -277,7 +279,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (25,0)-(25,8)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a @@ -287,6 +289,7 @@ │ ├── closing_loc: (25,8)-(25,9) = ")" │ └── block: │ @ BlockArgumentNode (location: (25,2)-(25,8)) + │ ├── flags: ∅ │ ├── expression: │ │ @ CallNode (location: (25,3)-(25,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -300,7 +303,7 @@ │ │ └── block: ∅ │ └── operator_loc: (25,2)-(25,3) = "&" ├── @ CallNode (location: (27,0)-(27,11)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a @@ -314,6 +317,7 @@ │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocSplatNode (location: (27,2)-(27,10)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ CallNode (location: (27,4)-(27,10)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -329,7 +333,7 @@ │ ├── closing_loc: (27,10)-(27,11) = ")" │ └── block: ∅ ├── @ CallNode (location: (29,0)-(29,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (29,0)-(29,3)) │ │ ├── flags: ∅ @@ -359,7 +363,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (31,0)-(31,7)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a @@ -392,7 +396,7 @@ │ ├── closing_loc: (31,6)-(31,7) = ")" │ └── block: ∅ ├── @ CallNode (location: (33,0)-(33,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a @@ -402,7 +406,7 @@ │ ├── closing_loc: (33,2)-(33,3) = ")" │ └── block: ∅ ├── @ CallNode (location: (35,0)-(35,8)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a @@ -413,6 +417,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SplatNode (location: (35,2)-(35,7)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (35,2)-(35,3) = "*" │ │ └── expression: │ │ @ CallNode (location: (35,3)-(35,7)) @@ -428,7 +433,7 @@ │ ├── closing_loc: (35,7)-(35,8) = ")" │ └── block: ∅ ├── @ CallNode (location: (37,0)-(37,6)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a @@ -461,7 +466,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (39,0)-(39,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (39,0)-(39,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -504,6 +509,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ MultiWriteNode (location: (41,0)-(41,23)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ CallTargetNode (location: (41,0)-(41,7)) │ │ │ ├── flags: ∅ @@ -544,18 +550,18 @@ │ ├── operator_loc: (41,17)-(41,18) = "=" │ └── value: │ @ ArrayNode (location: (41,19)-(41,23)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (41,19)-(41,20)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (41,22)-(41,23)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: ∅ │ └── closing_loc: ∅ ├── @ CallNode (location: (43,0)-(43,4)) - │ ├── flags: safe_navigation + │ ├── flags: newline, safe_navigation │ ├── receiver: │ │ @ CallNode (location: (43,0)-(43,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -575,7 +581,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (45,0)-(45,5)) - │ ├── flags: safe_navigation + │ ├── flags: newline, safe_navigation │ ├── receiver: │ │ @ CallNode (location: (45,0)-(45,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -595,7 +601,7 @@ │ ├── closing_loc: (45,4)-(45,5) = ")" │ └── block: ∅ ├── @ CallNode (location: (47,0)-(47,7)) - │ ├── flags: safe_navigation + │ ├── flags: newline, safe_navigation │ ├── receiver: │ │ @ CallNode (location: (47,0)-(47,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -628,7 +634,7 @@ │ ├── closing_loc: (47,6)-(47,7) = ")" │ └── block: ∅ ├── @ CallNode (location: (49,0)-(49,6)) - │ ├── flags: safe_navigation + │ ├── flags: newline, safe_navigation │ ├── receiver: │ │ @ CallNode (location: (49,0)-(49,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -648,11 +654,14 @@ │ ├── closing_loc: (49,5)-(49,6) = ")" │ └── block: ∅ ├── @ IfNode (location: (51,0)-(51,33)) + │ ├── flags: newline │ ├── if_keyword_loc: (51,11)-(51,13) = "if" │ ├── predicate: │ │ @ AndNode (location: (51,14)-(51,33)) + │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ OrNode (location: (51,14)-(51,25)) + │ │ │ ├── flags: ∅ │ │ │ ├── left: │ │ │ │ @ CallNode (location: (51,14)-(51,18)) │ │ │ │ ├── flags: ignore_visibility @@ -691,9 +700,10 @@ │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (51,0)-(51,10)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (51,0)-(51,10)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :foo @@ -704,13 +714,13 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 2) │ │ │ ├── @ SymbolNode (location: (51,4)-(51,6)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (51,4)-(51,5) = ":" │ │ │ │ ├── value_loc: (51,5)-(51,6) = "a" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "a" │ │ │ └── @ SymbolNode (location: (51,8)-(51,10)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (51,8)-(51,9) = ":" │ │ │ ├── value_loc: (51,9)-(51,10) = "b" │ │ │ ├── closing_loc: ∅ @@ -720,7 +730,7 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: ∅ ├── @ CallNode (location: (53,0)-(56,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -731,13 +741,13 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ SymbolNode (location: (53,4)-(53,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (53,4)-(53,5) = ":" │ │ │ ├── value_loc: (53,5)-(53,6) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ └── @ SymbolNode (location: (55,2)-(55,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (55,2)-(55,3) = ":" │ │ ├── value_loc: (55,3)-(55,4) = "b" │ │ ├── closing_loc: ∅ @@ -745,7 +755,7 @@ │ ├── closing_loc: (56,0)-(56,1) = ")" │ └── block: ∅ ├── @ CallNode (location: (58,0)-(58,10)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -756,6 +766,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SplatNode (location: (58,4)-(58,9)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (58,4)-(58,5) = "*" │ │ └── expression: │ │ @ CallNode (location: (58,5)-(58,9)) @@ -771,7 +782,7 @@ │ ├── closing_loc: (58,9)-(58,10) = ")" │ └── block: ∅ ├── @ CallNode (location: (60,0)-(60,39)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -782,7 +793,7 @@ │ │ ├── flags: contains_keywords │ │ └── arguments: (length: 2) │ │ ├── @ SymbolNode (location: (60,4)-(60,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (60,4)-(60,5) = ":" │ │ │ ├── value_loc: (60,5)-(60,6) = "a" │ │ │ ├── closing_loc: ∅ @@ -791,25 +802,26 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 2) │ │ ├── @ AssocNode (location: (60,8)-(60,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (60,8)-(60,10)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (60,8)-(60,9) = ":" │ │ │ │ ├── value_loc: (60,9)-(60,10) = "h" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "h" │ │ │ ├── value: │ │ │ │ @ ArrayNode (location: (60,14)-(60,22)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: static_literal │ │ │ │ ├── elements: (length: 2) │ │ │ │ │ ├── @ SymbolNode (location: (60,15)-(60,17)) - │ │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ │ ├── opening_loc: (60,15)-(60,16) = ":" │ │ │ │ │ │ ├── value_loc: (60,16)-(60,17) = "x" │ │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ │ └── unescaped: "x" │ │ │ │ │ └── @ SymbolNode (location: (60,19)-(60,21)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: (60,19)-(60,20) = ":" │ │ │ │ │ ├── value_loc: (60,20)-(60,21) = "y" │ │ │ │ │ ├── closing_loc: ∅ @@ -818,16 +830,17 @@ │ │ │ │ └── closing_loc: (60,21)-(60,22) = "]" │ │ │ └── operator_loc: (60,11)-(60,13) = "=>" │ │ └── @ AssocNode (location: (60,24)-(60,32)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (60,24)-(60,26)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (60,24)-(60,25) = ":" │ │ │ ├── value_loc: (60,25)-(60,26) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ ├── value: │ │ │ @ SymbolNode (location: (60,30)-(60,32)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (60,30)-(60,31) = ":" │ │ │ ├── value_loc: (60,31)-(60,32) = "b" │ │ │ ├── closing_loc: ∅ @@ -836,16 +849,17 @@ │ ├── closing_loc: (60,39)-(60,40) = ")" │ └── block: │ @ BlockArgumentNode (location: (60,34)-(60,39)) + │ ├── flags: ∅ │ ├── expression: │ │ @ SymbolNode (location: (60,35)-(60,39)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (60,35)-(60,36) = ":" │ │ ├── value_loc: (60,36)-(60,39) = "bar" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "bar" │ └── operator_loc: (60,34)-(60,35) = "&" ├── @ CallNode (location: (62,0)-(62,49)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :hi @@ -856,45 +870,50 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ IntegerNode (location: (62,3)-(62,6)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 123 │ │ └── @ HashNode (location: (62,8)-(62,49)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (62,8)-(62,9) = "{" │ │ ├── elements: (length: 3) │ │ │ ├── @ AssocNode (location: (62,10)-(62,27)) + │ │ │ │ ├── flags: static_literal │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (62,10)-(62,16)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: (62,10)-(62,11) = ":" │ │ │ │ │ ├── value_loc: (62,11)-(62,16) = "there" │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── unescaped: "there" │ │ │ │ ├── value: │ │ │ │ │ @ SymbolNode (location: (62,20)-(62,27)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: (62,20)-(62,21) = ":" │ │ │ │ │ ├── value_loc: (62,21)-(62,27) = "friend" │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── unescaped: "friend" │ │ │ │ └── operator_loc: (62,17)-(62,19) = "=>" │ │ │ ├── @ AssocSplatNode (location: (62,29)-(62,33)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── value: │ │ │ │ │ @ HashNode (location: (62,31)-(62,33)) + │ │ │ │ │ ├── flags: static_literal │ │ │ │ │ ├── opening_loc: (62,31)-(62,32) = "{" │ │ │ │ │ ├── elements: (length: 0) │ │ │ │ │ └── closing_loc: (62,32)-(62,33) = "}" │ │ │ │ └── operator_loc: (62,29)-(62,31) = "**" │ │ │ └── @ AssocNode (location: (62,35)-(62,47)) + │ │ │ ├── flags: static_literal │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (62,35)-(62,42)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (62,35)-(62,41) = "whatup" │ │ │ │ ├── closing_loc: (62,41)-(62,42) = ":" │ │ │ │ └── unescaped: "whatup" │ │ │ ├── value: │ │ │ │ @ SymbolNode (location: (62,43)-(62,47)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (62,43)-(62,44) = ":" │ │ │ │ ├── value_loc: (62,44)-(62,47) = "dog" │ │ │ │ ├── closing_loc: ∅ @@ -904,7 +923,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (64,0)-(64,36)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -915,7 +934,7 @@ │ │ ├── flags: contains_keywords │ │ └── arguments: (length: 2) │ │ ├── @ SymbolNode (location: (64,4)-(64,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (64,4)-(64,5) = ":" │ │ │ ├── value_loc: (64,5)-(64,6) = "a" │ │ │ ├── closing_loc: ∅ @@ -924,24 +943,29 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (64,8)-(64,15)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (64,8)-(64,10)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (64,8)-(64,9) = "b" │ │ │ ├── closing_loc: (64,9)-(64,10) = ":" │ │ │ └── unescaped: "b" │ │ ├── value: │ │ │ @ TrueNode (location: (64,11)-(64,15)) + │ │ │ └── flags: static_literal │ │ └── operator_loc: ∅ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (64,16)-(64,36)) + │ ├── flags: ∅ │ ├── locals: [:a, :b] │ ├── parameters: │ │ @ BlockParametersNode (location: (64,19)-(64,25)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (64,20)-(64,24)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 2) │ │ │ │ ├── @ RequiredParameterNode (location: (64,20)-(64,21)) │ │ │ │ │ ├── flags: ∅ @@ -960,9 +984,10 @@ │ │ └── closing_loc: (64,24)-(64,25) = "|" │ ├── body: │ │ @ StatementsNode (location: (64,26)-(64,32)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (64,26)-(64,32)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :puts @@ -973,6 +998,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ LocalVariableReadNode (location: (64,31)-(64,32)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ ├── closing_loc: ∅ @@ -980,7 +1006,7 @@ │ ├── opening_loc: (64,16)-(64,18) = "do" │ └── closing_loc: (64,33)-(64,36) = "end" ├── @ CallNode (location: (66,0)-(66,17)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :hi @@ -994,16 +1020,17 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (66,3)-(66,17)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (66,3)-(66,9)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (66,3)-(66,8) = "there" │ │ │ ├── closing_loc: (66,8)-(66,9) = ":" │ │ │ └── unescaped: "there" │ │ ├── value: │ │ │ @ SymbolNode (location: (66,10)-(66,17)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (66,10)-(66,11) = ":" │ │ │ ├── value_loc: (66,11)-(66,17) = "friend" │ │ │ ├── closing_loc: ∅ @@ -1012,7 +1039,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (68,0)-(68,40)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :hi @@ -1026,39 +1053,43 @@ │ │ ├── flags: ∅ │ │ └── elements: (length: 3) │ │ ├── @ AssocNode (location: (68,3)-(68,20)) + │ │ │ ├── flags: static_literal │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (68,3)-(68,9)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (68,3)-(68,4) = ":" │ │ │ │ ├── value_loc: (68,4)-(68,9) = "there" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "there" │ │ │ ├── value: │ │ │ │ @ SymbolNode (location: (68,13)-(68,20)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (68,13)-(68,14) = ":" │ │ │ │ ├── value_loc: (68,14)-(68,20) = "friend" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "friend" │ │ │ └── operator_loc: (68,10)-(68,12) = "=>" │ │ ├── @ AssocSplatNode (location: (68,22)-(68,26)) + │ │ │ ├── flags: ∅ │ │ │ ├── value: │ │ │ │ @ HashNode (location: (68,24)-(68,26)) + │ │ │ │ ├── flags: static_literal │ │ │ │ ├── opening_loc: (68,24)-(68,25) = "{" │ │ │ │ ├── elements: (length: 0) │ │ │ │ └── closing_loc: (68,25)-(68,26) = "}" │ │ │ └── operator_loc: (68,22)-(68,24) = "**" │ │ └── @ AssocNode (location: (68,28)-(68,40)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (68,28)-(68,35)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (68,28)-(68,34) = "whatup" │ │ │ ├── closing_loc: (68,34)-(68,35) = ":" │ │ │ └── unescaped: "whatup" │ │ ├── value: │ │ │ @ SymbolNode (location: (68,36)-(68,40)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (68,36)-(68,37) = ":" │ │ │ ├── value_loc: (68,37)-(68,40) = "dog" │ │ │ ├── closing_loc: ∅ @@ -1067,7 +1098,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (70,0)-(70,41)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :hi @@ -1081,39 +1112,43 @@ │ │ ├── flags: ∅ │ │ └── elements: (length: 3) │ │ ├── @ AssocNode (location: (70,3)-(70,20)) + │ │ │ ├── flags: static_literal │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (70,3)-(70,9)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (70,3)-(70,4) = ":" │ │ │ │ ├── value_loc: (70,4)-(70,9) = "there" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "there" │ │ │ ├── value: │ │ │ │ @ SymbolNode (location: (70,13)-(70,20)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (70,13)-(70,14) = ":" │ │ │ │ ├── value_loc: (70,14)-(70,20) = "friend" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "friend" │ │ │ └── operator_loc: (70,10)-(70,12) = "=>" │ │ ├── @ AssocSplatNode (location: (70,22)-(70,26)) + │ │ │ ├── flags: ∅ │ │ │ ├── value: │ │ │ │ @ HashNode (location: (70,24)-(70,26)) + │ │ │ │ ├── flags: static_literal │ │ │ │ ├── opening_loc: (70,24)-(70,25) = "{" │ │ │ │ ├── elements: (length: 0) │ │ │ │ └── closing_loc: (70,25)-(70,26) = "}" │ │ │ └── operator_loc: (70,22)-(70,24) = "**" │ │ └── @ AssocNode (location: (70,28)-(70,40)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (70,28)-(70,35)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (70,28)-(70,34) = "whatup" │ │ │ ├── closing_loc: (70,34)-(70,35) = ":" │ │ │ └── unescaped: "whatup" │ │ ├── value: │ │ │ @ SymbolNode (location: (70,36)-(70,40)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (70,36)-(70,37) = ":" │ │ │ ├── value_loc: (70,37)-(70,40) = "dog" │ │ │ ├── closing_loc: ∅ @@ -1122,7 +1157,7 @@ │ ├── closing_loc: (70,40)-(70,41) = ")" │ └── block: ∅ ├── @ CallNode (location: (72,0)-(72,35)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1133,44 +1168,50 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ HashNode (location: (72,4)-(72,26)) + │ │ ├── flags: static_literal │ │ ├── opening_loc: (72,4)-(72,5) = "{" │ │ ├── elements: (length: 2) │ │ │ ├── @ AssocNode (location: (72,6)-(72,13)) + │ │ │ │ ├── flags: static_literal │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (72,6)-(72,8)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (72,6)-(72,7) = "a" │ │ │ │ │ ├── closing_loc: (72,7)-(72,8) = ":" │ │ │ │ │ └── unescaped: "a" │ │ │ │ ├── value: │ │ │ │ │ @ TrueNode (location: (72,9)-(72,13)) + │ │ │ │ │ └── flags: static_literal │ │ │ │ └── operator_loc: ∅ │ │ │ └── @ AssocNode (location: (72,15)-(72,23)) + │ │ │ ├── flags: static_literal │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (72,15)-(72,17)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (72,15)-(72,16) = "b" │ │ │ │ ├── closing_loc: (72,16)-(72,17) = ":" │ │ │ │ └── unescaped: "b" │ │ │ ├── value: │ │ │ │ @ FalseNode (location: (72,18)-(72,23)) + │ │ │ │ └── flags: static_literal │ │ │ └── operator_loc: ∅ │ │ └── closing_loc: (72,25)-(72,26) = "}" │ ├── closing_loc: (72,35)-(72,36) = ")" │ └── block: │ @ BlockArgumentNode (location: (72,28)-(72,35)) + │ ├── flags: ∅ │ ├── expression: │ │ @ SymbolNode (location: (72,29)-(72,35)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (72,29)-(72,30) = ":" │ │ ├── value_loc: (72,30)-(72,35) = "block" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "block" │ └── operator_loc: (72,28)-(72,29) = "&" ├── @ CallNode (location: (74,0)-(74,20)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :hi @@ -1184,16 +1225,17 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (74,3)-(74,20)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (74,3)-(74,9)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (74,3)-(74,4) = ":" │ │ │ ├── value_loc: (74,4)-(74,9) = "there" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "there" │ │ ├── value: │ │ │ @ SymbolNode (location: (74,13)-(74,20)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (74,13)-(74,14) = ":" │ │ │ ├── value_loc: (74,14)-(74,20) = "friend" │ │ │ ├── closing_loc: ∅ @@ -1202,7 +1244,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (76,0)-(78,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1213,13 +1255,13 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ SymbolNode (location: (76,4)-(76,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (76,4)-(76,5) = ":" │ │ │ ├── value_loc: (76,5)-(76,6) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ └── @ SymbolNode (location: (77,0)-(77,2)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (77,0)-(77,1) = ":" │ │ ├── value_loc: (77,1)-(77,2) = "b" │ │ ├── closing_loc: ∅ @@ -1227,7 +1269,7 @@ │ ├── closing_loc: (78,0)-(78,1) = ")" │ └── block: ∅ ├── @ CallNode (location: (80,0)-(83,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1238,7 +1280,7 @@ │ │ ├── flags: contains_keywords │ │ └── arguments: (length: 2) │ │ ├── @ SymbolNode (location: (81,0)-(81,2)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (81,0)-(81,1) = ":" │ │ │ ├── value_loc: (81,1)-(81,2) = "a" │ │ │ ├── closing_loc: ∅ @@ -1247,16 +1289,17 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (82,0)-(82,5)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (82,0)-(82,2)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (82,0)-(82,1) = "b" │ │ │ ├── closing_loc: (82,1)-(82,2) = ":" │ │ │ └── unescaped: "b" │ │ ├── value: │ │ │ @ SymbolNode (location: (82,3)-(82,5)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (82,3)-(82,4) = ":" │ │ │ ├── value_loc: (82,4)-(82,5) = "c" │ │ │ ├── closing_loc: ∅ @@ -1265,7 +1308,7 @@ │ ├── closing_loc: (83,0)-(83,1) = ")" │ └── block: ∅ ├── @ CallNode (location: (85,0)-(85,11)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1275,16 +1318,17 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockArgumentNode (location: (85,4)-(85,11)) + │ ├── flags: ∅ │ ├── expression: │ │ @ SymbolNode (location: (85,5)-(85,11)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (85,5)-(85,6) = ":" │ │ ├── value_loc: (85,6)-(85,11) = "block" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "block" │ └── operator_loc: (85,4)-(85,5) = "&" ├── @ CallNode (location: (87,0)-(87,30)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1298,40 +1342,45 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 2) │ │ ├── @ AssocNode (location: (87,4)-(87,11)) + │ │ │ ├── flags: static_literal │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (87,4)-(87,6)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (87,4)-(87,5) = "a" │ │ │ │ ├── closing_loc: (87,5)-(87,6) = ":" │ │ │ │ └── unescaped: "a" │ │ │ ├── value: │ │ │ │ @ TrueNode (location: (87,7)-(87,11)) + │ │ │ │ └── flags: static_literal │ │ │ └── operator_loc: ∅ │ │ └── @ AssocNode (location: (87,13)-(87,21)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (87,13)-(87,15)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (87,13)-(87,14) = "b" │ │ │ ├── closing_loc: (87,14)-(87,15) = ":" │ │ │ └── unescaped: "b" │ │ ├── value: │ │ │ @ FalseNode (location: (87,16)-(87,21)) + │ │ │ └── flags: static_literal │ │ └── operator_loc: ∅ │ ├── closing_loc: ∅ │ └── block: │ @ BlockArgumentNode (location: (87,23)-(87,30)) + │ ├── flags: ∅ │ ├── expression: │ │ @ SymbolNode (location: (87,24)-(87,30)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (87,24)-(87,25) = ":" │ │ ├── value_loc: (87,25)-(87,30) = "block" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "block" │ └── operator_loc: (87,23)-(87,24) = "&" ├── @ CallNode (location: (89,0)-(89,21)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :some_func @@ -1342,30 +1391,32 @@ │ │ ├── flags: contains_keywords │ │ └── arguments: (length: 2) │ │ ├── @ IntegerNode (location: (89,10)-(89,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ KeywordHashNode (location: (89,13)-(89,21)) │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (89,13)-(89,21)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (89,13)-(89,19)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (89,13)-(89,18) = "kwarg" │ │ │ ├── closing_loc: (89,18)-(89,19) = ":" │ │ │ └── unescaped: "kwarg" │ │ ├── value: │ │ │ @ IntegerNode (location: (89,20)-(89,21)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: ∅ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (91,0)-(91,18)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (91,0)-(91,6)) + │ │ ├── flags: ∅ │ │ └── name: :Kernel │ ├── call_operator_loc: (91,6)-(91,7) = "." │ ├── name: :Integer @@ -1376,12 +1427,12 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (91,15)-(91,17)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 10 │ ├── closing_loc: (91,17)-(91,18) = ")" │ └── block: ∅ ├── @ CallNode (location: (93,0)-(93,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (93,0)-(93,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -1401,13 +1452,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (93,7)-(93,10)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ │ ├── opening_loc: (93,7)-(93,8) = "{" │ └── closing_loc: (93,9)-(93,10) = "}" ├── @ CallNode (location: (95,0)-(95,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (95,0)-(95,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1427,21 +1479,26 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (95,8)-(95,14)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (95,10)-(95,12)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ BackReferenceReadNode (location: (95,10)-(95,12)) + │ │ ├── flags: newline │ │ └── name: :$& │ ├── opening_loc: (95,8)-(95,9) = "{" │ └── closing_loc: (95,13)-(95,14) = "}" ├── @ CallNode (location: (97,0)-(97,12)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantPathNode (location: (97,0)-(97,4)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantReadNode (location: (97,0)-(97,1)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── name: :B │ │ ├── delimiter_loc: (97,1)-(97,3) = "::" @@ -1455,7 +1512,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SymbolNode (location: (97,8)-(97,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (97,8)-(97,9) = ":" │ │ ├── value_loc: (97,9)-(97,12) = "foo" │ │ ├── closing_loc: ∅ @@ -1463,11 +1520,13 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (99,0)-(99,13)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantPathNode (location: (99,0)-(99,4)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantReadNode (location: (99,0)-(99,1)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── name: :B │ │ ├── delimiter_loc: (99,1)-(99,3) = "::" @@ -1481,7 +1540,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SymbolNode (location: (99,8)-(99,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (99,8)-(99,9) = ":" │ │ ├── value_loc: (99,9)-(99,12) = "foo" │ │ ├── closing_loc: ∅ @@ -1489,11 +1548,13 @@ │ ├── closing_loc: (99,12)-(99,13) = ")" │ └── block: ∅ ├── @ CallNode (location: (101,0)-(101,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantPathNode (location: (101,0)-(101,4)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantReadNode (location: (101,0)-(101,1)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── name: :B │ │ ├── delimiter_loc: (101,1)-(101,3) = "::" @@ -1507,7 +1568,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SymbolNode (location: (101,8)-(101,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (101,8)-(101,9) = ":" │ │ ├── value_loc: (101,9)-(101,12) = "foo" │ │ ├── closing_loc: ∅ @@ -1515,13 +1576,14 @@ │ ├── closing_loc: (101,12)-(101,13) = ")" │ └── block: │ @ BlockNode (location: (101,14)-(101,17)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ │ ├── opening_loc: (101,14)-(101,15) = "{" │ └── closing_loc: (101,16)-(101,17) = "}" ├── @ CallNode (location: (103,0)-(103,12)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1535,22 +1597,23 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (103,4)-(103,11)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (103,4)-(103,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (103,4)-(103,5) = "\"" │ │ │ ├── value_loc: (103,5)-(103,6) = "a" │ │ │ ├── closing_loc: (103,6)-(103,8) = "\":" │ │ │ └── unescaped: "a" │ │ ├── value: │ │ │ @ IntegerNode (location: (103,9)-(103,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: -1 │ │ └── operator_loc: ∅ │ ├── closing_loc: (103,11)-(103,12) = ")" │ └── block: ∅ ├── @ CallNode (location: (105,0)-(105,28)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1564,21 +1627,24 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (105,4)-(105,28)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (105,4)-(105,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (105,4)-(105,7) = "bar" │ │ │ ├── closing_loc: (105,7)-(105,8) = ":" │ │ │ └── unescaped: "bar" │ │ ├── value: │ │ │ @ HashNode (location: (105,9)-(105,28)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (105,9)-(105,10) = "{" │ │ │ ├── elements: (length: 1) │ │ │ │ └── @ AssocNode (location: (105,11)-(105,26)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (105,11)-(105,15)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (105,11)-(105,14) = "baz" │ │ │ │ │ ├── closing_loc: (105,14)-(105,15) = ":" @@ -1595,6 +1661,7 @@ │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── block: │ │ │ │ │ @ BlockNode (location: (105,20)-(105,26)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── locals: [] │ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ ├── body: ∅ @@ -1606,7 +1673,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (107,0)-(107,24)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1620,18 +1687,21 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (107,4)-(107,24)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (107,4)-(107,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (107,4)-(107,7) = "bar" │ │ │ ├── closing_loc: (107,7)-(107,8) = ":" │ │ │ └── unescaped: "bar" │ │ ├── value: │ │ │ @ HashNode (location: (107,9)-(107,24)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (107,9)-(107,10) = "{" │ │ │ ├── elements: (length: 1) │ │ │ │ └── @ AssocSplatNode (location: (107,11)-(107,22)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── value: │ │ │ │ │ @ CallNode (location: (107,13)-(107,22)) │ │ │ │ │ ├── flags: ignore_visibility @@ -1644,6 +1714,7 @@ │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── block: │ │ │ │ │ @ BlockNode (location: (107,16)-(107,22)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── locals: [] │ │ │ │ │ ├── parameters: ∅ │ │ │ │ │ ├── body: ∅ @@ -1655,7 +1726,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (109,0)-(109,36)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1670,9 +1741,11 @@ │ │ ├── opening_loc: (109,4)-(109,5) = "\"" │ │ ├── parts: (length: 1) │ │ │ └── @ EmbeddedStatementsNode (location: (109,5)-(109,28)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (109,5)-(109,7) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (109,7)-(109,27)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (109,7)-(109,27)) │ │ │ │ ├── flags: ∅ @@ -1695,13 +1768,15 @@ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── block: │ │ │ │ @ BlockNode (location: (109,15)-(109,27)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── locals: [] │ │ │ │ ├── parameters: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (109,18)-(109,23)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ StringNode (location: (109,18)-(109,23)) - │ │ │ │ │ ├── flags: ∅ + │ │ │ │ │ ├── flags: newline │ │ │ │ │ ├── opening_loc: (109,18)-(109,19) = "\"" │ │ │ │ │ ├── content_loc: (109,19)-(109,22) = "baz" │ │ │ │ │ ├── closing_loc: (109,22)-(109,23) = "\"" @@ -1713,13 +1788,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (109,30)-(109,36)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ │ ├── opening_loc: (109,30)-(109,32) = "do" │ └── closing_loc: (109,33)-(109,36) = "end" ├── @ CallNode (location: (111,0)-(111,28)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1730,18 +1806,21 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ClassNode (location: (111,4)-(111,28)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── class_keyword_loc: (111,4)-(111,9) = "class" │ │ ├── constant_path: │ │ │ @ ConstantReadNode (location: (111,10)-(111,13)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Bar │ │ ├── inheritance_operator_loc: ∅ │ │ ├── superclass: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (111,14)-(111,24)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (111,14)-(111,24)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :baz @@ -1751,6 +1830,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: │ │ │ @ BlockNode (location: (111,18)-(111,24)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [] │ │ │ ├── parameters: ∅ │ │ │ ├── body: ∅ @@ -1761,7 +1841,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (113,0)-(113,29)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1772,16 +1852,19 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ModuleNode (location: (113,4)-(113,29)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── module_keyword_loc: (113,4)-(113,10) = "module" │ │ ├── constant_path: │ │ │ @ ConstantReadNode (location: (113,11)-(113,14)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Bar │ │ ├── body: │ │ │ @ StatementsNode (location: (113,15)-(113,25)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (113,15)-(113,25)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :baz @@ -1791,6 +1874,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: │ │ │ @ BlockNode (location: (113,19)-(113,25)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [] │ │ │ ├── parameters: ∅ │ │ │ ├── body: ∅ @@ -1801,7 +1885,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (115,0)-(115,16)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1825,6 +1909,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: │ │ │ @ BlockNode (location: (115,9)-(115,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [] │ │ │ ├── parameters: ∅ │ │ │ ├── body: ∅ @@ -1835,7 +1920,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (117,0)-(117,28)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :p @@ -1846,15 +1931,17 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ BeginNode (location: (117,2)-(117,28)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: (117,2)-(117,7) = "begin" │ │ ├── statements: │ │ │ @ StatementsNode (location: (117,8)-(117,24)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (117,8)-(117,24)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ IntegerNode (location: (117,8)-(117,9)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── call_operator_loc: (117,9)-(117,10) = "." │ │ │ ├── name: :times @@ -1864,13 +1951,15 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: │ │ │ @ BlockNode (location: (117,16)-(117,24)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [] │ │ │ ├── parameters: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (117,19)-(117,20)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (117,19)-(117,20)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── opening_loc: (117,16)-(117,18) = "do" │ │ │ └── closing_loc: (117,21)-(117,24) = "end" @@ -1881,7 +1970,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (119,0)-(124,5)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1892,12 +1981,13 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ SymbolNode (location: (119,4)-(119,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (119,4)-(119,5) = ":" │ │ │ ├── value_loc: (119,5)-(119,6) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ └── @ IfNode (location: (120,2)-(124,5)) + │ │ ├── flags: newline │ │ ├── if_keyword_loc: (120,2)-(120,4) = "if" │ │ ├── predicate: │ │ │ @ CallNode (location: (120,5)-(120,6)) @@ -1913,9 +2003,10 @@ │ │ ├── then_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (121,4)-(123,7)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (121,4)-(123,7)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -1925,11 +2016,14 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: │ │ │ @ BlockNode (location: (121,8)-(123,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [:a] │ │ │ ├── parameters: │ │ │ │ @ BlockParametersNode (location: (121,11)-(121,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── parameters: │ │ │ │ │ @ ParametersNode (location: (121,12)-(121,13)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ │ └── @ RequiredParameterNode (location: (121,12)-(121,13)) │ │ │ │ │ │ ├── flags: ∅ @@ -1945,8 +2039,10 @@ │ │ │ │ └── closing_loc: (121,13)-(121,14) = "|" │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (122,6)-(122,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ LocalVariableReadNode (location: (122,6)-(122,7)) + │ │ │ │ ├── flags: newline │ │ │ │ ├── name: :a │ │ │ │ └── depth: 0 │ │ │ ├── opening_loc: (121,8)-(121,10) = "do" @@ -1956,7 +2052,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (126,0)-(135,5)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1967,7 +2063,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 3) │ │ ├── @ SymbolNode (location: (126,4)-(126,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (126,4)-(126,5) = ":" │ │ │ ├── value_loc: (126,5)-(126,6) = "a" │ │ │ ├── closing_loc: ∅ @@ -1989,9 +2085,10 @@ │ │ │ │ └── block: ∅ │ │ │ └── statements: │ │ │ @ StatementsNode (location: (128,4)-(130,7)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (128,4)-(130,7)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -2001,11 +2098,14 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: │ │ │ @ BlockNode (location: (128,8)-(130,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [:a] │ │ │ ├── parameters: │ │ │ │ @ BlockParametersNode (location: (128,11)-(128,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── parameters: │ │ │ │ │ @ ParametersNode (location: (128,12)-(128,13)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ │ └── @ RequiredParameterNode (location: (128,12)-(128,13)) │ │ │ │ │ │ ├── flags: ∅ @@ -2021,8 +2121,10 @@ │ │ │ │ └── closing_loc: (128,13)-(128,14) = "|" │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (129,6)-(129,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ LocalVariableReadNode (location: (129,6)-(129,7)) + │ │ │ │ ├── flags: newline │ │ │ │ ├── name: :a │ │ │ │ └── depth: 0 │ │ │ ├── opening_loc: (128,8)-(128,10) = "do" @@ -2044,9 +2146,10 @@ │ │ │ └── block: ∅ │ │ └── statements: │ │ @ StatementsNode (location: (133,4)-(134,7)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (133,4)-(134,7)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :baz @@ -2056,6 +2159,7 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (133,8)-(134,7)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: ∅ @@ -2064,9 +2168,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (137,0)-(137,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ HashNode (location: (137,0)-(137,2)) + │ │ ├── flags: static_literal │ │ ├── opening_loc: (137,0)-(137,1) = "{" │ │ ├── elements: (length: 0) │ │ └── closing_loc: (137,1)-(137,2) = "}" @@ -2089,6 +2194,7 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (137,7)-(137,9)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: ∅ @@ -2097,9 +2203,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (139,0)-(139,16)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ HashNode (location: (139,0)-(139,2)) + │ │ ├── flags: static_literal │ │ ├── opening_loc: (139,0)-(139,1) = "{" │ │ ├── elements: (length: 0) │ │ └── closing_loc: (139,1)-(139,2) = "}" @@ -2122,11 +2229,14 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (139,7)-(139,16)) + │ │ ├── flags: ∅ │ │ ├── locals: [:a] │ │ ├── parameters: │ │ │ @ BlockParametersNode (location: (139,9)-(139,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── parameters: │ │ │ │ @ ParametersNode (location: (139,10)-(139,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ └── @ RequiredParameterNode (location: (139,10)-(139,11)) │ │ │ │ │ ├── flags: ∅ @@ -2142,8 +2252,10 @@ │ │ │ └── closing_loc: (139,11)-(139,12) = "|" │ │ ├── body: │ │ │ @ StatementsNode (location: (139,13)-(139,14)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableReadNode (location: (139,13)-(139,14)) + │ │ │ ├── flags: newline │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ ├── opening_loc: (139,7)-(139,8) = "{" @@ -2151,7 +2263,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (141,0)-(141,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (141,0)-(141,4)) │ │ ├── flags: ignore_visibility @@ -2164,6 +2276,7 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (141,2)-(141,4)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: ∅ @@ -2188,6 +2301,7 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (141,9)-(141,11)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: ∅ @@ -2196,7 +2310,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (143,0)-(143,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (143,0)-(143,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2227,6 +2341,7 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (143,9)-(143,11)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: ∅ @@ -2235,13 +2350,15 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ InterpolatedStringNode (location: (145,0)-(145,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (145,0)-(145,1) = "\"" │ ├── parts: (length: 1) │ │ └── @ EmbeddedStatementsNode (location: (145,1)-(145,16)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (145,1)-(145,3) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (145,4)-(145,14)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (145,4)-(145,14)) │ │ │ ├── flags: ignore_visibility @@ -2255,11 +2372,13 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ ParenthesesNode (location: (145,9)-(145,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (145,10)-(145,13)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ StringNode (location: (145,10)-(145,13)) - │ │ │ │ │ ├── flags: ∅ + │ │ │ │ │ ├── flags: newline │ │ │ │ │ ├── opening_loc: (145,10)-(145,11) = "\"" │ │ │ │ │ ├── content_loc: (145,11)-(145,12) = " " │ │ │ │ │ ├── closing_loc: (145,12)-(145,13) = "\"" @@ -2271,20 +2390,24 @@ │ │ └── closing_loc: (145,15)-(145,16) = "}" │ └── closing_loc: (145,16)-(145,17) = "\"" ├── @ InterpolatedStringNode (location: (147,0)-(147,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (147,0)-(147,1) = "\"" │ ├── parts: (length: 1) │ │ └── @ EmbeddedStatementsNode (location: (147,1)-(147,7)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (147,1)-(147,3) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (147,3)-(147,6)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ ParenthesesNode (location: (147,3)-(147,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (147,4)-(147,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (147,4)-(147,5)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :v @@ -2298,11 +2421,13 @@ │ │ └── closing_loc: (147,6)-(147,7) = "}" │ └── closing_loc: (147,7)-(147,8) = "\"" ├── @ DefNode (location: (149,0)-(149,18)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (149,4)-(149,5) = "f" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (149,6)-(149,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -2317,9 +2442,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (149,10)-(149,13)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (149,10)-(149,13)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :p @@ -2330,6 +2456,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ SplatNode (location: (149,12)-(149,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (149,12)-(149,13) = "*" │ │ │ └── expression: ∅ │ │ ├── closing_loc: ∅ @@ -2342,7 +2469,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (149,15)-(149,18) = "end" ├── @ CallNode (location: (151,0)-(151,16)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -2353,7 +2480,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ IntegerNode (location: (151,4)-(151,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ CallNode (location: (151,7)-(151,16)) │ │ ├── flags: ignore_visibility @@ -2366,29 +2493,32 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (151,11)-(151,16)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (151,13)-(151,14)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ IntegerNode (location: (151,13)-(151,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: newline, static_literal, decimal │ │ │ └── value: 1 │ │ ├── opening_loc: (151,11)-(151,12) = "{" │ │ └── closing_loc: (151,15)-(151,16) = "}" │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ LocalVariableWriteNode (location: (153,0)-(153,7)) + │ ├── flags: newline │ ├── name: :foo │ ├── depth: 0 │ ├── name_loc: (153,0)-(153,3) = "foo" │ ├── value: │ │ @ IntegerNode (location: (153,6)-(153,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (153,4)-(153,5) = "=" ├── @ CallNode (location: (154,0)-(154,6)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -2398,15 +2528,17 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (154,4)-(154,6)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ │ ├── opening_loc: (154,4)-(154,5) = "{" │ └── closing_loc: (154,5)-(154,6) = "}" └── @ CallNode (location: (156,0)-(156,19)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ InstanceVariableReadNode (location: (156,0)-(156,2)) + │ ├── flags: ∅ │ └── name: :@a ├── call_operator_loc: (156,2)-(156,3) = "." ├── name: :b @@ -2420,20 +2552,24 @@ │ ├── flags: ∅ │ └── elements: (length: 1) │ └── @ AssocNode (location: (156,5)-(156,19)) + │ ├── flags: ∅ │ ├── key: │ │ @ InterpolatedSymbolNode (location: (156,5)-(156,16)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (156,5)-(156,6) = "\"" │ │ ├── parts: (length: 2) │ │ │ ├── @ StringNode (location: (156,6)-(156,7)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (156,6)-(156,7) = "c" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "c" │ │ │ └── @ EmbeddedStatementsNode (location: (156,7)-(156,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (156,7)-(156,9) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (156,9)-(156,13)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (156,9)-(156,13)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -2449,7 +2585,7 @@ │ │ └── closing_loc: (156,14)-(156,16) = "\":" │ ├── value: │ │ @ IntegerNode (location: (156,17)-(156,19)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 42 │ └── operator_loc: ∅ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/methods.txt b/test/prism/snapshots/methods.txt index b38640399b..0fd1a7f43a 100644 --- a/test/prism/snapshots/methods.txt +++ b/test/prism/snapshots/methods.txt @@ -1,16 +1,21 @@ @ ProgramNode (location: (1,0)-(183,37)) +├── flags: ∅ ├── locals: [:a, :c, :foo] └── statements: @ StatementsNode (location: (1,0)-(183,37)) + ├── flags: ∅ └── body: (length: 69) ├── @ DefNode (location: (1,0)-(2,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (1,4)-(1,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,8)-(1,18)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ MultiTargetNode (location: (1,8)-(1,18)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 2) │ │ │ │ ├── @ RequiredParameterNode (location: (1,9)-(1,12)) │ │ │ │ │ ├── flags: ∅ @@ -37,13 +42,16 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (2,0)-(2,3) = "end" ├── @ DefNode (location: (4,0)-(5,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (4,4)-(4,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (4,8)-(4,44)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ MultiTargetNode (location: (4,8)-(4,18)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 2) │ │ │ │ ├── @ RequiredParameterNode (location: (4,9)-(4,12)) │ │ │ │ │ ├── flags: ∅ @@ -63,11 +71,12 @@ │ │ │ ├── operator_loc: (4,29)-(4,30) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (4,31)-(4,32)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rest: ∅ │ │ ├── posts: (length: 1) │ │ │ └── @ MultiTargetNode (location: (4,34)-(4,44)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 2) │ │ │ │ ├── @ RequiredParameterNode (location: (4,35)-(4,38)) │ │ │ │ │ ├── flags: ∅ @@ -91,18 +100,21 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (5,0)-(5,3) = "end" ├── @ DefNode (location: (8,0)-(8,18)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (8,4)-(8,5) = "a" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (8,0)-(8,18)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: ∅ │ │ ├── rescue_clause: ∅ │ │ ├── else_clause: ∅ │ │ ├── ensure_clause: │ │ │ @ EnsureNode (location: (8,7)-(8,18)) + │ │ │ ├── flags: ∅ │ │ │ ├── ensure_keyword_loc: (8,7)-(8,13) = "ensure" │ │ │ ├── statements: ∅ │ │ │ └── end_keyword_loc: (8,15)-(8,18) = "end" @@ -115,10 +127,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (8,15)-(8,18) = "end" ├── @ DefNode (location: (10,0)-(11,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (10,8)-(10,9) = "a" │ ├── receiver: │ │ @ ParenthesesNode (location: (10,4)-(10,7)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ CallNode (location: (10,5)-(10,6)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -142,10 +156,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (11,0)-(11,3) = "end" ├── @ DefNode (location: (13,0)-(14,3)) + │ ├── flags: newline │ ├── name: :b │ ├── name_loc: (13,9)-(13,10) = "b" │ ├── receiver: │ │ @ ParenthesesNode (location: (13,4)-(13,7)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ CallNode (location: (13,5)-(13,6)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -169,10 +185,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (14,0)-(14,3) = "end" ├── @ DefNode (location: (16,0)-(17,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (16,10)-(16,11) = "a" │ ├── receiver: │ │ @ FalseNode (location: (16,4)-(16,9)) + │ │ └── flags: static_literal │ ├── parameters: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -183,11 +201,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (17,0)-(17,3) = "end" ├── @ DefNode (location: (19,0)-(20,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (19,4)-(19,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (19,6)-(19,9)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -195,6 +215,7 @@ │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (19,6)-(19,9)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -205,10 +226,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (20,0)-(20,3) = "end" ├── @ DefNode (location: (22,0)-(23,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (22,9)-(22,10) = "a" │ ├── receiver: │ │ @ GlobalVariableReadNode (location: (22,4)-(22,8)) + │ │ ├── flags: ∅ │ │ └── name: :$var │ ├── parameters: ∅ │ ├── body: ∅ @@ -220,6 +243,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (23,0)-(23,3) = "end" ├── @ DefNode (location: (25,0)-(26,3)) + │ ├── flags: newline │ ├── name: :b │ ├── name_loc: (25,6)-(25,7) = "b" │ ├── receiver: @@ -243,10 +267,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (26,0)-(26,3) = "end" ├── @ DefNode (location: (28,0)-(29,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (28,9)-(28,10) = "a" │ ├── receiver: │ │ @ InstanceVariableReadNode (location: (28,4)-(28,8)) + │ │ ├── flags: ∅ │ │ └── name: :@var │ ├── parameters: ∅ │ ├── body: ∅ @@ -258,11 +284,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (29,0)-(29,3) = "end" ├── @ DefNode (location: (31,0)-(31,13)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (31,4)-(31,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (31,6)-(31,8)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -283,17 +311,19 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (31,10)-(31,13) = "end" ├── @ StringNode (location: (33,0)-(33,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (33,0)-(33,2) = "%," │ ├── content_loc: (33,2)-(33,5) = "abc" │ ├── closing_loc: (33,5)-(33,6) = "," │ └── unescaped: "abc" ├── @ DefNode (location: (35,0)-(36,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (35,4)-(35,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (35,6)-(35,8)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -314,11 +344,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (36,0)-(36,3) = "end" ├── @ DefNode (location: (38,0)-(39,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (38,4)-(38,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (38,6)-(38,9)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -340,11 +372,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (39,0)-(39,3) = "end" ├── @ DefNode (location: (41,0)-(42,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (41,4)-(41,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (41,6)-(41,8)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -366,15 +400,17 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (42,0)-(42,3) = "end" ├── @ LocalVariableWriteNode (location: (44,0)-(44,5)) + │ ├── flags: newline │ ├── name: :a │ ├── depth: 0 │ ├── name_loc: (44,0)-(44,1) = "a" │ ├── value: │ │ @ IntegerNode (location: (44,4)-(44,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (44,2)-(44,3) = "=" ├── @ DefNode (location: (44,7)-(45,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (44,11)-(44,12) = "a" │ ├── receiver: ∅ @@ -388,11 +424,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (45,0)-(45,3) = "end" ├── @ DefNode (location: (47,0)-(48,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (47,4)-(47,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (47,6)-(47,13)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 3) │ │ │ ├── @ RequiredParameterNode (location: (47,6)-(47,7)) │ │ │ │ ├── flags: ∅ @@ -418,10 +456,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (48,0)-(48,3) = "end" ├── @ DefNode (location: (50,0)-(51,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (50,8)-(50,9) = "a" │ ├── receiver: │ │ @ NilNode (location: (50,4)-(50,7)) + │ │ └── flags: static_literal │ ├── parameters: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -432,11 +472,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (51,0)-(51,3) = "end" ├── @ DefNode (location: (53,0)-(54,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (53,4)-(53,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (53,6)-(53,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -452,7 +494,7 @@ │ │ │ ├── name_loc: (53,10)-(53,12) = "c:" │ │ │ └── value: │ │ │ @ IntegerNode (location: (53,13)-(53,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── keyword_rest: ∅ │ │ └── block: ∅ @@ -465,11 +507,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (54,0)-(54,3) = "end" ├── @ DefNode (location: (56,0)-(57,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (56,4)-(56,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (56,6)-(56,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -485,7 +529,7 @@ │ │ │ ├── name_loc: (56,10)-(56,12) = "c:" │ │ │ └── value: │ │ │ @ IntegerNode (location: (56,13)-(56,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── keyword_rest: ∅ │ │ └── block: ∅ @@ -498,11 +542,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (57,0)-(57,3) = "end" ├── @ DefNode (location: (59,0)-(61,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (59,4)-(59,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (59,6)-(60,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -514,7 +560,7 @@ │ │ │ │ ├── name_loc: (59,6)-(59,8) = "b:" │ │ │ │ └── value: │ │ │ │ @ IntegerNode (location: (60,2)-(60,3)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── @ RequiredKeywordParameterNode (location: (60,5)-(60,7)) │ │ │ ├── flags: ∅ @@ -531,17 +577,19 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (61,0)-(61,3) = "end" ├── @ StringNode (location: (63,0)-(63,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (63,0)-(63,2) = "%." │ ├── content_loc: (63,2)-(63,5) = "abc" │ ├── closing_loc: (63,5)-(63,6) = "." │ └── unescaped: "abc" ├── @ DefNode (location: (65,0)-(66,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (65,4)-(65,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (65,6)-(65,18)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 2) │ │ │ ├── @ OptionalParameterNode (location: (65,6)-(65,11)) @@ -551,7 +599,7 @@ │ │ │ │ ├── operator_loc: (65,8)-(65,9) = "=" │ │ │ │ └── value: │ │ │ │ @ IntegerNode (location: (65,10)-(65,11)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── @ OptionalParameterNode (location: (65,13)-(65,18)) │ │ │ ├── flags: ∅ @@ -560,7 +608,7 @@ │ │ │ ├── operator_loc: (65,15)-(65,16) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (65,17)-(65,18)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) @@ -576,6 +624,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (66,0)-(66,3) = "end" ├── @ DefNode (location: (68,0)-(69,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (68,4)-(68,5) = "a" │ ├── receiver: ∅ @@ -589,11 +638,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (69,0)-(69,3) = "end" ├── @ DefNode (location: (71,0)-(72,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (71,4)-(71,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (71,6)-(71,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (71,6)-(71,7)) │ │ │ ├── flags: ∅ @@ -606,7 +657,7 @@ │ │ │ ├── operator_loc: (71,11)-(71,12) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (71,13)-(71,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) @@ -622,11 +673,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (72,0)-(72,3) = "end" ├── @ DefNode (location: (74,0)-(75,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (74,4)-(74,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (74,6)-(74,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (74,6)-(74,7)) │ │ │ ├── flags: ∅ @@ -646,16 +699,19 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (75,0)-(75,3) = "end" ├── @ DefNode (location: (77,0)-(77,32)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (77,4)-(77,5) = "a" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (77,0)-(77,32)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (77,7)-(77,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (77,7)-(77,13) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ @@ -664,11 +720,13 @@ │ │ │ └── consequent: ∅ │ │ ├── else_clause: │ │ │ @ ElseNode (location: (77,15)-(77,27)) + │ │ │ ├── flags: ∅ │ │ │ ├── else_keyword_loc: (77,15)-(77,19) = "else" │ │ │ ├── statements: ∅ │ │ │ └── end_keyword_loc: (77,21)-(77,27) = "ensure" │ │ ├── ensure_clause: │ │ │ @ EnsureNode (location: (77,21)-(77,32)) + │ │ │ ├── flags: ∅ │ │ │ ├── ensure_keyword_loc: (77,21)-(77,27) = "ensure" │ │ │ ├── statements: ∅ │ │ │ └── end_keyword_loc: (77,29)-(77,32) = "end" @@ -681,11 +739,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (77,29)-(77,32) = "end" ├── @ DefNode (location: (79,0)-(80,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (79,4)-(79,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (79,6)-(79,8)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -707,11 +767,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (80,0)-(80,3) = "end" ├── @ DefNode (location: (82,0)-(83,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (82,4)-(82,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (82,6)-(82,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -733,20 +795,23 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (83,0)-(83,3) = "end" ├── @ DefNode (location: (85,0)-(87,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (85,4)-(85,5) = "a" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (86,0)-(86,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableWriteNode (location: (86,0)-(86,5)) + │ │ ├── flags: newline │ │ ├── name: :b │ │ ├── depth: 0 │ │ ├── name_loc: (86,0)-(86,1) = "b" │ │ ├── value: │ │ │ @ IntegerNode (location: (86,4)-(86,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── operator_loc: (86,2)-(86,3) = "=" │ ├── locals: [:b] @@ -757,10 +822,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (87,0)-(87,3) = "end" ├── @ DefNode (location: (89,0)-(90,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (89,9)-(89,10) = "a" │ ├── receiver: │ │ @ SelfNode (location: (89,4)-(89,8)) + │ │ └── flags: ∅ │ ├── parameters: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -771,10 +838,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (90,0)-(90,3) = "end" ├── @ DefNode (location: (92,0)-(93,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (92,9)-(92,10) = "a" │ ├── receiver: │ │ @ TrueNode (location: (92,4)-(92,8)) + │ │ └── flags: static_literal │ ├── parameters: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -785,6 +854,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (93,0)-(93,3) = "end" ├── @ DefNode (location: (95,0)-(96,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (95,4)-(95,5) = "a" │ ├── receiver: ∅ @@ -798,30 +868,35 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (96,0)-(96,3) = "end" ├── @ DefNode (location: (98,0)-(101,3)) + │ ├── flags: newline │ ├── name: :hi │ ├── name_loc: (98,4)-(98,6) = "hi" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (99,0)-(100,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 2) │ │ ├── @ IfNode (location: (99,0)-(99,18)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (99,11)-(99,13) = "if" │ │ │ ├── predicate: │ │ │ │ @ TrueNode (location: (99,14)-(99,18)) + │ │ │ │ └── flags: static_literal │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (99,0)-(99,10)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ ReturnNode (location: (99,0)-(99,10)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: newline │ │ │ │ ├── keyword_loc: (99,0)-(99,6) = "return" │ │ │ │ └── arguments: │ │ │ │ @ ArgumentsNode (location: (99,7)-(99,10)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ SymbolNode (location: (99,7)-(99,10)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (99,7)-(99,8) = ":" │ │ │ │ ├── value_loc: (99,8)-(99,10) = "hi" │ │ │ │ ├── closing_loc: ∅ @@ -829,7 +904,7 @@ │ │ │ ├── consequent: ∅ │ │ │ └── end_keyword_loc: ∅ │ │ └── @ SymbolNode (location: (100,0)-(100,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (100,0)-(100,1) = ":" │ │ ├── value_loc: (100,1)-(100,4) = "bye" │ │ ├── closing_loc: ∅ @@ -842,15 +917,17 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (101,0)-(101,3) = "end" ├── @ DefNode (location: (103,0)-(103,11)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (103,4)-(103,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (103,10)-(103,11)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (103,10)-(103,11)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 1 │ ├── locals: [] │ ├── def_keyword_loc: (103,0)-(103,3) = "def" @@ -860,15 +937,17 @@ │ ├── equal_loc: (103,8)-(103,9) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (104,0)-(104,11)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (104,4)-(104,7) = "bar" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (104,10)-(104,11)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (104,10)-(104,11)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 2 │ ├── locals: [] │ ├── def_keyword_loc: (104,0)-(104,3) = "def" @@ -878,11 +957,13 @@ │ ├── equal_loc: (104,8)-(104,9) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (106,0)-(106,18)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (106,4)-(106,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (106,8)-(106,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (106,8)-(106,11)) │ │ │ ├── flags: ∅ @@ -895,9 +976,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (106,15)-(106,18)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (106,15)-(106,18)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 123 │ ├── locals: [:bar] │ ├── def_keyword_loc: (106,0)-(106,3) = "def" @@ -907,15 +989,17 @@ │ ├── equal_loc: (106,13)-(106,14) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (108,0)-(108,13)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (108,4)-(108,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (108,10)-(108,13)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (108,10)-(108,13)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 123 │ ├── locals: [] │ ├── def_keyword_loc: (108,0)-(108,3) = "def" @@ -925,11 +1009,13 @@ │ ├── equal_loc: (108,8)-(108,9) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (110,0)-(110,19)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (110,4)-(110,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (110,6)-(110,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -944,9 +1030,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (110,10)-(110,14)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (110,10)-(110,14)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :b @@ -957,6 +1044,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ SplatNode (location: (110,12)-(110,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (110,12)-(110,13) = "*" │ │ │ └── expression: ∅ │ │ ├── closing_loc: (110,13)-(110,14) = ")" @@ -969,11 +1057,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (110,16)-(110,19) = "end" ├── @ DefNode (location: (112,0)-(112,23)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (112,4)-(112,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (112,6)-(112,9)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -981,12 +1071,14 @@ │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (112,6)-(112,9)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (112,12)-(112,18)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (112,12)-(112,18)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :b @@ -997,6 +1089,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ForwardingArgumentsNode (location: (112,14)-(112,17)) + │ │ │ └── flags: ∅ │ │ ├── closing_loc: (112,17)-(112,18) = ")" │ │ └── block: ∅ │ ├── locals: [] @@ -1007,11 +1100,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (112,20)-(112,23) = "end" ├── @ DefNode (location: (114,0)-(114,29)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (114,4)-(114,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (114,6)-(114,9)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -1019,12 +1114,14 @@ │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (114,6)-(114,9)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (114,12)-(114,24)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (114,12)-(114,24)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :b @@ -1035,12 +1132,13 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 3) │ │ │ ├── @ IntegerNode (location: (114,14)-(114,15)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── @ IntegerNode (location: (114,17)-(114,18)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── @ ForwardingArgumentsNode (location: (114,20)-(114,23)) + │ │ │ └── flags: ∅ │ │ ├── closing_loc: (114,23)-(114,24) = ")" │ │ └── block: ∅ │ ├── locals: [] @@ -1051,12 +1149,15 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (114,26)-(114,29) = "end" ├── @ DefNode (location: (116,0)-(117,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (116,12)-(116,13) = "a" │ ├── receiver: │ │ @ ParenthesesNode (location: (116,4)-(116,11)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ LocalVariableWriteNode (location: (116,5)-(116,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :c │ │ │ ├── depth: 0 │ │ │ ├── name_loc: (116,5)-(116,6) = "c" @@ -1084,11 +1185,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (117,0)-(117,3) = "end" ├── @ DefNode (location: (119,0)-(120,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (119,4)-(119,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (119,6)-(119,8)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -1110,11 +1213,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (120,0)-(120,3) = "end" ├── @ DefNode (location: (122,0)-(123,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (122,4)-(122,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (122,6)-(122,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -1136,10 +1241,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (123,0)-(123,3) = "end" ├── @ DefNode (location: (125,0)-(126,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (125,10)-(125,11) = "a" │ ├── receiver: │ │ @ ClassVariableReadNode (location: (125,4)-(125,9)) + │ │ ├── flags: ∅ │ │ └── name: :@@var │ ├── parameters: ∅ │ ├── body: ∅ @@ -1151,12 +1258,15 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (126,0)-(126,3) = "end" ├── @ DefNode (location: (128,0)-(129,3)) + │ ├── flags: newline │ ├── name: :C │ ├── name_loc: (128,12)-(128,13) = "C" │ ├── receiver: │ │ @ ParenthesesNode (location: (128,4)-(128,11)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ LocalVariableWriteNode (location: (128,5)-(128,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ ├── depth: 0 │ │ │ ├── name_loc: (128,5)-(128,6) = "a" @@ -1184,10 +1294,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (129,0)-(129,3) = "end" ├── @ DefNode (location: (131,0)-(131,28)) + │ ├── flags: newline │ ├── name: :Array_function │ ├── name_loc: (131,9)-(131,23) = "Array_function" │ ├── receiver: │ │ @ SelfNode (location: (131,4)-(131,8)) + │ │ └── flags: ∅ │ ├── parameters: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -1198,18 +1310,21 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (131,25)-(131,28) = "end" ├── @ ConstantWriteNode (location: (133,0)-(133,9)) + │ ├── flags: newline │ ├── name: :Const │ ├── name_loc: (133,0)-(133,5) = "Const" │ ├── value: │ │ @ IntegerNode (location: (133,8)-(133,9)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (133,6)-(133,7) = "=" ├── @ DefNode (location: (133,11)-(134,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (133,21)-(133,22) = "a" │ ├── receiver: │ │ @ ConstantReadNode (location: (133,15)-(133,20)) + │ │ ├── flags: ∅ │ │ └── name: :Const │ ├── parameters: ∅ │ ├── body: ∅ @@ -1221,11 +1336,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (134,0)-(134,3) = "end" ├── @ DefNode (location: (136,0)-(136,31)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (136,4)-(136,5) = "a" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (136,6)-(136,9)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -1233,24 +1350,28 @@ │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (136,6)-(136,9)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (136,12)-(136,26)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ InterpolatedStringNode (location: (136,12)-(136,26)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── opening_loc: (136,12)-(136,13) = "\"" │ │ ├── parts: (length: 2) │ │ │ ├── @ StringNode (location: (136,13)-(136,16)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (136,13)-(136,16) = "foo" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "foo" │ │ │ └── @ EmbeddedStatementsNode (location: (136,16)-(136,25)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (136,16)-(136,18) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (136,18)-(136,24)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (136,18)-(136,24)) │ │ │ │ ├── flags: ignore_visibility @@ -1264,6 +1385,7 @@ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── arguments: (length: 1) │ │ │ │ │ └── @ ForwardingArgumentsNode (location: (136,20)-(136,23)) + │ │ │ │ │ └── flags: ∅ │ │ │ │ ├── closing_loc: (136,23)-(136,24) = ")" │ │ │ │ └── block: ∅ │ │ │ └── closing_loc: (136,24)-(136,25) = "}" @@ -1276,17 +1398,20 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (136,28)-(136,31) = "end" ├── @ DefNode (location: (138,0)-(140,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (138,4)-(138,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (139,2)-(139,30)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (139,2)-(139,30)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ HashNode (location: (139,2)-(139,4)) + │ │ │ ├── flags: static_literal │ │ │ ├── opening_loc: (139,2)-(139,3) = "{" │ │ │ ├── elements: (length: 0) │ │ │ └── closing_loc: (139,3)-(139,4) = "}" @@ -1302,6 +1427,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── elements: (length: 3) │ │ │ ├── @ AssocSplatNode (location: (139,11)-(139,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── value: │ │ │ │ │ @ CallNode (location: (139,13)-(139,16)) │ │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -1315,6 +1441,7 @@ │ │ │ │ │ └── block: ∅ │ │ │ │ └── operator_loc: (139,11)-(139,13) = "**" │ │ │ ├── @ AssocSplatNode (location: (139,18)-(139,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── value: │ │ │ │ │ @ CallNode (location: (139,20)-(139,23)) │ │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -1328,6 +1455,7 @@ │ │ │ │ │ └── block: ∅ │ │ │ │ └── operator_loc: (139,18)-(139,20) = "**" │ │ │ └── @ AssocSplatNode (location: (139,25)-(139,30)) + │ │ │ ├── flags: ∅ │ │ │ ├── value: │ │ │ │ @ CallNode (location: (139,27)-(139,30)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -1350,11 +1478,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (140,0)-(140,3) = "end" ├── @ DefNode (location: (142,0)-(143,3)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (142,4)-(142,7) = "bar" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (142,8)-(142,19)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -1366,18 +1496,20 @@ │ │ │ ├── name_loc: (142,8)-(142,10) = "a:" │ │ │ └── value: │ │ │ @ ParenthesesNode (location: (142,11)-(142,19)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (142,12)-(142,18)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ RangeNode (location: (142,12)-(142,18)) - │ │ │ │ ├── flags: exclude_end + │ │ │ │ ├── flags: newline, static_literal, exclude_end │ │ │ │ ├── left: │ │ │ │ │ @ IntegerNode (location: (142,12)-(142,13)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── right: │ │ │ │ │ @ IntegerNode (location: (142,16)-(142,18)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 10 │ │ │ │ └── operator_loc: (142,13)-(142,16) = "..." │ │ │ ├── opening_loc: (142,11)-(142,12) = "(" @@ -1393,11 +1525,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (143,0)-(143,3) = "end" ├── @ DefNode (location: (145,0)-(146,3)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (145,4)-(145,7) = "bar" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (145,8)-(145,18)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -1409,15 +1543,17 @@ │ │ │ ├── name_loc: (145,8)-(145,10) = "a:" │ │ │ └── value: │ │ │ @ ParenthesesNode (location: (145,11)-(145,18)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (145,12)-(145,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ RangeNode (location: (145,12)-(145,17)) - │ │ │ │ ├── flags: exclude_end + │ │ │ │ ├── flags: newline, static_literal, exclude_end │ │ │ │ ├── left: ∅ │ │ │ │ ├── right: │ │ │ │ │ @ IntegerNode (location: (145,15)-(145,17)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 10 │ │ │ │ └── operator_loc: (145,12)-(145,15) = "..." │ │ │ ├── opening_loc: (145,11)-(145,12) = "(" @@ -1433,11 +1569,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (146,0)-(146,3) = "end" ├── @ DefNode (location: (148,0)-(149,3)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (148,4)-(148,7) = "bar" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (148,8)-(148,17)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -1449,14 +1587,16 @@ │ │ │ ├── name_loc: (148,8)-(148,10) = "a:" │ │ │ └── value: │ │ │ @ ParenthesesNode (location: (148,11)-(148,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (148,12)-(148,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ RangeNode (location: (148,12)-(148,16)) - │ │ │ │ ├── flags: exclude_end + │ │ │ │ ├── flags: newline, static_literal, exclude_end │ │ │ │ ├── left: │ │ │ │ │ @ IntegerNode (location: (148,12)-(148,13)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── right: ∅ │ │ │ │ └── operator_loc: (148,13)-(148,16) = "..." @@ -1473,11 +1613,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (149,0)-(149,3) = "end" ├── @ DefNode (location: (151,0)-(152,3)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (151,4)-(151,7) = "bar" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (151,8)-(151,20)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (151,8)-(151,20)) @@ -1487,18 +1629,20 @@ │ │ │ ├── operator_loc: (151,10)-(151,11) = "=" │ │ │ └── value: │ │ │ @ ParenthesesNode (location: (151,12)-(151,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (151,13)-(151,19)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ RangeNode (location: (151,13)-(151,19)) - │ │ │ │ ├── flags: exclude_end + │ │ │ │ ├── flags: newline, static_literal, exclude_end │ │ │ │ ├── left: │ │ │ │ │ @ IntegerNode (location: (151,13)-(151,14)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── right: │ │ │ │ │ @ IntegerNode (location: (151,17)-(151,19)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 10 │ │ │ │ └── operator_loc: (151,14)-(151,17) = "..." │ │ │ ├── opening_loc: (151,12)-(151,13) = "(" @@ -1517,11 +1661,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (152,0)-(152,3) = "end" ├── @ DefNode (location: (154,0)-(155,3)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (154,4)-(154,7) = "bar" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (154,8)-(154,19)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (154,8)-(154,19)) @@ -1531,15 +1677,17 @@ │ │ │ ├── operator_loc: (154,10)-(154,11) = "=" │ │ │ └── value: │ │ │ @ ParenthesesNode (location: (154,12)-(154,19)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (154,13)-(154,18)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ RangeNode (location: (154,13)-(154,18)) - │ │ │ │ ├── flags: exclude_end + │ │ │ │ ├── flags: newline, static_literal, exclude_end │ │ │ │ ├── left: ∅ │ │ │ │ ├── right: │ │ │ │ │ @ IntegerNode (location: (154,16)-(154,18)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 10 │ │ │ │ └── operator_loc: (154,13)-(154,16) = "..." │ │ │ ├── opening_loc: (154,12)-(154,13) = "(" @@ -1558,11 +1706,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (155,0)-(155,3) = "end" ├── @ DefNode (location: (157,0)-(158,3)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (157,4)-(157,7) = "bar" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (157,8)-(157,18)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (157,8)-(157,18)) @@ -1572,14 +1722,16 @@ │ │ │ ├── operator_loc: (157,10)-(157,11) = "=" │ │ │ └── value: │ │ │ @ ParenthesesNode (location: (157,12)-(157,18)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (157,13)-(157,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ RangeNode (location: (157,13)-(157,17)) - │ │ │ │ ├── flags: exclude_end + │ │ │ │ ├── flags: newline, static_literal, exclude_end │ │ │ │ ├── left: │ │ │ │ │ @ IntegerNode (location: (157,13)-(157,14)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── right: ∅ │ │ │ │ └── operator_loc: (157,14)-(157,17) = "..." @@ -1599,11 +1751,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (158,0)-(158,3) = "end" ├── @ DefNode (location: (160,0)-(162,3)) + │ ├── flags: newline │ ├── name: :method │ ├── name_loc: (160,4)-(160,10) = "method" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (160,11)-(160,12)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (160,11)-(160,12)) │ │ │ ├── flags: ∅ @@ -1616,9 +1770,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (161,2)-(161,14)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (161,2)-(161,14)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (161,2)-(161,6)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -1649,6 +1804,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: │ │ │ @ BlockNode (location: (161,12)-(161,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [] │ │ │ ├── parameters: ∅ │ │ │ ├── body: ∅ @@ -1664,19 +1820,22 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (162,0)-(162,3) = "end" ├── @ LocalVariableWriteNode (location: (164,0)-(164,7)) + │ ├── flags: newline │ ├── name: :foo │ ├── depth: 0 │ ├── name_loc: (164,0)-(164,3) = "foo" │ ├── value: │ │ @ IntegerNode (location: (164,6)-(164,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (164,4)-(164,5) = "=" ├── @ DefNode (location: (165,0)-(165,16)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (165,8)-(165,11) = "bar" │ ├── receiver: │ │ @ LocalVariableReadNode (location: (165,4)-(165,7)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── parameters: ∅ @@ -1689,11 +1848,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (165,13)-(165,16) = "end" ├── @ DefNode (location: (167,0)-(167,18)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (167,4)-(167,5) = "f" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (167,6)-(167,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -1708,11 +1869,13 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (167,10)-(167,13)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ ArrayNode (location: (167,10)-(167,13)) - │ │ ├── flags: contains_splat + │ │ ├── flags: newline, contains_splat │ │ ├── elements: (length: 1) │ │ │ └── @ SplatNode (location: (167,11)-(167,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (167,11)-(167,12) = "*" │ │ │ └── expression: ∅ │ │ ├── opening_loc: (167,10)-(167,11) = "[" @@ -1725,11 +1888,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (167,15)-(167,18) = "end" ├── @ DefNode (location: (169,0)-(169,15)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (169,4)-(169,5) = "f" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (169,6)-(169,10)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -1771,11 +1936,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (169,12)-(169,15) = "end" ├── @ DefNode (location: (171,0)-(171,15)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (171,4)-(171,5) = "f" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (171,6)-(171,10)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -1817,11 +1984,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (171,12)-(171,15) = "end" ├── @ DefNode (location: (173,0)-(173,15)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (173,4)-(173,5) = "f" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (173,6)-(173,10)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -1863,11 +2032,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (173,12)-(173,15) = "end" ├── @ DefNode (location: (175,0)-(175,20)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (175,4)-(175,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (175,8)-(175,15)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -1895,11 +2066,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (175,17)-(175,20) = "end" ├── @ DefNode (location: (177,0)-(179,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (177,4)-(177,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (177,8)-(177,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -1907,12 +2080,14 @@ │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (177,8)-(177,11)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (178,2)-(178,10)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (178,2)-(178,10)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -1923,6 +2098,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ForwardingArgumentsNode (location: (178,6)-(178,9)) + │ │ │ └── flags: ∅ │ │ ├── closing_loc: (178,9)-(178,10) = ")" │ │ └── block: ∅ │ ├── locals: [] @@ -1933,11 +2109,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (179,0)-(179,3) = "end" ├── @ DefNode (location: (181,0)-(181,42)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (181,4)-(181,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (181,8)-(181,37)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (181,8)-(181,37)) @@ -1947,15 +2125,19 @@ │ │ │ ├── operator_loc: (181,12)-(181,13) = "=" │ │ │ └── value: │ │ │ @ ParenthesesNode (location: (181,14)-(181,37)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (181,15)-(181,36)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 2) │ │ │ │ ├── @ DefNode (location: (181,15)-(181,33)) + │ │ │ │ │ ├── flags: newline │ │ │ │ │ ├── name: :baz │ │ │ │ │ ├── name_loc: (181,19)-(181,22) = "baz" │ │ │ │ │ ├── receiver: ∅ │ │ │ │ │ ├── parameters: │ │ │ │ │ │ @ ParametersNode (location: (181,23)-(181,26)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ │ │ └── @ RequiredParameterNode (location: (181,23)-(181,26)) │ │ │ │ │ │ │ ├── flags: ∅ @@ -1968,8 +2150,10 @@ │ │ │ │ │ │ └── block: ∅ │ │ │ │ │ ├── body: │ │ │ │ │ │ @ StatementsNode (location: (181,30)-(181,33)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ │ └── @ LocalVariableReadNode (location: (181,30)-(181,33)) + │ │ │ │ │ │ ├── flags: newline │ │ │ │ │ │ ├── name: :bar │ │ │ │ │ │ └── depth: 0 │ │ │ │ │ ├── locals: [:bar] @@ -1980,7 +2164,7 @@ │ │ │ │ │ ├── equal_loc: (181,28)-(181,29) = "=" │ │ │ │ │ └── end_keyword_loc: ∅ │ │ │ │ └── @ IntegerNode (location: (181,35)-(181,36)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── opening_loc: (181,14)-(181,15) = "(" │ │ │ └── closing_loc: (181,36)-(181,37) = ")" @@ -1991,9 +2175,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (181,41)-(181,42)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (181,41)-(181,42)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 2 │ ├── locals: [:bar] │ ├── def_keyword_loc: (181,0)-(181,3) = "def" @@ -2003,16 +2188,20 @@ │ ├── equal_loc: (181,39)-(181,40) = "=" │ └── end_keyword_loc: ∅ └── @ DefNode (location: (183,0)-(183,37)) + ├── flags: newline ├── name: :foo ├── name_loc: (183,21)-(183,24) = "foo" ├── receiver: │ @ ParenthesesNode (location: (183,4)-(183,20)) + │ ├── flags: ∅ │ ├── body: │ │ @ ClassNode (location: (183,5)-(183,19)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── class_keyword_loc: (183,5)-(183,10) = "class" │ │ ├── constant_path: │ │ │ @ ConstantReadNode (location: (183,11)-(183,14)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── inheritance_operator_loc: ∅ │ │ ├── superclass: ∅ @@ -2023,6 +2212,7 @@ │ └── closing_loc: (183,19)-(183,20) = ")" ├── parameters: │ @ ParametersNode (location: (183,25)-(183,32)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 1) │ │ └── @ OptionalParameterNode (location: (183,25)-(183,32)) @@ -2032,7 +2222,7 @@ │ │ ├── operator_loc: (183,29)-(183,30) = "=" │ │ └── value: │ │ @ IntegerNode (location: (183,31)-(183,32)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── rest: ∅ │ ├── posts: (length: 0) @@ -2041,9 +2231,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (183,36)-(183,37)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ IntegerNode (location: (183,36)-(183,37)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 2 ├── locals: [:bar] ├── def_keyword_loc: (183,0)-(183,3) = "def" diff --git a/test/prism/snapshots/modules.txt b/test/prism/snapshots/modules.txt index de1ea8feeb..d889d855af 100644 --- a/test/prism/snapshots/modules.txt +++ b/test/prism/snapshots/modules.txt @@ -1,42 +1,50 @@ @ ProgramNode (location: (1,0)-(18,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(18,3)) + ├── flags: ∅ └── body: (length: 7) ├── @ ModuleNode (location: (1,0)-(1,18)) + │ ├── flags: newline │ ├── locals: [:a] │ ├── module_keyword_loc: (1,0)-(1,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (1,7)-(1,8)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── body: │ │ @ StatementsNode (location: (1,9)-(1,14)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableWriteNode (location: (1,9)-(1,14)) + │ │ ├── flags: newline │ │ ├── name: :a │ │ ├── depth: 0 │ │ ├── name_loc: (1,9)-(1,10) = "a" │ │ ├── value: │ │ │ @ IntegerNode (location: (1,13)-(1,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── operator_loc: (1,11)-(1,12) = "=" │ ├── end_keyword_loc: (1,15)-(1,18) = "end" │ └── name: :A ├── @ InterpolatedStringNode (location: (3,0)-(3,18)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (3,0)-(3,3) = "%Q{" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (3,3)-(3,7)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (3,3)-(3,7) = "aaa " │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "aaa " │ │ ├── @ EmbeddedStatementsNode (location: (3,7)-(3,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (3,7)-(3,9) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (3,9)-(3,12)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (3,9)-(3,12)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -50,17 +58,19 @@ │ │ │ │ └── block: ∅ │ │ │ └── closing_loc: (3,12)-(3,13) = "}" │ │ └── @ StringNode (location: (3,13)-(3,17)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (3,13)-(3,17) = " ccc" │ │ ├── closing_loc: ∅ │ │ └── unescaped: " ccc" │ └── closing_loc: (3,17)-(3,18) = "}" ├── @ ModuleNode (location: (5,0)-(6,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── module_keyword_loc: (5,0)-(5,6) = "module" │ ├── constant_path: │ │ @ ConstantPathNode (location: (5,7)-(5,11)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ CallNode (location: (5,7)-(5,8)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -79,28 +89,34 @@ │ ├── end_keyword_loc: (6,0)-(6,3) = "end" │ └── name: :M ├── @ ModuleNode (location: (8,0)-(9,19)) + │ ├── flags: newline │ ├── locals: [:x] │ ├── module_keyword_loc: (8,0)-(8,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (8,7)-(8,8)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── body: │ │ @ BeginNode (location: (8,0)-(9,19)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (9,1)-(9,6)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableWriteNode (location: (9,1)-(9,6)) + │ │ │ ├── flags: newline │ │ │ ├── name: :x │ │ │ ├── depth: 0 │ │ │ ├── name_loc: (9,1)-(9,2) = "x" │ │ │ ├── value: │ │ │ │ @ IntegerNode (location: (9,5)-(9,6)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── operator_loc: (9,3)-(9,4) = "=" │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (9,8)-(9,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (9,8)-(9,14) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ @@ -113,10 +129,12 @@ │ ├── end_keyword_loc: (9,16)-(9,19) = "end" │ └── name: :A ├── @ ModuleNode (location: (11,0)-(12,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── module_keyword_loc: (11,0)-(11,6) = "module" │ ├── constant_path: │ │ @ ConstantPathNode (location: (11,7)-(11,10)) + │ │ ├── flags: ∅ │ │ ├── parent: ∅ │ │ ├── name: :A │ │ ├── delimiter_loc: (11,7)-(11,9) = "::" @@ -125,15 +143,18 @@ │ ├── end_keyword_loc: (12,0)-(12,3) = "end" │ └── name: :A ├── @ ModuleNode (location: (14,0)-(15,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── module_keyword_loc: (14,0)-(14,6) = "module" │ ├── constant_path: │ │ @ ConstantPathNode (location: (14,7)-(14,13)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ CallNode (location: (14,7)-(14,10)) │ │ │ ├── flags: ∅ │ │ │ ├── receiver: │ │ │ │ @ ConstantReadNode (location: (14,7)-(14,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :A │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :[] @@ -149,15 +170,18 @@ │ ├── end_keyword_loc: (15,0)-(15,3) = "end" │ └── name: :B └── @ ModuleNode (location: (17,0)-(18,3)) + ├── flags: newline ├── locals: [] ├── module_keyword_loc: (17,0)-(17,6) = "module" ├── constant_path: │ @ ConstantPathNode (location: (17,7)-(17,14)) + │ ├── flags: ∅ │ ├── parent: │ │ @ CallNode (location: (17,7)-(17,11)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ ConstantReadNode (location: (17,7)-(17,8)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── call_operator_loc: ∅ │ │ ├── name: :[] @@ -168,7 +192,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (17,9)-(17,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: (17,10)-(17,11) = "]" │ │ └── block: ∅ diff --git a/test/prism/snapshots/multi_write.txt b/test/prism/snapshots/multi_write.txt index d313801fdb..68fa62cf92 100644 --- a/test/prism/snapshots/multi_write.txt +++ b/test/prism/snapshots/multi_write.txt @@ -1,28 +1,36 @@ @ ProgramNode (location: (1,0)-(4,26)) +├── flags: ∅ ├── locals: [:foo, :bar] └── statements: @ StatementsNode (location: (1,0)-(4,26)) + ├── flags: ∅ └── body: (length: 4) ├── @ LocalVariableWriteNode (location: (1,0)-(1,18)) + │ ├── flags: newline │ ├── name: :foo │ ├── depth: 0 │ ├── name_loc: (1,0)-(1,3) = "foo" │ ├── value: │ │ @ RescueModifierNode (location: (1,6)-(1,18)) + │ │ ├── flags: ∅ │ │ ├── expression: │ │ │ @ IntegerNode (location: (1,6)-(1,7)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── keyword_loc: (1,8)-(1,14) = "rescue" │ │ └── rescue_expression: │ │ @ NilNode (location: (1,15)-(1,18)) + │ │ └── flags: static_literal │ └── operator_loc: (1,4)-(1,5) = "=" ├── @ MultiWriteNode (location: (2,0)-(2,23)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ LocalVariableTargetNode (location: (2,0)-(2,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :foo │ │ │ └── depth: 0 │ │ └── @ LocalVariableTargetNode (location: (2,5)-(2,8)) + │ │ ├── flags: ∅ │ │ ├── name: :bar │ │ └── depth: 0 │ ├── rest: ∅ @@ -32,28 +40,32 @@ │ ├── operator_loc: (2,9)-(2,10) = "=" │ └── value: │ @ RescueModifierNode (location: (2,11)-(2,23)) + │ ├── flags: ∅ │ ├── expression: │ │ @ IntegerNode (location: (2,11)-(2,12)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── keyword_loc: (2,13)-(2,19) = "rescue" │ └── rescue_expression: │ @ NilNode (location: (2,20)-(2,23)) + │ └── flags: static_literal ├── @ RescueModifierNode (location: (3,0)-(3,21)) + │ ├── flags: newline │ ├── expression: │ │ @ LocalVariableWriteNode (location: (3,0)-(3,10)) + │ │ ├── flags: newline │ │ ├── name: :foo │ │ ├── depth: 0 │ │ ├── name_loc: (3,0)-(3,3) = "foo" │ │ ├── value: │ │ │ @ ArrayNode (location: (3,6)-(3,10)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 2) │ │ │ │ ├── @ IntegerNode (location: (3,6)-(3,7)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ └── @ IntegerNode (location: (3,9)-(3,10)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ ├── opening_loc: ∅ │ │ │ └── closing_loc: ∅ @@ -61,12 +73,16 @@ │ ├── keyword_loc: (3,11)-(3,17) = "rescue" │ └── rescue_expression: │ @ NilNode (location: (3,18)-(3,21)) + │ └── flags: static_literal └── @ MultiWriteNode (location: (4,0)-(4,26)) + ├── flags: newline ├── lefts: (length: 2) │ ├── @ LocalVariableTargetNode (location: (4,0)-(4,3)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ └── @ LocalVariableTargetNode (location: (4,5)-(4,8)) + │ ├── flags: ∅ │ ├── name: :bar │ └── depth: 0 ├── rest: ∅ @@ -76,18 +92,20 @@ ├── operator_loc: (4,9)-(4,10) = "=" └── value: @ RescueModifierNode (location: (4,11)-(4,26)) + ├── flags: ∅ ├── expression: │ @ ArrayNode (location: (4,11)-(4,15)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (4,11)-(4,12)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (4,14)-(4,15)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: ∅ │ └── closing_loc: ∅ ├── keyword_loc: (4,16)-(4,22) = "rescue" └── rescue_expression: @ NilNode (location: (4,23)-(4,26)) + └── flags: static_literal diff --git a/test/prism/snapshots/newline_terminated.txt b/test/prism/snapshots/newline_terminated.txt index 6a3b28dba9..85e996fa5a 100644 --- a/test/prism/snapshots/newline_terminated.txt +++ b/test/prism/snapshots/newline_terminated.txt @@ -1,106 +1,108 @@ @ ProgramNode (location: (3,0)-(41,0)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (3,0)-(41,0)) + ├── flags: ∅ └── body: (length: 17) ├── @ StringNode (location: (3,0)-(3,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (3,0)-(3,2) = "% " │ ├── content_loc: (3,2)-(3,5) = "abc" │ ├── closing_loc: (3,5)-(3,6) = " " │ └── unescaped: "abc" ├── @ StringNode (location: (4,0)-(4,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (4,0)-(4,2) = "%\t" │ ├── content_loc: (4,2)-(4,5) = "abc" │ ├── closing_loc: (4,5)-(4,6) = "\t" │ └── unescaped: "abc" ├── @ StringNode (location: (5,0)-(5,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (5,0)-(5,2) = "%\v" │ ├── content_loc: (5,2)-(5,5) = "abc" │ ├── closing_loc: (5,5)-(5,6) = "\v" │ └── unescaped: "abc" ├── @ StringNode (location: (6,0)-(6,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (6,0)-(6,2) = "%\r" │ ├── content_loc: (6,2)-(6,5) = "abc" │ ├── closing_loc: (6,5)-(6,6) = "\r" │ └── unescaped: "abc" ├── @ StringNode (location: (7,0)-(9,0)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (7,0)-(8,0) = "%\n" │ ├── content_loc: (8,0)-(8,3) = "abc" │ ├── closing_loc: (8,3)-(9,0) = "\n" │ └── unescaped: "abc" ├── @ StringNode (location: (10,0)-(10,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (10,0)-(10,2) = "%\u0000" │ ├── content_loc: (10,2)-(10,5) = "abc" │ ├── closing_loc: (10,5)-(10,6) = "\u0000" │ └── unescaped: "abc" ├── @ StringNode (location: (11,0)-(13,0)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (11,0)-(12,0) = "%\n" │ ├── content_loc: (12,0)-(12,3) = "abc" │ ├── closing_loc: (12,3)-(13,0) = "\n" │ └── unescaped: "abc" ├── @ StringNode (location: (14,0)-(16,0)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (14,0)-(15,0) = "%\n" │ ├── content_loc: (15,0)-(15,4) = "\rabc" │ ├── closing_loc: (15,4)-(16,0) = "\n" │ └── unescaped: "\rabc" ├── @ StringNode (location: (17,0)-(19,0)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (17,0)-(18,0) = "%\n" │ ├── content_loc: (18,0)-(18,4) = "\rabc" │ ├── closing_loc: (18,4)-(19,0) = "\n" │ └── unescaped: "\rabc" ├── @ StringNode (location: (20,0)-(22,0)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (20,0)-(21,0) = "%\n" │ ├── content_loc: (21,0)-(21,3) = "abc" │ ├── closing_loc: (21,3)-(22,0) = "\n" │ └── unescaped: "abc" ├── @ StringNode (location: (23,0)-(23,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (23,0)-(23,2) = "%\r" │ ├── content_loc: (23,2)-(23,5) = "abc" │ ├── closing_loc: (23,5)-(23,6) = "\r" │ └── unescaped: "abc" ├── @ StringNode (location: (24,0)-(26,0)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (24,0)-(25,0) = "%\n" │ ├── content_loc: (25,0)-(25,3) = "abc" │ ├── closing_loc: (25,3)-(26,0) = "\n" │ └── unescaped: "abc" ├── @ StringNode (location: (27,0)-(29,0)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (27,0)-(28,0) = "%\n" │ ├── content_loc: (28,0)-(28,3) = "abc" │ ├── closing_loc: (28,3)-(29,0) = "\n" │ └── unescaped: "abc" ├── @ StringNode (location: (30,0)-(32,0)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (30,0)-(31,0) = "%\n" │ ├── content_loc: (31,0)-(31,3) = "foo" │ ├── closing_loc: (31,3)-(32,0) = "\n" │ └── unescaped: "foo" ├── @ StringNode (location: (33,0)-(35,0)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (33,0)-(34,0) = "%q\n" │ ├── content_loc: (34,0)-(34,3) = "foo" │ ├── closing_loc: (34,3)-(35,0) = "\n" │ └── unescaped: "foo" ├── @ StringNode (location: (36,0)-(38,0)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (36,0)-(37,0) = "%Q\n" │ ├── content_loc: (37,0)-(37,3) = "foo" │ ├── closing_loc: (37,3)-(38,0) = "\n" │ └── unescaped: "foo" └── @ RegularExpressionNode (location: (39,0)-(41,0)) - ├── flags: forced_us_ascii_encoding + ├── flags: newline, static_literal, forced_us_ascii_encoding ├── opening_loc: (39,0)-(40,0) = "%r\n" ├── content_loc: (40,0)-(40,3) = "foo" ├── closing_loc: (40,3)-(41,0) = "\n" diff --git a/test/prism/snapshots/next.txt b/test/prism/snapshots/next.txt index ce2e497de9..5b0becea1c 100644 --- a/test/prism/snapshots/next.txt +++ b/test/prism/snapshots/next.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(24,15)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(24,15)) + ├── flags: ∅ └── body: (length: 10) ├── @ CallNode (location: (1,0)-(1,12)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -14,18 +16,21 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,4)-(1,12)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,6)-(1,10)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NextNode (location: (1,6)-(1,10)) + │ │ ├── flags: newline │ │ ├── arguments: ∅ │ │ └── keyword_loc: (1,6)-(1,10) = "next" │ ├── opening_loc: (1,4)-(1,5) = "{" │ └── closing_loc: (1,11)-(1,12) = "}" ├── @ CallNode (location: (3,0)-(3,26)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -35,40 +40,49 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (3,4)-(3,26)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (3,6)-(3,24)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NextNode (location: (3,6)-(3,24)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (3,11)-(3,24)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 3) │ │ │ ├── @ ParenthesesNode (location: (3,11)-(3,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (3,12)-(3,13)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ IntegerNode (location: (3,12)-(3,13)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── opening_loc: (3,11)-(3,12) = "(" │ │ │ │ └── closing_loc: (3,13)-(3,14) = ")" │ │ │ ├── @ ParenthesesNode (location: (3,16)-(3,19)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (3,17)-(3,18)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ IntegerNode (location: (3,17)-(3,18)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ │ └── value: 2 │ │ │ │ ├── opening_loc: (3,16)-(3,17) = "(" │ │ │ │ └── closing_loc: (3,18)-(3,19) = ")" │ │ │ └── @ ParenthesesNode (location: (3,21)-(3,24)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (3,22)-(3,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (3,22)-(3,23)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ └── value: 3 │ │ │ ├── opening_loc: (3,21)-(3,22) = "(" │ │ │ └── closing_loc: (3,23)-(3,24) = ")" @@ -76,7 +90,7 @@ │ ├── opening_loc: (3,4)-(3,5) = "{" │ └── closing_loc: (3,25)-(3,26) = "}" ├── @ CallNode (location: (5,0)-(5,14)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -86,24 +100,27 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (5,4)-(5,14)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (5,6)-(5,12)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NextNode (location: (5,6)-(5,12)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (5,11)-(5,12)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (5,11)-(5,12)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── keyword_loc: (5,6)-(5,10) = "next" │ ├── opening_loc: (5,4)-(5,5) = "{" │ └── closing_loc: (5,13)-(5,14) = "}" ├── @ CallNode (location: (7,0)-(8,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -113,30 +130,33 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (7,4)-(8,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (7,6)-(8,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NextNode (location: (7,6)-(8,1)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (7,11)-(8,1)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 3) │ │ │ ├── @ IntegerNode (location: (7,11)-(7,12)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── @ IntegerNode (location: (7,14)-(7,15)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── @ IntegerNode (location: (8,0)-(8,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ └── keyword_loc: (7,6)-(7,10) = "next" │ ├── opening_loc: (7,4)-(7,5) = "{" │ └── closing_loc: (8,2)-(8,3) = "}" ├── @ CallNode (location: (10,0)-(10,20)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -146,30 +166,33 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (10,4)-(10,20)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (10,6)-(10,18)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NextNode (location: (10,6)-(10,18)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (10,11)-(10,18)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 3) │ │ │ ├── @ IntegerNode (location: (10,11)-(10,12)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── @ IntegerNode (location: (10,14)-(10,15)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── @ IntegerNode (location: (10,17)-(10,18)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ └── keyword_loc: (10,6)-(10,10) = "next" │ ├── opening_loc: (10,4)-(10,5) = "{" │ └── closing_loc: (10,19)-(10,20) = "}" ├── @ CallNode (location: (12,0)-(12,22)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -179,27 +202,30 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (12,4)-(12,22)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (12,6)-(12,20)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NextNode (location: (12,6)-(12,20)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (12,11)-(12,20)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ArrayNode (location: (12,11)-(12,20)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 3) │ │ │ │ ├── @ IntegerNode (location: (12,12)-(12,13)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── @ IntegerNode (location: (12,15)-(12,16)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 2 │ │ │ │ └── @ IntegerNode (location: (12,18)-(12,19)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 3 │ │ │ ├── opening_loc: (12,11)-(12,12) = "[" │ │ │ └── closing_loc: (12,19)-(12,20) = "]" @@ -207,7 +233,7 @@ │ ├── opening_loc: (12,4)-(12,5) = "{" │ └── closing_loc: (12,21)-(12,22) = "}" ├── @ CallNode (location: (14,0)-(17,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -217,25 +243,30 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (14,4)-(17,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (14,6)-(17,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NextNode (location: (14,6)-(17,1)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (14,10)-(17,1)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ParenthesesNode (location: (14,10)-(17,1)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (15,2)-(16,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 2) │ │ │ │ ├── @ IntegerNode (location: (15,2)-(15,3)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ └── @ IntegerNode (location: (16,2)-(16,3)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ └── value: 2 │ │ │ ├── opening_loc: (14,10)-(14,11) = "(" │ │ │ └── closing_loc: (17,0)-(17,1) = ")" @@ -243,7 +274,7 @@ │ ├── opening_loc: (14,4)-(14,5) = "{" │ └── closing_loc: (17,2)-(17,3) = "}" ├── @ CallNode (location: (19,0)-(20,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -253,21 +284,24 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (19,4)-(20,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (19,6)-(20,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 2) │ │ ├── @ NextNode (location: (19,6)-(19,10)) + │ │ │ ├── flags: newline │ │ │ ├── arguments: ∅ │ │ │ └── keyword_loc: (19,6)-(19,10) = "next" │ │ └── @ IntegerNode (location: (20,0)-(20,1)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 1 │ ├── opening_loc: (19,4)-(19,5) = "{" │ └── closing_loc: (20,2)-(20,3) = "}" ├── @ CallNode (location: (22,0)-(22,14)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -277,17 +311,21 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (22,4)-(22,14)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (22,6)-(22,12)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NextNode (location: (22,6)-(22,12)) + │ │ ├── flags: newline │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (22,10)-(22,12)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ParenthesesNode (location: (22,10)-(22,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: ∅ │ │ │ ├── opening_loc: (22,10)-(22,11) = "(" │ │ │ └── closing_loc: (22,11)-(22,12) = ")" @@ -295,7 +333,7 @@ │ ├── opening_loc: (22,4)-(22,5) = "{" │ └── closing_loc: (22,13)-(22,14) = "}" └── @ CallNode (location: (24,0)-(24,15)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :tap @@ -305,22 +343,27 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (24,4)-(24,15)) + ├── flags: ∅ ├── locals: [] ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (24,6)-(24,13)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ NextNode (location: (24,6)-(24,13)) + │ ├── flags: newline │ ├── arguments: │ │ @ ArgumentsNode (location: (24,10)-(24,13)) │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ParenthesesNode (location: (24,10)-(24,13)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (24,11)-(24,12)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ IntegerNode (location: (24,11)-(24,12)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: newline, static_literal, decimal │ │ │ └── value: 1 │ │ ├── opening_loc: (24,10)-(24,11) = "(" │ │ └── closing_loc: (24,12)-(24,13) = ")" diff --git a/test/prism/snapshots/nils.txt b/test/prism/snapshots/nils.txt index f72745560f..275bc373a5 100644 --- a/test/prism/snapshots/nils.txt +++ b/test/prism/snapshots/nils.txt @@ -1,33 +1,42 @@ @ ProgramNode (location: (1,0)-(12,11)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(12,11)) + ├── flags: ∅ └── body: (length: 5) ├── @ NilNode (location: (1,0)-(1,3)) + │ └── flags: newline, static_literal ├── @ ParenthesesNode (location: (3,0)-(3,2)) + │ ├── flags: newline │ ├── body: ∅ │ ├── opening_loc: (3,0)-(3,1) = "(" │ └── closing_loc: (3,1)-(3,2) = ")" ├── @ ParenthesesNode (location: (5,0)-(8,1)) + │ ├── flags: newline │ ├── body: ∅ │ ├── opening_loc: (5,0)-(5,1) = "(" │ └── closing_loc: (8,0)-(8,1) = ")" ├── @ PostExecutionNode (location: (10,0)-(10,9)) + │ ├── flags: newline │ ├── statements: │ │ @ StatementsNode (location: (10,6)-(10,7)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (10,6)-(10,7)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 1 │ ├── keyword_loc: (10,0)-(10,3) = "END" │ ├── opening_loc: (10,4)-(10,5) = "{" │ └── closing_loc: (10,8)-(10,9) = "}" └── @ PreExecutionNode (location: (12,0)-(12,11)) + ├── flags: newline ├── statements: │ @ StatementsNode (location: (12,8)-(12,9)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ IntegerNode (location: (12,8)-(12,9)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 1 ├── keyword_loc: (12,0)-(12,5) = "BEGIN" ├── opening_loc: (12,6)-(12,7) = "{" diff --git a/test/prism/snapshots/non_alphanumeric_methods.txt b/test/prism/snapshots/non_alphanumeric_methods.txt index 2ed66fe0e2..2d29d365e4 100644 --- a/test/prism/snapshots/non_alphanumeric_methods.txt +++ b/test/prism/snapshots/non_alphanumeric_methods.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(105,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(105,3)) + ├── flags: ∅ └── body: (length: 36) ├── @ DefNode (location: (1,0)-(2,3)) + │ ├── flags: newline │ ├── name: :! │ ├── name_loc: (1,4)-(1,5) = "!" │ ├── receiver: ∅ @@ -17,6 +20,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (2,0)-(2,3) = "end" ├── @ DefNode (location: (4,0)-(5,3)) + │ ├── flags: newline │ ├── name: :!= │ ├── name_loc: (4,4)-(4,6) = "!=" │ ├── receiver: ∅ @@ -30,6 +34,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (5,0)-(5,3) = "end" ├── @ DefNode (location: (7,0)-(8,3)) + │ ├── flags: newline │ ├── name: :!~ │ ├── name_loc: (7,4)-(7,6) = "!~" │ ├── receiver: ∅ @@ -43,6 +48,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (8,0)-(8,3) = "end" ├── @ DefNode (location: (10,0)-(11,3)) + │ ├── flags: newline │ ├── name: :% │ ├── name_loc: (10,4)-(10,5) = "%" │ ├── receiver: ∅ @@ -56,10 +62,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (11,0)-(11,3) = "end" ├── @ DefNode (location: (13,0)-(14,3)) + │ ├── flags: newline │ ├── name: :+ │ ├── name_loc: (13,9)-(13,10) = "+" │ ├── receiver: │ │ @ SelfNode (location: (13,4)-(13,8)) + │ │ └── flags: ∅ │ ├── parameters: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -70,6 +78,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (14,0)-(14,3) = "end" ├── @ DefNode (location: (16,0)-(17,3)) + │ ├── flags: newline │ ├── name: :& │ ├── name_loc: (16,4)-(16,5) = "&" │ ├── receiver: ∅ @@ -83,6 +92,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (17,0)-(17,3) = "end" ├── @ DefNode (location: (19,0)-(20,3)) + │ ├── flags: newline │ ├── name: :* │ ├── name_loc: (19,4)-(19,5) = "*" │ ├── receiver: ∅ @@ -96,6 +106,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (20,0)-(20,3) = "end" ├── @ DefNode (location: (22,0)-(23,3)) + │ ├── flags: newline │ ├── name: :** │ ├── name_loc: (22,4)-(22,6) = "**" │ ├── receiver: ∅ @@ -109,17 +120,19 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (23,0)-(23,3) = "end" ├── @ StringNode (location: (25,0)-(25,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (25,0)-(25,2) = "%|" │ ├── content_loc: (25,2)-(25,5) = "abc" │ ├── closing_loc: (25,5)-(25,6) = "|" │ └── unescaped: "abc" ├── @ DefNode (location: (27,0)-(28,3)) + │ ├── flags: newline │ ├── name: :+ │ ├── name_loc: (27,4)-(27,5) = "+" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (27,6)-(27,9)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -141,6 +154,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (28,0)-(28,3) = "end" ├── @ DefNode (location: (30,0)-(31,3)) + │ ├── flags: newline │ ├── name: :+ │ ├── name_loc: (30,4)-(30,5) = "+" │ ├── receiver: ∅ @@ -154,11 +168,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (31,0)-(31,3) = "end" ├── @ DefNode (location: (33,0)-(34,3)) + │ ├── flags: newline │ ├── name: :+ │ ├── name_loc: (33,4)-(33,5) = "+" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (33,6)-(33,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (33,6)-(33,7)) │ │ │ ├── flags: ∅ @@ -178,10 +194,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (34,0)-(34,3) = "end" ├── @ DefNode (location: (36,0)-(37,3)) + │ ├── flags: newline │ ├── name: :+ │ ├── name_loc: (36,9)-(36,10) = "+" │ ├── receiver: │ │ @ SelfNode (location: (36,4)-(36,8)) + │ │ └── flags: ∅ │ ├── parameters: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -192,6 +210,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (37,0)-(37,3) = "end" ├── @ DefNode (location: (39,0)-(40,3)) + │ ├── flags: newline │ ├── name: :+ │ ├── name_loc: (39,4)-(39,5) = "+" │ ├── receiver: ∅ @@ -205,6 +224,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (40,0)-(40,3) = "end" ├── @ DefNode (location: (42,0)-(43,3)) + │ ├── flags: newline │ ├── name: :+@ │ ├── name_loc: (42,4)-(42,6) = "+@" │ ├── receiver: ∅ @@ -218,6 +238,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (43,0)-(43,3) = "end" ├── @ DefNode (location: (45,0)-(46,3)) + │ ├── flags: newline │ ├── name: :- │ ├── name_loc: (45,4)-(45,5) = "-" │ ├── receiver: ∅ @@ -231,6 +252,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (46,0)-(46,3) = "end" ├── @ DefNode (location: (48,0)-(48,11)) + │ ├── flags: newline │ ├── name: :- │ ├── name_loc: (48,6)-(48,7) = "-" │ ├── receiver: @@ -254,6 +276,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (48,8)-(48,11) = "end" ├── @ DefNode (location: (50,0)-(51,3)) + │ ├── flags: newline │ ├── name: :-@ │ ├── name_loc: (50,4)-(50,6) = "-@" │ ├── receiver: ∅ @@ -267,6 +290,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (51,0)-(51,3) = "end" ├── @ DefNode (location: (53,0)-(54,3)) + │ ├── flags: newline │ ├── name: :/ │ ├── name_loc: (53,4)-(53,5) = "/" │ ├── receiver: ∅ @@ -280,6 +304,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (54,0)-(54,3) = "end" ├── @ DefNode (location: (56,0)-(57,3)) + │ ├── flags: newline │ ├── name: :< │ ├── name_loc: (56,4)-(56,5) = "<" │ ├── receiver: ∅ @@ -293,6 +318,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (57,0)-(57,3) = "end" ├── @ DefNode (location: (59,0)-(60,3)) + │ ├── flags: newline │ ├── name: :<< │ ├── name_loc: (59,4)-(59,6) = "<<" │ ├── receiver: ∅ @@ -306,6 +332,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (60,0)-(60,3) = "end" ├── @ DefNode (location: (62,0)-(63,3)) + │ ├── flags: newline │ ├── name: :<= │ ├── name_loc: (62,4)-(62,6) = "<=" │ ├── receiver: ∅ @@ -319,6 +346,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (63,0)-(63,3) = "end" ├── @ DefNode (location: (65,0)-(66,3)) + │ ├── flags: newline │ ├── name: :<=> │ ├── name_loc: (65,4)-(65,7) = "<=>" │ ├── receiver: ∅ @@ -332,6 +360,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (66,0)-(66,3) = "end" ├── @ DefNode (location: (68,0)-(69,3)) + │ ├── flags: newline │ ├── name: :== │ ├── name_loc: (68,4)-(68,6) = "==" │ ├── receiver: ∅ @@ -345,6 +374,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (69,0)-(69,3) = "end" ├── @ DefNode (location: (71,0)-(72,3)) + │ ├── flags: newline │ ├── name: :=== │ ├── name_loc: (71,4)-(71,7) = "===" │ ├── receiver: ∅ @@ -358,6 +388,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (72,0)-(72,3) = "end" ├── @ DefNode (location: (74,0)-(75,3)) + │ ├── flags: newline │ ├── name: :=~ │ ├── name_loc: (74,4)-(74,6) = "=~" │ ├── receiver: ∅ @@ -371,6 +402,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (75,0)-(75,3) = "end" ├── @ DefNode (location: (77,0)-(78,3)) + │ ├── flags: newline │ ├── name: :> │ ├── name_loc: (77,4)-(77,5) = ">" │ ├── receiver: ∅ @@ -384,6 +416,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (78,0)-(78,3) = "end" ├── @ DefNode (location: (80,0)-(81,3)) + │ ├── flags: newline │ ├── name: :>= │ ├── name_loc: (80,4)-(80,6) = ">=" │ ├── receiver: ∅ @@ -397,6 +430,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (81,0)-(81,3) = "end" ├── @ DefNode (location: (83,0)-(84,3)) + │ ├── flags: newline │ ├── name: :>> │ ├── name_loc: (83,4)-(83,6) = ">>" │ ├── receiver: ∅ @@ -410,6 +444,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (84,0)-(84,3) = "end" ├── @ DefNode (location: (86,0)-(87,3)) + │ ├── flags: newline │ ├── name: :[] │ ├── name_loc: (86,4)-(86,6) = "[]" │ ├── receiver: ∅ @@ -423,6 +458,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (87,0)-(87,3) = "end" ├── @ DefNode (location: (89,0)-(90,3)) + │ ├── flags: newline │ ├── name: :[]= │ ├── name_loc: (89,4)-(89,7) = "[]=" │ ├── receiver: ∅ @@ -436,6 +472,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (90,0)-(90,3) = "end" ├── @ DefNode (location: (92,0)-(93,3)) + │ ├── flags: newline │ ├── name: :^ │ ├── name_loc: (92,4)-(92,5) = "^" │ ├── receiver: ∅ @@ -449,6 +486,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (93,0)-(93,3) = "end" ├── @ DefNode (location: (95,0)-(96,3)) + │ ├── flags: newline │ ├── name: :` │ ├── name_loc: (95,4)-(95,5) = "`" │ ├── receiver: ∅ @@ -462,10 +500,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (96,0)-(96,3) = "end" ├── @ DefNode (location: (98,0)-(99,3)) + │ ├── flags: newline │ ├── name: :` │ ├── name_loc: (98,9)-(98,10) = "`" │ ├── receiver: │ │ @ SelfNode (location: (98,4)-(98,8)) + │ │ └── flags: ∅ │ ├── parameters: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -476,6 +516,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (99,0)-(99,3) = "end" ├── @ DefNode (location: (101,0)-(102,3)) + │ ├── flags: newline │ ├── name: :| │ ├── name_loc: (101,4)-(101,5) = "|" │ ├── receiver: ∅ @@ -489,6 +530,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (102,0)-(102,3) = "end" └── @ DefNode (location: (104,0)-(105,3)) + ├── flags: newline ├── name: :~ ├── name_loc: (104,4)-(104,5) = "~" ├── receiver: ∅ diff --git a/test/prism/snapshots/not.txt b/test/prism/snapshots/not.txt index fda61bb4b5..e164b18813 100644 --- a/test/prism/snapshots/not.txt +++ b/test/prism/snapshots/not.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(37,16)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(37,16)) + ├── flags: ∅ └── body: (length: 10) ├── @ AndNode (location: (1,0)-(1,19)) + │ ├── flags: newline │ ├── left: │ │ @ CallNode (location: (1,0)-(1,7)) │ │ ├── flags: ∅ @@ -48,9 +51,10 @@ │ │ └── block: ∅ │ └── operator_loc: (1,8)-(1,11) = "and" ├── @ CallNode (location: (3,0)-(3,16)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ AndNode (location: (3,4)-(3,15)) + │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ CallNode (location: (3,4)-(3,7)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -82,7 +86,7 @@ │ ├── closing_loc: (3,15)-(3,16) = ")" │ └── block: ∅ ├── @ CallNode (location: (5,0)-(5,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (5,4)-(5,7)) │ │ ├── flags: variable_call, ignore_visibility @@ -102,6 +106,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ AndNode (location: (7,0)-(8,5)) + │ ├── flags: newline │ ├── left: │ │ @ CallNode (location: (7,0)-(7,7)) │ │ ├── flags: ∅ @@ -146,6 +151,7 @@ │ │ └── block: ∅ │ └── operator_loc: (7,8)-(7,11) = "and" ├── @ AndNode (location: (11,0)-(13,5)) + │ ├── flags: newline │ ├── left: │ │ @ CallNode (location: (11,0)-(11,7)) │ │ ├── flags: ∅ @@ -190,6 +196,7 @@ │ │ └── block: ∅ │ └── operator_loc: (11,8)-(11,11) = "and" ├── @ AndNode (location: (16,0)-(20,5)) + │ ├── flags: newline │ ├── left: │ │ @ CallNode (location: (16,0)-(16,7)) │ │ ├── flags: ∅ @@ -234,7 +241,7 @@ │ │ └── block: ∅ │ └── operator_loc: (16,8)-(16,11) = "and" ├── @ CallNode (location: (22,0)-(25,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (22,4)-(22,7)) │ │ ├── flags: variable_call, ignore_visibility @@ -254,7 +261,7 @@ │ ├── closing_loc: (25,0)-(25,1) = ")" │ └── block: ∅ ├── @ CallNode (location: (27,0)-(33,3)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (30,0)-(30,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -274,7 +281,7 @@ │ ├── closing_loc: (33,2)-(33,3) = ")" │ └── block: ∅ ├── @ CallNode (location: (35,0)-(35,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ FlipFlopNode (location: (35,4)-(35,14)) │ │ ├── flags: ∅ @@ -309,14 +316,16 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ CallNode (location: (37,0)-(37,16)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ ParenthesesNode (location: (37,4)-(37,16)) + │ ├── flags: ∅ │ ├── body: │ │ @ StatementsNode (location: (37,5)-(37,15)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ FlipFlopNode (location: (37,5)-(37,15)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── left: │ │ │ @ CallNode (location: (37,5)-(37,8)) │ │ │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/numbers.txt b/test/prism/snapshots/numbers.txt index 58aea454fa..4512427ef3 100644 --- a/test/prism/snapshots/numbers.txt +++ b/test/prism/snapshots/numbers.txt @@ -1,135 +1,147 @@ @ ProgramNode (location: (1,0)-(67,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(67,5)) + ├── flags: ∅ └── body: (length: 34) ├── @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 0 ├── @ IntegerNode (location: (3,0)-(3,1)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 1 ├── @ FloatNode (location: (5,0)-(5,3)) + │ ├── flags: newline, static_literal │ └── value: 1.0 ├── @ IntegerNode (location: (7,0)-(7,1)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 2 ├── @ IntegerNode (location: (9,0)-(9,3)) - │ ├── flags: binary + │ ├── flags: newline, static_literal, binary │ └── value: 0 ├── @ IntegerNode (location: (11,0)-(11,3)) - │ ├── flags: binary + │ ├── flags: newline, static_literal, binary │ └── value: 1 ├── @ IntegerNode (location: (13,0)-(13,4)) - │ ├── flags: binary + │ ├── flags: newline, static_literal, binary │ └── value: 2 ├── @ IntegerNode (location: (15,0)-(15,3)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 0 ├── @ IntegerNode (location: (17,0)-(17,3)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 1 ├── @ IntegerNode (location: (19,0)-(19,3)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 2 ├── @ IntegerNode (location: (21,0)-(21,2)) - │ ├── flags: octal + │ ├── flags: newline, static_literal, octal │ └── value: 0 ├── @ IntegerNode (location: (23,0)-(23,2)) - │ ├── flags: octal + │ ├── flags: newline, static_literal, octal │ └── value: 1 ├── @ IntegerNode (location: (25,0)-(25,2)) - │ ├── flags: octal + │ ├── flags: newline, static_literal, octal │ └── value: 2 ├── @ IntegerNode (location: (27,0)-(27,3)) - │ ├── flags: octal + │ ├── flags: newline, static_literal, octal │ └── value: 0 ├── @ IntegerNode (location: (29,0)-(29,3)) - │ ├── flags: octal + │ ├── flags: newline, static_literal, octal │ └── value: 1 ├── @ IntegerNode (location: (31,0)-(31,3)) - │ ├── flags: octal + │ ├── flags: newline, static_literal, octal │ └── value: 2 ├── @ IntegerNode (location: (33,0)-(33,3)) - │ ├── flags: hexadecimal + │ ├── flags: newline, static_literal, hexadecimal │ └── value: 0 ├── @ IntegerNode (location: (35,0)-(35,3)) - │ ├── flags: hexadecimal + │ ├── flags: newline, static_literal, hexadecimal │ └── value: 1 ├── @ IntegerNode (location: (37,0)-(37,3)) - │ ├── flags: hexadecimal + │ ├── flags: newline, static_literal, hexadecimal │ └── value: 2 ├── @ ImaginaryNode (location: (39,0)-(39,2)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ IntegerNode (location: (39,0)-(39,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ RationalNode (location: (41,0)-(41,2)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ ├── numerator: 1 │ └── denominator: 1 ├── @ IntegerNode (location: (43,0)-(43,2)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: -1 ├── @ ImaginaryNode (location: (45,0)-(45,3)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ RationalNode (location: (45,0)-(45,2)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ ├── numerator: 1 │ └── denominator: 1 ├── @ RationalNode (location: (47,0)-(47,4)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ ├── numerator: 6 │ └── denominator: 5 ├── @ ImaginaryNode (location: (49,0)-(49,5)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ RationalNode (location: (49,0)-(49,4)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ ├── numerator: 6 │ └── denominator: 5 ├── @ ImaginaryNode (location: (51,0)-(51,4)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ RationalNode (location: (51,0)-(51,3)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ ├── numerator: -1 │ └── denominator: 1 ├── @ RationalNode (location: (53,0)-(53,5)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ ├── numerator: -6 │ └── denominator: 5 ├── @ ImaginaryNode (location: (55,0)-(55,6)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ RationalNode (location: (55,0)-(55,5)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ ├── numerator: -6 │ └── denominator: 5 ├── @ RationalNode (location: (57,0)-(57,4)) - │ ├── flags: octal + │ ├── flags: newline, static_literal, octal │ ├── numerator: 1 │ └── denominator: 1 ├── @ ImaginaryNode (location: (59,0)-(59,4)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ IntegerNode (location: (59,0)-(59,3)) - │ ├── flags: octal + │ ├── flags: static_literal, octal │ └── value: 1 ├── @ ImaginaryNode (location: (61,0)-(61,5)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ RationalNode (location: (61,0)-(61,4)) - │ ├── flags: octal + │ ├── flags: static_literal, octal │ ├── numerator: 1 │ └── denominator: 1 ├── @ RationalNode (location: (63,0)-(63,4)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ ├── numerator: 1 │ └── denominator: 1 ├── @ ImaginaryNode (location: (65,0)-(65,4)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ IntegerNode (location: (65,0)-(65,3)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 └── @ ImaginaryNode (location: (67,0)-(67,5)) + ├── flags: newline, static_literal └── numeric: @ RationalNode (location: (67,0)-(67,4)) - ├── flags: binary + ├── flags: static_literal, binary ├── numerator: 1 └── denominator: 1 diff --git a/test/prism/snapshots/patterns.txt b/test/prism/snapshots/patterns.txt index 51026972e1..7220934585 100644 --- a/test/prism/snapshots/patterns.txt +++ b/test/prism/snapshots/patterns.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(220,31)) +├── flags: ∅ ├── locals: [:bar, :baz, :qux, :b, :a, :foo, :x, :_a] └── statements: @ StatementsNode (location: (1,0)-(220,31)) + ├── flags: ∅ └── body: (length: 182) ├── @ MatchRequiredNode (location: (1,0)-(1,10)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (1,0)-(1,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -17,10 +20,12 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ LocalVariableTargetNode (location: (1,7)-(1,10)) + │ │ ├── flags: ∅ │ │ ├── name: :bar │ │ └── depth: 0 │ └── operator_loc: (1,4)-(1,6) = "=>" ├── @ MatchRequiredNode (location: (2,0)-(2,8)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (2,0)-(2,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -34,10 +39,11 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ IntegerNode (location: (2,7)-(2,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (2,4)-(2,6) = "=>" ├── @ MatchRequiredNode (location: (3,0)-(3,10)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (3,0)-(3,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -51,9 +57,11 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ FloatNode (location: (3,7)-(3,10)) + │ │ ├── flags: static_literal │ │ └── value: 1.0 │ └── operator_loc: (3,4)-(3,6) = "=>" ├── @ MatchRequiredNode (location: (4,0)-(4,9)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (4,0)-(4,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -67,12 +75,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ImaginaryNode (location: (4,7)-(4,9)) + │ │ ├── flags: static_literal │ │ └── numeric: │ │ @ IntegerNode (location: (4,7)-(4,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (4,4)-(4,6) = "=>" ├── @ MatchRequiredNode (location: (5,0)-(5,9)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (5,0)-(5,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -86,11 +96,12 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ RationalNode (location: (5,7)-(5,9)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ ├── numerator: 1 │ │ └── denominator: 1 │ └── operator_loc: (5,4)-(5,6) = "=>" ├── @ MatchRequiredNode (location: (6,0)-(6,11)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (6,0)-(6,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -104,13 +115,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ SymbolNode (location: (6,7)-(6,11)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (6,7)-(6,8) = ":" │ │ ├── value_loc: (6,8)-(6,11) = "foo" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "foo" │ └── operator_loc: (6,4)-(6,6) = "=>" ├── @ MatchRequiredNode (location: (7,0)-(7,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (7,0)-(7,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -124,13 +136,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ SymbolNode (location: (7,7)-(7,14)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (7,7)-(7,10) = "%s[" │ │ ├── value_loc: (7,10)-(7,13) = "foo" │ │ ├── closing_loc: (7,13)-(7,14) = "]" │ │ └── unescaped: "foo" │ └── operator_loc: (7,4)-(7,6) = "=>" ├── @ MatchRequiredNode (location: (8,0)-(8,13)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (8,0)-(8,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -144,13 +157,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ SymbolNode (location: (8,7)-(8,13)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (8,7)-(8,9) = ":\"" │ │ ├── value_loc: (8,9)-(8,12) = "foo" │ │ ├── closing_loc: (8,12)-(8,13) = "\"" │ │ └── unescaped: "foo" │ └── operator_loc: (8,4)-(8,6) = "=>" ├── @ MatchRequiredNode (location: (9,0)-(9,12)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (9,0)-(9,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -164,13 +178,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ RegularExpressionNode (location: (9,7)-(9,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (9,7)-(9,8) = "/" │ │ ├── content_loc: (9,8)-(9,11) = "foo" │ │ ├── closing_loc: (9,11)-(9,12) = "/" │ │ └── unescaped: "foo" │ └── operator_loc: (9,4)-(9,6) = "=>" ├── @ MatchRequiredNode (location: (10,0)-(10,12)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (10,0)-(10,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -191,6 +206,7 @@ │ │ └── unescaped: "foo" │ └── operator_loc: (10,4)-(10,6) = "=>" ├── @ MatchRequiredNode (location: (11,0)-(11,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (11,0)-(11,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -211,6 +227,7 @@ │ │ └── unescaped: "foo" │ └── operator_loc: (11,4)-(11,6) = "=>" ├── @ MatchRequiredNode (location: (12,0)-(12,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (12,0)-(12,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -224,10 +241,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayNode (location: (12,7)-(12,14)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── elements: (length: 1) │ │ │ └── @ SymbolNode (location: (12,10)-(12,13)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (12,10)-(12,13) = "foo" │ │ │ ├── closing_loc: ∅ @@ -236,6 +253,7 @@ │ │ └── closing_loc: (12,13)-(12,14) = "]" │ └── operator_loc: (12,4)-(12,6) = "=>" ├── @ MatchRequiredNode (location: (13,0)-(13,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (13,0)-(13,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -249,10 +267,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayNode (location: (13,7)-(13,14)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── elements: (length: 1) │ │ │ └── @ SymbolNode (location: (13,10)-(13,13)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (13,10)-(13,13) = "foo" │ │ │ ├── closing_loc: ∅ @@ -261,6 +279,7 @@ │ │ └── closing_loc: (13,13)-(13,14) = "]" │ └── operator_loc: (13,4)-(13,6) = "=>" ├── @ MatchRequiredNode (location: (14,0)-(14,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (14,0)-(14,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -286,6 +305,7 @@ │ │ └── closing_loc: (14,13)-(14,14) = "]" │ └── operator_loc: (14,4)-(14,6) = "=>" ├── @ MatchRequiredNode (location: (15,0)-(15,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (15,0)-(15,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -311,6 +331,7 @@ │ │ └── closing_loc: (15,13)-(15,14) = "]" │ └── operator_loc: (15,4)-(15,6) = "=>" ├── @ MatchRequiredNode (location: (16,0)-(16,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (16,0)-(16,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -331,6 +352,7 @@ │ │ └── unescaped: "foo" │ └── operator_loc: (16,4)-(16,6) = "=>" ├── @ MatchRequiredNode (location: (17,0)-(17,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (17,0)-(17,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -351,6 +373,7 @@ │ │ └── unescaped: "foo" │ └── operator_loc: (17,4)-(17,6) = "=>" ├── @ MatchRequiredNode (location: (18,0)-(18,12)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (18,0)-(18,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -371,6 +394,7 @@ │ │ └── unescaped: "foo" │ └── operator_loc: (18,4)-(18,6) = "=>" ├── @ MatchRequiredNode (location: (19,0)-(19,10)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (19,0)-(19,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -384,8 +408,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ NilNode (location: (19,7)-(19,10)) + │ │ └── flags: static_literal │ └── operator_loc: (19,4)-(19,6) = "=>" ├── @ MatchRequiredNode (location: (20,0)-(20,11)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (20,0)-(20,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -399,8 +425,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ SelfNode (location: (20,7)-(20,11)) + │ │ └── flags: ∅ │ └── operator_loc: (20,4)-(20,6) = "=>" ├── @ MatchRequiredNode (location: (21,0)-(21,11)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (21,0)-(21,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -414,8 +442,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ TrueNode (location: (21,7)-(21,11)) + │ │ └── flags: static_literal │ └── operator_loc: (21,4)-(21,6) = "=>" ├── @ MatchRequiredNode (location: (22,0)-(22,12)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (22,0)-(22,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -429,8 +459,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ FalseNode (location: (22,7)-(22,12)) + │ │ └── flags: static_literal │ └── operator_loc: (22,4)-(22,6) = "=>" ├── @ MatchRequiredNode (location: (23,0)-(23,15)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (23,0)-(23,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -448,6 +480,7 @@ │ │ └── filepath: "patterns.txt" │ └── operator_loc: (23,4)-(23,6) = "=>" ├── @ MatchRequiredNode (location: (24,0)-(24,15)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (24,0)-(24,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -461,8 +494,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ SourceLineNode (location: (24,7)-(24,15)) + │ │ └── flags: static_literal │ └── operator_loc: (24,4)-(24,6) = "=>" ├── @ MatchRequiredNode (location: (25,0)-(25,19)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (25,0)-(25,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -476,8 +511,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ SourceEncodingNode (location: (25,7)-(25,19)) + │ │ └── flags: static_literal │ └── operator_loc: (25,4)-(25,6) = "=>" ├── @ MatchRequiredNode (location: (26,0)-(26,17)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (26,0)-(26,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -491,6 +528,7 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ LambdaNode (location: (26,7)-(26,17)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── operator_loc: (26,7)-(26,9) = "->" │ │ ├── opening_loc: (26,10)-(26,11) = "{" @@ -498,12 +536,15 @@ │ │ ├── parameters: ∅ │ │ └── body: │ │ @ StatementsNode (location: (26,12)-(26,15)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (26,12)-(26,15)) + │ │ ├── flags: newline │ │ ├── name: :bar │ │ └── depth: 1 │ └── operator_loc: (26,4)-(26,6) = "=>" ├── @ MatchRequiredNode (location: (28,0)-(28,13)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (28,0)-(28,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -517,18 +558,19 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ RangeNode (location: (28,7)-(28,13)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (28,7)-(28,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: │ │ │ @ IntegerNode (location: (28,12)-(28,13)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── operator_loc: (28,9)-(28,11) = ".." │ └── operator_loc: (28,4)-(28,6) = "=>" ├── @ MatchRequiredNode (location: (29,0)-(29,17)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (29,0)-(29,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -545,13 +587,16 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ FloatNode (location: (29,7)-(29,10)) + │ │ │ ├── flags: static_literal │ │ │ └── value: 1.0 │ │ ├── right: │ │ │ @ FloatNode (location: (29,14)-(29,17)) + │ │ │ ├── flags: static_literal │ │ │ └── value: 1.0 │ │ └── operator_loc: (29,11)-(29,13) = ".." │ └── operator_loc: (29,4)-(29,6) = "=>" ├── @ MatchRequiredNode (location: (30,0)-(30,15)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (30,0)-(30,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -568,19 +613,22 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ ImaginaryNode (location: (30,7)-(30,9)) + │ │ │ ├── flags: static_literal │ │ │ └── numeric: │ │ │ @ IntegerNode (location: (30,7)-(30,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: │ │ │ @ ImaginaryNode (location: (30,13)-(30,15)) + │ │ │ ├── flags: static_literal │ │ │ └── numeric: │ │ │ @ IntegerNode (location: (30,13)-(30,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── operator_loc: (30,10)-(30,12) = ".." │ └── operator_loc: (30,4)-(30,6) = "=>" ├── @ MatchRequiredNode (location: (31,0)-(31,15)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (31,0)-(31,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -597,17 +645,18 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ RationalNode (location: (31,7)-(31,9)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ ├── numerator: 1 │ │ │ └── denominator: 1 │ │ ├── right: │ │ │ @ RationalNode (location: (31,13)-(31,15)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ ├── numerator: 1 │ │ │ └── denominator: 1 │ │ └── operator_loc: (31,10)-(31,12) = ".." │ └── operator_loc: (31,4)-(31,6) = "=>" ├── @ MatchRequiredNode (location: (32,0)-(32,19)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (32,0)-(32,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -624,14 +673,14 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ SymbolNode (location: (32,7)-(32,11)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (32,7)-(32,8) = ":" │ │ │ ├── value_loc: (32,8)-(32,11) = "foo" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "foo" │ │ ├── right: │ │ │ @ SymbolNode (location: (32,15)-(32,19)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (32,15)-(32,16) = ":" │ │ │ ├── value_loc: (32,16)-(32,19) = "foo" │ │ │ ├── closing_loc: ∅ @@ -639,6 +688,7 @@ │ │ └── operator_loc: (32,12)-(32,14) = ".." │ └── operator_loc: (32,4)-(32,6) = "=>" ├── @ MatchRequiredNode (location: (33,0)-(33,25)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (33,0)-(33,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -655,14 +705,14 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ SymbolNode (location: (33,7)-(33,14)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (33,7)-(33,10) = "%s[" │ │ │ ├── value_loc: (33,10)-(33,13) = "foo" │ │ │ ├── closing_loc: (33,13)-(33,14) = "]" │ │ │ └── unescaped: "foo" │ │ ├── right: │ │ │ @ SymbolNode (location: (33,18)-(33,25)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (33,18)-(33,21) = "%s[" │ │ │ ├── value_loc: (33,21)-(33,24) = "foo" │ │ │ ├── closing_loc: (33,24)-(33,25) = "]" @@ -670,6 +720,7 @@ │ │ └── operator_loc: (33,15)-(33,17) = ".." │ └── operator_loc: (33,4)-(33,6) = "=>" ├── @ MatchRequiredNode (location: (34,0)-(34,23)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (34,0)-(34,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -686,14 +737,14 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ SymbolNode (location: (34,7)-(34,13)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (34,7)-(34,9) = ":\"" │ │ │ ├── value_loc: (34,9)-(34,12) = "foo" │ │ │ ├── closing_loc: (34,12)-(34,13) = "\"" │ │ │ └── unescaped: "foo" │ │ ├── right: │ │ │ @ SymbolNode (location: (34,17)-(34,23)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (34,17)-(34,19) = ":\"" │ │ │ ├── value_loc: (34,19)-(34,22) = "foo" │ │ │ ├── closing_loc: (34,22)-(34,23) = "\"" @@ -701,6 +752,7 @@ │ │ └── operator_loc: (34,14)-(34,16) = ".." │ └── operator_loc: (34,4)-(34,6) = "=>" ├── @ MatchRequiredNode (location: (35,0)-(35,21)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (35,0)-(35,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -717,14 +769,14 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ RegularExpressionNode (location: (35,7)-(35,12)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (35,7)-(35,8) = "/" │ │ │ ├── content_loc: (35,8)-(35,11) = "foo" │ │ │ ├── closing_loc: (35,11)-(35,12) = "/" │ │ │ └── unescaped: "foo" │ │ ├── right: │ │ │ @ RegularExpressionNode (location: (35,16)-(35,21)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (35,16)-(35,17) = "/" │ │ │ ├── content_loc: (35,17)-(35,20) = "foo" │ │ │ ├── closing_loc: (35,20)-(35,21) = "/" @@ -732,6 +784,7 @@ │ │ └── operator_loc: (35,13)-(35,15) = ".." │ └── operator_loc: (35,4)-(35,6) = "=>" ├── @ MatchRequiredNode (location: (36,0)-(36,21)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (36,0)-(36,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -763,6 +816,7 @@ │ │ └── operator_loc: (36,13)-(36,15) = ".." │ └── operator_loc: (36,4)-(36,6) = "=>" ├── @ MatchRequiredNode (location: (37,0)-(37,25)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (37,0)-(37,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -794,6 +848,7 @@ │ │ └── operator_loc: (37,15)-(37,17) = ".." │ └── operator_loc: (37,4)-(37,6) = "=>" ├── @ MatchRequiredNode (location: (38,0)-(38,25)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (38,0)-(38,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -810,10 +865,10 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ ArrayNode (location: (38,7)-(38,14)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 1) │ │ │ │ └── @ SymbolNode (location: (38,10)-(38,13)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (38,10)-(38,13) = "foo" │ │ │ │ ├── closing_loc: ∅ @@ -822,10 +877,10 @@ │ │ │ └── closing_loc: (38,13)-(38,14) = "]" │ │ ├── right: │ │ │ @ ArrayNode (location: (38,18)-(38,25)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 1) │ │ │ │ └── @ SymbolNode (location: (38,21)-(38,24)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (38,21)-(38,24) = "foo" │ │ │ │ ├── closing_loc: ∅ @@ -835,6 +890,7 @@ │ │ └── operator_loc: (38,15)-(38,17) = ".." │ └── operator_loc: (38,4)-(38,6) = "=>" ├── @ MatchRequiredNode (location: (39,0)-(39,25)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (39,0)-(39,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -851,10 +907,10 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ ArrayNode (location: (39,7)-(39,14)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 1) │ │ │ │ └── @ SymbolNode (location: (39,10)-(39,13)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (39,10)-(39,13) = "foo" │ │ │ │ ├── closing_loc: ∅ @@ -863,10 +919,10 @@ │ │ │ └── closing_loc: (39,13)-(39,14) = "]" │ │ ├── right: │ │ │ @ ArrayNode (location: (39,18)-(39,25)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 1) │ │ │ │ └── @ SymbolNode (location: (39,21)-(39,24)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (39,21)-(39,24) = "foo" │ │ │ │ ├── closing_loc: ∅ @@ -876,6 +932,7 @@ │ │ └── operator_loc: (39,15)-(39,17) = ".." │ └── operator_loc: (39,4)-(39,6) = "=>" ├── @ MatchRequiredNode (location: (40,0)-(40,25)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (40,0)-(40,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -917,6 +974,7 @@ │ │ └── operator_loc: (40,15)-(40,17) = ".." │ └── operator_loc: (40,4)-(40,6) = "=>" ├── @ MatchRequiredNode (location: (41,0)-(41,25)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (41,0)-(41,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -958,6 +1016,7 @@ │ │ └── operator_loc: (41,15)-(41,17) = ".." │ └── operator_loc: (41,4)-(41,6) = "=>" ├── @ MatchRequiredNode (location: (42,0)-(42,25)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (42,0)-(42,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -989,6 +1048,7 @@ │ │ └── operator_loc: (42,15)-(42,17) = ".." │ └── operator_loc: (42,4)-(42,6) = "=>" ├── @ MatchRequiredNode (location: (43,0)-(43,25)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (43,0)-(43,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1020,6 +1080,7 @@ │ │ └── operator_loc: (43,15)-(43,17) = ".." │ └── operator_loc: (43,4)-(43,6) = "=>" ├── @ MatchRequiredNode (location: (44,0)-(44,21)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (44,0)-(44,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1051,6 +1112,7 @@ │ │ └── operator_loc: (44,13)-(44,15) = ".." │ └── operator_loc: (44,4)-(44,6) = "=>" ├── @ MatchRequiredNode (location: (45,0)-(45,17)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (45,0)-(45,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1064,14 +1126,17 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ RangeNode (location: (45,7)-(45,17)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ NilNode (location: (45,7)-(45,10)) + │ │ │ └── flags: static_literal │ │ ├── right: │ │ │ @ NilNode (location: (45,14)-(45,17)) + │ │ │ └── flags: static_literal │ │ └── operator_loc: (45,11)-(45,13) = ".." │ └── operator_loc: (45,4)-(45,6) = "=>" ├── @ MatchRequiredNode (location: (46,0)-(46,19)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (46,0)-(46,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1088,11 +1153,14 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ SelfNode (location: (46,7)-(46,11)) + │ │ │ └── flags: ∅ │ │ ├── right: │ │ │ @ SelfNode (location: (46,15)-(46,19)) + │ │ │ └── flags: ∅ │ │ └── operator_loc: (46,12)-(46,14) = ".." │ └── operator_loc: (46,4)-(46,6) = "=>" ├── @ MatchRequiredNode (location: (47,0)-(47,19)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (47,0)-(47,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1109,11 +1177,14 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ TrueNode (location: (47,7)-(47,11)) + │ │ │ └── flags: static_literal │ │ ├── right: │ │ │ @ TrueNode (location: (47,15)-(47,19)) + │ │ │ └── flags: static_literal │ │ └── operator_loc: (47,12)-(47,14) = ".." │ └── operator_loc: (47,4)-(47,6) = "=>" ├── @ MatchRequiredNode (location: (48,0)-(48,21)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (48,0)-(48,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1130,11 +1201,14 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ FalseNode (location: (48,7)-(48,12)) + │ │ │ └── flags: static_literal │ │ ├── right: │ │ │ @ FalseNode (location: (48,16)-(48,21)) + │ │ │ └── flags: static_literal │ │ └── operator_loc: (48,13)-(48,15) = ".." │ └── operator_loc: (48,4)-(48,6) = "=>" ├── @ MatchRequiredNode (location: (49,0)-(49,27)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (49,0)-(49,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1160,6 +1234,7 @@ │ │ └── operator_loc: (49,16)-(49,18) = ".." │ └── operator_loc: (49,4)-(49,6) = "=>" ├── @ MatchRequiredNode (location: (50,0)-(50,27)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (50,0)-(50,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1176,11 +1251,14 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ SourceLineNode (location: (50,7)-(50,15)) + │ │ │ └── flags: static_literal │ │ ├── right: │ │ │ @ SourceLineNode (location: (50,19)-(50,27)) + │ │ │ └── flags: static_literal │ │ └── operator_loc: (50,16)-(50,18) = ".." │ └── operator_loc: (50,4)-(50,6) = "=>" ├── @ MatchRequiredNode (location: (51,0)-(51,35)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (51,0)-(51,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1197,11 +1275,14 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ SourceEncodingNode (location: (51,7)-(51,19)) + │ │ │ └── flags: static_literal │ │ ├── right: │ │ │ @ SourceEncodingNode (location: (51,23)-(51,35)) + │ │ │ └── flags: static_literal │ │ └── operator_loc: (51,20)-(51,22) = ".." │ └── operator_loc: (51,4)-(51,6) = "=>" ├── @ MatchRequiredNode (location: (52,0)-(52,31)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (52,0)-(52,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1218,6 +1299,7 @@ │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ LambdaNode (location: (52,7)-(52,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [] │ │ │ ├── operator_loc: (52,7)-(52,9) = "->" │ │ │ ├── opening_loc: (52,10)-(52,11) = "{" @@ -1225,12 +1307,15 @@ │ │ │ ├── parameters: ∅ │ │ │ └── body: │ │ │ @ StatementsNode (location: (52,12)-(52,15)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableReadNode (location: (52,12)-(52,15)) + │ │ │ ├── flags: newline │ │ │ ├── name: :bar │ │ │ └── depth: 1 │ │ ├── right: │ │ │ @ LambdaNode (location: (52,21)-(52,31)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [] │ │ │ ├── operator_loc: (52,21)-(52,23) = "->" │ │ │ ├── opening_loc: (52,24)-(52,25) = "{" @@ -1238,22 +1323,26 @@ │ │ │ ├── parameters: ∅ │ │ │ └── body: │ │ │ @ StatementsNode (location: (52,26)-(52,29)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableReadNode (location: (52,26)-(52,29)) + │ │ │ ├── flags: newline │ │ │ ├── name: :bar │ │ │ └── depth: 1 │ │ └── operator_loc: (52,18)-(52,20) = ".." │ └── operator_loc: (52,4)-(52,6) = "=>" ├── @ LocalVariableWriteNode (location: (54,0)-(54,7)) + │ ├── flags: newline │ ├── name: :bar │ ├── depth: 0 │ ├── name_loc: (54,0)-(54,3) = "bar" │ ├── value: │ │ @ IntegerNode (location: (54,6)-(54,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (54,4)-(54,5) = "=" ├── @ MatchRequiredNode (location: (54,9)-(54,20)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (54,9)-(54,12)) │ │ ├── flags: variable_call, ignore_visibility @@ -1267,13 +1356,16 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ PinnedVariableNode (location: (54,16)-(54,20)) + │ │ ├── flags: ∅ │ │ ├── variable: │ │ │ @ LocalVariableReadNode (location: (54,17)-(54,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ └── operator_loc: (54,16)-(54,17) = "^" │ └── operator_loc: (54,13)-(54,15) = "=>" ├── @ MatchRequiredNode (location: (55,0)-(55,12)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (55,0)-(55,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1287,12 +1379,15 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ PinnedVariableNode (location: (55,7)-(55,12)) + │ │ ├── flags: ∅ │ │ ├── variable: │ │ │ @ InstanceVariableReadNode (location: (55,8)-(55,12)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :@bar │ │ └── operator_loc: (55,7)-(55,8) = "^" │ └── operator_loc: (55,4)-(55,6) = "=>" ├── @ MatchRequiredNode (location: (56,0)-(56,13)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (56,0)-(56,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1306,12 +1401,15 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ PinnedVariableNode (location: (56,7)-(56,13)) + │ │ ├── flags: ∅ │ │ ├── variable: │ │ │ @ ClassVariableReadNode (location: (56,8)-(56,13)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :@@bar │ │ └── operator_loc: (56,7)-(56,8) = "^" │ └── operator_loc: (56,4)-(56,6) = "=>" ├── @ MatchRequiredNode (location: (57,0)-(57,12)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (57,0)-(57,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1325,12 +1423,15 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ PinnedVariableNode (location: (57,7)-(57,12)) + │ │ ├── flags: ∅ │ │ ├── variable: │ │ │ @ GlobalVariableReadNode (location: (57,8)-(57,12)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :$bar │ │ └── operator_loc: (57,7)-(57,8) = "^" │ └── operator_loc: (57,4)-(57,6) = "=>" ├── @ MatchRequiredNode (location: (59,0)-(59,11)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (59,0)-(59,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1344,15 +1445,17 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ PinnedExpressionNode (location: (59,7)-(59,11)) + │ │ ├── flags: ∅ │ │ ├── expression: │ │ │ @ IntegerNode (location: (59,9)-(59,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── operator_loc: (59,7)-(59,8) = "^" │ │ ├── lparen_loc: (59,8)-(59,9) = "(" │ │ └── rparen_loc: (59,10)-(59,11) = ")" │ └── operator_loc: (59,4)-(59,6) = "=>" ├── @ MatchRequiredNode (location: (60,0)-(60,13)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (60,0)-(60,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1366,13 +1469,16 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ PinnedExpressionNode (location: (60,7)-(60,13)) + │ │ ├── flags: ∅ │ │ ├── expression: │ │ │ @ NilNode (location: (60,9)-(60,12)) + │ │ │ └── flags: static_literal │ │ ├── operator_loc: (60,7)-(60,8) = "^" │ │ ├── lparen_loc: (60,8)-(60,9) = "(" │ │ └── rparen_loc: (60,12)-(60,13) = ")" │ └── operator_loc: (60,4)-(60,6) = "=>" ├── @ MatchRequiredNode (location: (61,0)-(61,23)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (61,0)-(61,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1386,6 +1492,7 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ PinnedExpressionNode (location: (61,7)-(61,23)) + │ │ ├── flags: ∅ │ │ ├── expression: │ │ │ @ CallNode (location: (61,9)-(61,22)) │ │ │ ├── flags: ∅ @@ -1417,6 +1524,7 @@ │ │ └── rparen_loc: (61,22)-(61,23) = ")" │ └── operator_loc: (61,4)-(61,6) = "=>" ├── @ MatchRequiredNode (location: (63,0)-(63,10)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (63,0)-(63,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1430,9 +1538,11 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ConstantReadNode (location: (63,7)-(63,10)) + │ │ ├── flags: ∅ │ │ └── name: :Foo │ └── operator_loc: (63,4)-(63,6) = "=>" ├── @ MatchRequiredNode (location: (64,0)-(64,20)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (64,0)-(64,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1446,10 +1556,13 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ConstantPathNode (location: (64,7)-(64,20)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantPathNode (location: (64,7)-(64,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── parent: │ │ │ │ @ ConstantReadNode (location: (64,7)-(64,10)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :Foo │ │ │ ├── name: :Bar │ │ │ ├── delimiter_loc: (64,10)-(64,12) = "::" @@ -1459,6 +1572,7 @@ │ │ └── name_loc: (64,17)-(64,20) = "Baz" │ └── operator_loc: (64,4)-(64,6) = "=>" ├── @ MatchRequiredNode (location: (65,0)-(65,12)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (65,0)-(65,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1472,12 +1586,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ConstantPathNode (location: (65,7)-(65,12)) + │ │ ├── flags: ∅ │ │ ├── parent: ∅ │ │ ├── name: :Foo │ │ ├── delimiter_loc: (65,7)-(65,9) = "::" │ │ └── name_loc: (65,9)-(65,12) = "Foo" │ └── operator_loc: (65,4)-(65,6) = "=>" ├── @ MatchRequiredNode (location: (66,0)-(66,22)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (66,0)-(66,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1491,10 +1607,13 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ConstantPathNode (location: (66,7)-(66,22)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantPathNode (location: (66,7)-(66,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── parent: │ │ │ │ @ ConstantPathNode (location: (66,7)-(66,12)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── parent: ∅ │ │ │ │ ├── name: :Foo │ │ │ │ ├── delimiter_loc: (66,7)-(66,9) = "::" @@ -1507,6 +1626,7 @@ │ │ └── name_loc: (66,19)-(66,22) = "Baz" │ └── operator_loc: (66,4)-(66,6) = "=>" ├── @ MatchRequiredNode (location: (68,0)-(68,12)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (68,0)-(68,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1520,8 +1640,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (68,7)-(68,12)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (68,7)-(68,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── requireds: (length: 0) │ │ ├── rest: ∅ @@ -1530,6 +1652,7 @@ │ │ └── closing_loc: (68,11)-(68,12) = ")" │ └── operator_loc: (68,4)-(68,6) = "=>" ├── @ MatchRequiredNode (location: (69,0)-(69,13)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (69,0)-(69,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1543,12 +1666,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (69,7)-(69,13)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (69,7)-(69,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── requireds: (length: 1) │ │ │ └── @ IntegerNode (location: (69,11)-(69,12)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) @@ -1556,6 +1681,7 @@ │ │ └── closing_loc: (69,12)-(69,13) = ")" │ └── operator_loc: (69,4)-(69,6) = "=>" ├── @ MatchRequiredNode (location: (70,0)-(70,19)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (70,0)-(70,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1569,18 +1695,20 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (70,7)-(70,19)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (70,7)-(70,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── requireds: (length: 3) │ │ │ ├── @ IntegerNode (location: (70,11)-(70,12)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── @ IntegerNode (location: (70,14)-(70,15)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── @ IntegerNode (location: (70,17)-(70,18)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) @@ -1588,6 +1716,7 @@ │ │ └── closing_loc: (70,18)-(70,19) = ")" │ └── operator_loc: (70,4)-(70,6) = "=>" ├── @ MatchRequiredNode (location: (71,0)-(71,15)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (71,0)-(71,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1601,11 +1730,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (71,7)-(71,15)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (71,7)-(71,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (71,11)-(71,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── rest: ∅ @@ -1614,6 +1746,7 @@ │ │ └── closing_loc: (71,14)-(71,15) = ")" │ └── operator_loc: (71,4)-(71,6) = "=>" ├── @ MatchRequiredNode (location: (72,0)-(72,21)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (72,0)-(72,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1627,25 +1760,31 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (72,7)-(72,21)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (72,7)-(72,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── requireds: (length: 0) │ │ ├── rest: │ │ │ @ SplatNode (location: (72,11)-(72,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (72,11)-(72,12) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (72,12)-(72,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── posts: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (72,17)-(72,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ ├── opening_loc: (72,10)-(72,11) = "(" │ │ └── closing_loc: (72,20)-(72,21) = ")" │ └── operator_loc: (72,4)-(72,6) = "=>" ├── @ MatchRequiredNode (location: (73,0)-(73,21)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (73,0)-(73,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1659,18 +1798,23 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (73,7)-(73,21)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (73,7)-(73,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (73,11)-(73,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── rest: │ │ │ @ SplatNode (location: (73,16)-(73,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (73,16)-(73,17) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (73,17)-(73,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ ├── posts: (length: 0) @@ -1678,6 +1822,7 @@ │ │ └── closing_loc: (73,20)-(73,21) = ")" │ └── operator_loc: (73,4)-(73,6) = "=>" ├── @ MatchRequiredNode (location: (74,0)-(74,27)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (74,0)-(74,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1691,31 +1836,39 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ FindPatternNode (location: (74,7)-(74,27)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (74,7)-(74,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── left: │ │ │ @ SplatNode (location: (74,11)-(74,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (74,11)-(74,12) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (74,12)-(74,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (74,17)-(74,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ ├── right: │ │ │ @ SplatNode (location: (74,22)-(74,26)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (74,22)-(74,23) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (74,23)-(74,26)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :qux │ │ │ └── depth: 0 │ │ ├── opening_loc: (74,10)-(74,11) = "(" │ │ └── closing_loc: (74,26)-(74,27) = ")" │ └── operator_loc: (74,4)-(74,6) = "=>" ├── @ MatchRequiredNode (location: (76,0)-(76,12)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (76,0)-(76,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1729,8 +1882,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (76,7)-(76,12)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (76,7)-(76,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── requireds: (length: 0) │ │ ├── rest: ∅ @@ -1739,6 +1894,7 @@ │ │ └── closing_loc: (76,11)-(76,12) = "]" │ └── operator_loc: (76,4)-(76,6) = "=>" ├── @ MatchRequiredNode (location: (77,0)-(77,13)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (77,0)-(77,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1752,12 +1908,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (77,7)-(77,13)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (77,7)-(77,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── requireds: (length: 1) │ │ │ └── @ IntegerNode (location: (77,11)-(77,12)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) @@ -1765,6 +1923,7 @@ │ │ └── closing_loc: (77,12)-(77,13) = "]" │ └── operator_loc: (77,4)-(77,6) = "=>" ├── @ MatchRequiredNode (location: (78,0)-(78,19)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (78,0)-(78,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1778,18 +1937,20 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (78,7)-(78,19)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (78,7)-(78,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── requireds: (length: 3) │ │ │ ├── @ IntegerNode (location: (78,11)-(78,12)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── @ IntegerNode (location: (78,14)-(78,15)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── @ IntegerNode (location: (78,17)-(78,18)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) @@ -1797,6 +1958,7 @@ │ │ └── closing_loc: (78,18)-(78,19) = "]" │ └── operator_loc: (78,4)-(78,6) = "=>" ├── @ MatchRequiredNode (location: (79,0)-(79,17)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (79,0)-(79,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1810,13 +1972,17 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (79,7)-(79,17)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (79,7)-(79,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── requireds: (length: 1) │ │ │ └── @ ArrayPatternNode (location: (79,11)-(79,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: │ │ │ │ @ ConstantReadNode (location: (79,11)-(79,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :Foo │ │ │ ├── requireds: (length: 0) │ │ │ ├── rest: ∅ @@ -1829,6 +1995,7 @@ │ │ └── closing_loc: (79,16)-(79,17) = "]" │ └── operator_loc: (79,4)-(79,6) = "=>" ├── @ MatchRequiredNode (location: (80,0)-(80,15)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (80,0)-(80,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1842,11 +2009,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (80,7)-(80,15)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (80,7)-(80,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (80,11)-(80,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── rest: ∅ @@ -1855,6 +2025,7 @@ │ │ └── closing_loc: (80,14)-(80,15) = "]" │ └── operator_loc: (80,4)-(80,6) = "=>" ├── @ MatchRequiredNode (location: (81,0)-(81,21)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (81,0)-(81,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1868,25 +2039,31 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (81,7)-(81,21)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (81,7)-(81,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── requireds: (length: 0) │ │ ├── rest: │ │ │ @ SplatNode (location: (81,11)-(81,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (81,11)-(81,12) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (81,12)-(81,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── posts: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (81,17)-(81,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ ├── opening_loc: (81,10)-(81,11) = "[" │ │ └── closing_loc: (81,20)-(81,21) = "]" │ └── operator_loc: (81,4)-(81,6) = "=>" ├── @ MatchRequiredNode (location: (82,0)-(82,21)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (82,0)-(82,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1900,18 +2077,23 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (82,7)-(82,21)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (82,7)-(82,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (82,11)-(82,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── rest: │ │ │ @ SplatNode (location: (82,16)-(82,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (82,16)-(82,17) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (82,17)-(82,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ ├── posts: (length: 0) @@ -1919,6 +2101,7 @@ │ │ └── closing_loc: (82,20)-(82,21) = "]" │ └── operator_loc: (82,4)-(82,6) = "=>" ├── @ MatchRequiredNode (location: (83,0)-(83,27)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (83,0)-(83,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1932,31 +2115,39 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ FindPatternNode (location: (83,7)-(83,27)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (83,7)-(83,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Foo │ │ ├── left: │ │ │ @ SplatNode (location: (83,11)-(83,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (83,11)-(83,12) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (83,12)-(83,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (83,17)-(83,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ ├── right: │ │ │ @ SplatNode (location: (83,22)-(83,26)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (83,22)-(83,23) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (83,23)-(83,26)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :qux │ │ │ └── depth: 0 │ │ ├── opening_loc: (83,10)-(83,11) = "[" │ │ └── closing_loc: (83,26)-(83,27) = "]" │ └── operator_loc: (83,4)-(83,6) = "=>" ├── @ MatchRequiredNode (location: (85,0)-(85,11)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (85,0)-(85,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1970,13 +2161,16 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (85,7)-(85,11)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 0) │ │ ├── rest: │ │ │ @ SplatNode (location: (85,7)-(85,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (85,7)-(85,8) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (85,8)-(85,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── posts: (length: 0) @@ -1984,6 +2178,7 @@ │ │ └── closing_loc: ∅ │ └── operator_loc: (85,4)-(85,6) = "=>" ├── @ MatchRequiredNode (location: (86,0)-(86,21)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (86,0)-(86,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1997,26 +2192,32 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (86,7)-(86,21)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 0) │ │ ├── rest: │ │ │ @ SplatNode (location: (86,7)-(86,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (86,7)-(86,8) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (86,8)-(86,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── posts: (length: 2) │ │ │ ├── @ LocalVariableTargetNode (location: (86,13)-(86,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ └── @ LocalVariableTargetNode (location: (86,18)-(86,21)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :qux │ │ │ └── depth: 0 │ │ ├── opening_loc: ∅ │ │ └── closing_loc: ∅ │ └── operator_loc: (86,4)-(86,6) = "=>" ├── @ MatchRequiredNode (location: (87,0)-(87,21)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (87,0)-(87,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2030,26 +2231,32 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (87,7)-(87,21)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (87,7)-(87,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── rest: │ │ │ @ SplatNode (location: (87,12)-(87,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (87,12)-(87,13) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (87,13)-(87,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ ├── posts: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (87,18)-(87,21)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :qux │ │ │ └── depth: 0 │ │ ├── opening_loc: ∅ │ │ └── closing_loc: ∅ │ └── operator_loc: (87,4)-(87,6) = "=>" ├── @ MatchRequiredNode (location: (88,0)-(88,21)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (88,0)-(88,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2063,19 +2270,24 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (88,7)-(88,21)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ LocalVariableTargetNode (location: (88,7)-(88,10)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :bar │ │ │ │ └── depth: 0 │ │ │ └── @ LocalVariableTargetNode (location: (88,12)-(88,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ ├── rest: │ │ │ @ SplatNode (location: (88,17)-(88,21)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (88,17)-(88,18) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (88,18)-(88,21)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :qux │ │ │ └── depth: 0 │ │ ├── posts: (length: 0) @@ -2083,6 +2295,7 @@ │ │ └── closing_loc: ∅ │ └── operator_loc: (88,4)-(88,6) = "=>" ├── @ MatchRequiredNode (location: (89,0)-(89,22)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (89,0)-(89,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2096,29 +2309,36 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ FindPatternNode (location: (89,7)-(89,22)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── left: │ │ │ @ SplatNode (location: (89,7)-(89,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (89,7)-(89,8) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (89,8)-(89,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (89,13)-(89,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ ├── right: │ │ │ @ SplatNode (location: (89,18)-(89,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (89,18)-(89,19) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (89,19)-(89,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :qux │ │ │ └── depth: 0 │ │ ├── opening_loc: ∅ │ │ └── closing_loc: ∅ │ └── operator_loc: (89,4)-(89,6) = "=>" ├── @ MatchRequiredNode (location: (91,0)-(91,11)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (91,0)-(91,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2132,18 +2352,22 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (91,7)-(91,11)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (91,7)-(91,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── rest: │ │ │ @ ImplicitRestNode (location: (91,10)-(91,11)) + │ │ │ └── flags: ∅ │ │ ├── posts: (length: 0) │ │ ├── opening_loc: ∅ │ │ └── closing_loc: ∅ │ └── operator_loc: (91,4)-(91,6) = "=>" ├── @ MatchRequiredNode (location: (95,0)-(95,9)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (95,0)-(95,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2157,6 +2381,7 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (95,7)-(95,9)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 0) │ │ ├── rest: ∅ @@ -2165,6 +2390,7 @@ │ │ └── closing_loc: (95,8)-(95,9) = "]" │ └── operator_loc: (95,4)-(95,6) = "=>" ├── @ MatchRequiredNode (location: (96,0)-(96,17)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (96,0)-(96,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2178,18 +2404,23 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (96,7)-(96,17)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ ArrayPatternNode (location: (96,8)-(96,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ ArrayPatternNode (location: (96,9)-(96,15)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ └── @ ArrayPatternNode (location: (96,10)-(96,14)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── constant: ∅ │ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ │ └── @ ArrayPatternNode (location: (96,11)-(96,13)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── constant: ∅ │ │ │ │ │ │ ├── requireds: (length: 0) │ │ │ │ │ │ ├── rest: ∅ @@ -2214,6 +2445,7 @@ │ │ └── closing_loc: (96,16)-(96,17) = "]" │ └── operator_loc: (96,4)-(96,6) = "=>" ├── @ MatchRequiredNode (location: (98,0)-(98,13)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (98,0)-(98,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2227,13 +2459,16 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (98,7)-(98,13)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 0) │ │ ├── rest: │ │ │ @ SplatNode (location: (98,8)-(98,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (98,8)-(98,9) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (98,9)-(98,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── posts: (length: 0) @@ -2241,6 +2476,7 @@ │ │ └── closing_loc: (98,12)-(98,13) = "]" │ └── operator_loc: (98,4)-(98,6) = "=>" ├── @ MatchRequiredNode (location: (99,0)-(99,23)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (99,0)-(99,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2254,26 +2490,32 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (99,7)-(99,23)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 0) │ │ ├── rest: │ │ │ @ SplatNode (location: (99,8)-(99,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (99,8)-(99,9) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (99,9)-(99,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── posts: (length: 2) │ │ │ ├── @ LocalVariableTargetNode (location: (99,14)-(99,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ └── @ LocalVariableTargetNode (location: (99,19)-(99,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :qux │ │ │ └── depth: 0 │ │ ├── opening_loc: (99,7)-(99,8) = "[" │ │ └── closing_loc: (99,22)-(99,23) = "]" │ └── operator_loc: (99,4)-(99,6) = "=>" ├── @ MatchRequiredNode (location: (100,0)-(100,23)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (100,0)-(100,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2287,26 +2529,32 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (100,7)-(100,23)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (100,8)-(100,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── rest: │ │ │ @ SplatNode (location: (100,13)-(100,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (100,13)-(100,14) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (100,14)-(100,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ ├── posts: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (100,19)-(100,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :qux │ │ │ └── depth: 0 │ │ ├── opening_loc: (100,7)-(100,8) = "[" │ │ └── closing_loc: (100,22)-(100,23) = "]" │ └── operator_loc: (100,4)-(100,6) = "=>" ├── @ MatchRequiredNode (location: (101,0)-(101,23)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (101,0)-(101,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2320,19 +2568,24 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (101,7)-(101,23)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ LocalVariableTargetNode (location: (101,8)-(101,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :bar │ │ │ │ └── depth: 0 │ │ │ └── @ LocalVariableTargetNode (location: (101,13)-(101,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ ├── rest: │ │ │ @ SplatNode (location: (101,18)-(101,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (101,18)-(101,19) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (101,19)-(101,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :qux │ │ │ └── depth: 0 │ │ ├── posts: (length: 0) @@ -2340,6 +2593,7 @@ │ │ └── closing_loc: (101,22)-(101,23) = "]" │ └── operator_loc: (101,4)-(101,6) = "=>" ├── @ MatchRequiredNode (location: (102,0)-(102,24)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (102,0)-(102,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2353,29 +2607,36 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ FindPatternNode (location: (102,7)-(102,24)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── left: │ │ │ @ SplatNode (location: (102,8)-(102,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (102,8)-(102,9) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (102,9)-(102,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (102,14)-(102,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ ├── right: │ │ │ @ SplatNode (location: (102,19)-(102,23)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (102,19)-(102,20) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (102,20)-(102,23)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :qux │ │ │ └── depth: 0 │ │ ├── opening_loc: (102,7)-(102,8) = "[" │ │ └── closing_loc: (102,23)-(102,24) = "]" │ └── operator_loc: (102,4)-(102,6) = "=>" ├── @ MatchPredicateNode (location: (104,0)-(104,10)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (104,0)-(104,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2389,10 +2650,12 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ LocalVariableTargetNode (location: (104,7)-(104,10)) + │ │ ├── flags: ∅ │ │ ├── name: :bar │ │ └── depth: 0 │ └── operator_loc: (104,4)-(104,6) = "in" ├── @ MatchPredicateNode (location: (105,0)-(105,8)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (105,0)-(105,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2406,10 +2669,11 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ IntegerNode (location: (105,7)-(105,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (105,4)-(105,6) = "in" ├── @ MatchPredicateNode (location: (106,0)-(106,10)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (106,0)-(106,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2423,9 +2687,11 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ FloatNode (location: (106,7)-(106,10)) + │ │ ├── flags: static_literal │ │ └── value: 1.0 │ └── operator_loc: (106,4)-(106,6) = "in" ├── @ MatchPredicateNode (location: (107,0)-(107,9)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (107,0)-(107,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2439,12 +2705,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ImaginaryNode (location: (107,7)-(107,9)) + │ │ ├── flags: static_literal │ │ └── numeric: │ │ @ IntegerNode (location: (107,7)-(107,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (107,4)-(107,6) = "in" ├── @ MatchPredicateNode (location: (108,0)-(108,9)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (108,0)-(108,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2458,11 +2726,12 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ RationalNode (location: (108,7)-(108,9)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ ├── numerator: 1 │ │ └── denominator: 1 │ └── operator_loc: (108,4)-(108,6) = "in" ├── @ MatchPredicateNode (location: (109,0)-(109,11)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (109,0)-(109,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2476,13 +2745,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ SymbolNode (location: (109,7)-(109,11)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (109,7)-(109,8) = ":" │ │ ├── value_loc: (109,8)-(109,11) = "foo" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "foo" │ └── operator_loc: (109,4)-(109,6) = "in" ├── @ MatchPredicateNode (location: (110,0)-(110,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (110,0)-(110,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2496,13 +2766,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ SymbolNode (location: (110,7)-(110,14)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (110,7)-(110,10) = "%s[" │ │ ├── value_loc: (110,10)-(110,13) = "foo" │ │ ├── closing_loc: (110,13)-(110,14) = "]" │ │ └── unescaped: "foo" │ └── operator_loc: (110,4)-(110,6) = "in" ├── @ MatchPredicateNode (location: (111,0)-(111,13)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (111,0)-(111,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2516,13 +2787,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ SymbolNode (location: (111,7)-(111,13)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (111,7)-(111,9) = ":\"" │ │ ├── value_loc: (111,9)-(111,12) = "foo" │ │ ├── closing_loc: (111,12)-(111,13) = "\"" │ │ └── unescaped: "foo" │ └── operator_loc: (111,4)-(111,6) = "in" ├── @ MatchPredicateNode (location: (112,0)-(112,12)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (112,0)-(112,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2536,13 +2808,14 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ RegularExpressionNode (location: (112,7)-(112,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (112,7)-(112,8) = "/" │ │ ├── content_loc: (112,8)-(112,11) = "foo" │ │ ├── closing_loc: (112,11)-(112,12) = "/" │ │ └── unescaped: "foo" │ └── operator_loc: (112,4)-(112,6) = "in" ├── @ MatchPredicateNode (location: (113,0)-(113,12)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (113,0)-(113,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2563,6 +2836,7 @@ │ │ └── unescaped: "foo" │ └── operator_loc: (113,4)-(113,6) = "in" ├── @ MatchPredicateNode (location: (114,0)-(114,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (114,0)-(114,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2583,6 +2857,7 @@ │ │ └── unescaped: "foo" │ └── operator_loc: (114,4)-(114,6) = "in" ├── @ MatchPredicateNode (location: (115,0)-(115,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (115,0)-(115,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2596,10 +2871,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayNode (location: (115,7)-(115,14)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── elements: (length: 1) │ │ │ └── @ SymbolNode (location: (115,10)-(115,13)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (115,10)-(115,13) = "foo" │ │ │ ├── closing_loc: ∅ @@ -2608,6 +2883,7 @@ │ │ └── closing_loc: (115,13)-(115,14) = "]" │ └── operator_loc: (115,4)-(115,6) = "in" ├── @ MatchPredicateNode (location: (116,0)-(116,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (116,0)-(116,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2621,10 +2897,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayNode (location: (116,7)-(116,14)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── elements: (length: 1) │ │ │ └── @ SymbolNode (location: (116,10)-(116,13)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (116,10)-(116,13) = "foo" │ │ │ ├── closing_loc: ∅ @@ -2633,6 +2909,7 @@ │ │ └── closing_loc: (116,13)-(116,14) = "]" │ └── operator_loc: (116,4)-(116,6) = "in" ├── @ MatchPredicateNode (location: (117,0)-(117,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (117,0)-(117,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2658,6 +2935,7 @@ │ │ └── closing_loc: (117,13)-(117,14) = "]" │ └── operator_loc: (117,4)-(117,6) = "in" ├── @ MatchPredicateNode (location: (118,0)-(118,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (118,0)-(118,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2683,6 +2961,7 @@ │ │ └── closing_loc: (118,13)-(118,14) = "]" │ └── operator_loc: (118,4)-(118,6) = "in" ├── @ MatchPredicateNode (location: (119,0)-(119,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (119,0)-(119,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2703,6 +2982,7 @@ │ │ └── unescaped: "foo" │ └── operator_loc: (119,4)-(119,6) = "in" ├── @ MatchPredicateNode (location: (120,0)-(120,14)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (120,0)-(120,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2723,6 +3003,7 @@ │ │ └── unescaped: "foo" │ └── operator_loc: (120,4)-(120,6) = "in" ├── @ MatchPredicateNode (location: (121,0)-(121,12)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (121,0)-(121,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2743,6 +3024,7 @@ │ │ └── unescaped: "foo" │ └── operator_loc: (121,4)-(121,6) = "in" ├── @ MatchPredicateNode (location: (122,0)-(122,10)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (122,0)-(122,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2756,8 +3038,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ NilNode (location: (122,7)-(122,10)) + │ │ └── flags: static_literal │ └── operator_loc: (122,4)-(122,6) = "in" ├── @ MatchPredicateNode (location: (123,0)-(123,11)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (123,0)-(123,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2771,8 +3055,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ SelfNode (location: (123,7)-(123,11)) + │ │ └── flags: ∅ │ └── operator_loc: (123,4)-(123,6) = "in" ├── @ MatchPredicateNode (location: (124,0)-(124,11)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (124,0)-(124,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2786,8 +3072,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ TrueNode (location: (124,7)-(124,11)) + │ │ └── flags: static_literal │ └── operator_loc: (124,4)-(124,6) = "in" ├── @ MatchPredicateNode (location: (125,0)-(125,12)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (125,0)-(125,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2801,8 +3089,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ FalseNode (location: (125,7)-(125,12)) + │ │ └── flags: static_literal │ └── operator_loc: (125,4)-(125,6) = "in" ├── @ MatchPredicateNode (location: (126,0)-(126,15)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (126,0)-(126,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2820,6 +3110,7 @@ │ │ └── filepath: "patterns.txt" │ └── operator_loc: (126,4)-(126,6) = "in" ├── @ MatchPredicateNode (location: (127,0)-(127,15)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (127,0)-(127,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2833,8 +3124,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ SourceLineNode (location: (127,7)-(127,15)) + │ │ └── flags: static_literal │ └── operator_loc: (127,4)-(127,6) = "in" ├── @ MatchPredicateNode (location: (128,0)-(128,19)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (128,0)-(128,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2848,8 +3141,10 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ SourceEncodingNode (location: (128,7)-(128,19)) + │ │ └── flags: static_literal │ └── operator_loc: (128,4)-(128,6) = "in" ├── @ MatchPredicateNode (location: (129,0)-(129,17)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (129,0)-(129,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2863,6 +3158,7 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ LambdaNode (location: (129,7)-(129,17)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── operator_loc: (129,7)-(129,9) = "->" │ │ ├── opening_loc: (129,10)-(129,11) = "{" @@ -2870,12 +3166,15 @@ │ │ ├── parameters: ∅ │ │ └── body: │ │ @ StatementsNode (location: (129,12)-(129,15)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (129,12)-(129,15)) + │ │ ├── flags: newline │ │ ├── name: :bar │ │ └── depth: 1 │ └── operator_loc: (129,4)-(129,6) = "in" ├── @ MatchPredicateNode (location: (131,0)-(131,11)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (131,0)-(131,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2889,18 +3188,22 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (131,7)-(131,11)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (131,7)-(131,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── rest: │ │ │ @ ImplicitRestNode (location: (131,10)-(131,11)) + │ │ │ └── flags: ∅ │ │ ├── posts: (length: 0) │ │ ├── opening_loc: ∅ │ │ └── closing_loc: ∅ │ └── operator_loc: (131,4)-(131,6) = "in" ├── @ CaseMatchNode (location: (135,0)-(135,25)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (135,5)-(135,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -2914,8 +3217,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (135,10)-(135,21)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ LocalVariableTargetNode (location: (135,13)-(135,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── statements: ∅ @@ -2925,6 +3230,7 @@ │ ├── case_keyword_loc: (135,0)-(135,4) = "case" │ └── end_keyword_loc: (135,22)-(135,25) = "end" ├── @ CaseMatchNode (location: (136,0)-(136,23)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (136,5)-(136,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -2938,9 +3244,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (136,10)-(136,19)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IntegerNode (location: (136,13)-(136,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── statements: ∅ │ │ ├── in_loc: (136,10)-(136,12) = "in" @@ -2949,6 +3256,7 @@ │ ├── case_keyword_loc: (136,0)-(136,4) = "case" │ └── end_keyword_loc: (136,20)-(136,23) = "end" ├── @ CaseMatchNode (location: (137,0)-(137,25)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (137,5)-(137,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -2962,8 +3270,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (137,10)-(137,21)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ FloatNode (location: (137,13)-(137,16)) + │ │ │ ├── flags: static_literal │ │ │ └── value: 1.0 │ │ ├── statements: ∅ │ │ ├── in_loc: (137,10)-(137,12) = "in" @@ -2972,6 +3282,7 @@ │ ├── case_keyword_loc: (137,0)-(137,4) = "case" │ └── end_keyword_loc: (137,22)-(137,25) = "end" ├── @ CaseMatchNode (location: (138,0)-(138,24)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (138,5)-(138,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -2985,11 +3296,13 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (138,10)-(138,20)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ImaginaryNode (location: (138,13)-(138,15)) + │ │ │ ├── flags: static_literal │ │ │ └── numeric: │ │ │ @ IntegerNode (location: (138,13)-(138,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── statements: ∅ │ │ ├── in_loc: (138,10)-(138,12) = "in" @@ -2998,6 +3311,7 @@ │ ├── case_keyword_loc: (138,0)-(138,4) = "case" │ └── end_keyword_loc: (138,21)-(138,24) = "end" ├── @ CaseMatchNode (location: (139,0)-(139,24)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (139,5)-(139,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3011,9 +3325,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (139,10)-(139,20)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ RationalNode (location: (139,13)-(139,15)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ ├── numerator: 1 │ │ │ └── denominator: 1 │ │ ├── statements: ∅ @@ -3023,6 +3338,7 @@ │ ├── case_keyword_loc: (139,0)-(139,4) = "case" │ └── end_keyword_loc: (139,21)-(139,24) = "end" ├── @ CaseMatchNode (location: (140,0)-(140,26)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (140,5)-(140,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3036,9 +3352,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (140,10)-(140,22)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ SymbolNode (location: (140,13)-(140,17)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (140,13)-(140,14) = ":" │ │ │ ├── value_loc: (140,14)-(140,17) = "foo" │ │ │ ├── closing_loc: ∅ @@ -3050,6 +3367,7 @@ │ ├── case_keyword_loc: (140,0)-(140,4) = "case" │ └── end_keyword_loc: (140,23)-(140,26) = "end" ├── @ CaseMatchNode (location: (141,0)-(141,29)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (141,5)-(141,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3063,9 +3381,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (141,10)-(141,25)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ SymbolNode (location: (141,13)-(141,20)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (141,13)-(141,16) = "%s[" │ │ │ ├── value_loc: (141,16)-(141,19) = "foo" │ │ │ ├── closing_loc: (141,19)-(141,20) = "]" @@ -3077,6 +3396,7 @@ │ ├── case_keyword_loc: (141,0)-(141,4) = "case" │ └── end_keyword_loc: (141,26)-(141,29) = "end" ├── @ CaseMatchNode (location: (142,0)-(142,28)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (142,5)-(142,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3090,9 +3410,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (142,10)-(142,24)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ SymbolNode (location: (142,13)-(142,19)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (142,13)-(142,15) = ":\"" │ │ │ ├── value_loc: (142,15)-(142,18) = "foo" │ │ │ ├── closing_loc: (142,18)-(142,19) = "\"" @@ -3104,6 +3425,7 @@ │ ├── case_keyword_loc: (142,0)-(142,4) = "case" │ └── end_keyword_loc: (142,25)-(142,28) = "end" ├── @ CaseMatchNode (location: (143,0)-(143,27)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (143,5)-(143,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3117,9 +3439,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (143,10)-(143,23)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ RegularExpressionNode (location: (143,13)-(143,18)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (143,13)-(143,14) = "/" │ │ │ ├── content_loc: (143,14)-(143,17) = "foo" │ │ │ ├── closing_loc: (143,17)-(143,18) = "/" @@ -3131,6 +3454,7 @@ │ ├── case_keyword_loc: (143,0)-(143,4) = "case" │ └── end_keyword_loc: (143,24)-(143,27) = "end" ├── @ CaseMatchNode (location: (144,0)-(144,27)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (144,5)-(144,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3144,6 +3468,7 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (144,10)-(144,23)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ XStringNode (location: (144,13)-(144,18)) │ │ │ ├── flags: ∅ @@ -3158,6 +3483,7 @@ │ ├── case_keyword_loc: (144,0)-(144,4) = "case" │ └── end_keyword_loc: (144,24)-(144,27) = "end" ├── @ CaseMatchNode (location: (145,0)-(145,29)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (145,5)-(145,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3171,6 +3497,7 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (145,10)-(145,25)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ XStringNode (location: (145,13)-(145,20)) │ │ │ ├── flags: ∅ @@ -3185,6 +3512,7 @@ │ ├── case_keyword_loc: (145,0)-(145,4) = "case" │ └── end_keyword_loc: (145,26)-(145,29) = "end" ├── @ CaseMatchNode (location: (146,0)-(146,29)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (146,5)-(146,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3198,12 +3526,13 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (146,10)-(146,25)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayNode (location: (146,13)-(146,20)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 1) │ │ │ │ └── @ SymbolNode (location: (146,16)-(146,19)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (146,16)-(146,19) = "foo" │ │ │ │ ├── closing_loc: ∅ @@ -3217,6 +3546,7 @@ │ ├── case_keyword_loc: (146,0)-(146,4) = "case" │ └── end_keyword_loc: (146,26)-(146,29) = "end" ├── @ CaseMatchNode (location: (147,0)-(147,29)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (147,5)-(147,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3230,12 +3560,13 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (147,10)-(147,25)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayNode (location: (147,13)-(147,20)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 1) │ │ │ │ └── @ SymbolNode (location: (147,16)-(147,19)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (147,16)-(147,19) = "foo" │ │ │ │ ├── closing_loc: ∅ @@ -3249,6 +3580,7 @@ │ ├── case_keyword_loc: (147,0)-(147,4) = "case" │ └── end_keyword_loc: (147,26)-(147,29) = "end" ├── @ CaseMatchNode (location: (148,0)-(148,29)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (148,5)-(148,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3262,6 +3594,7 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (148,10)-(148,25)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayNode (location: (148,13)-(148,20)) │ │ │ ├── flags: ∅ @@ -3281,6 +3614,7 @@ │ ├── case_keyword_loc: (148,0)-(148,4) = "case" │ └── end_keyword_loc: (148,26)-(148,29) = "end" ├── @ CaseMatchNode (location: (149,0)-(149,29)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (149,5)-(149,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3294,6 +3628,7 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (149,10)-(149,25)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayNode (location: (149,13)-(149,20)) │ │ │ ├── flags: ∅ @@ -3313,6 +3648,7 @@ │ ├── case_keyword_loc: (149,0)-(149,4) = "case" │ └── end_keyword_loc: (149,26)-(149,29) = "end" ├── @ CaseMatchNode (location: (150,0)-(150,29)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (150,5)-(150,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3326,6 +3662,7 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (150,10)-(150,25)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ StringNode (location: (150,13)-(150,20)) │ │ │ ├── flags: ∅ @@ -3340,6 +3677,7 @@ │ ├── case_keyword_loc: (150,0)-(150,4) = "case" │ └── end_keyword_loc: (150,26)-(150,29) = "end" ├── @ CaseMatchNode (location: (151,0)-(151,29)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (151,5)-(151,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3353,6 +3691,7 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (151,10)-(151,25)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ StringNode (location: (151,13)-(151,20)) │ │ │ ├── flags: ∅ @@ -3367,6 +3706,7 @@ │ ├── case_keyword_loc: (151,0)-(151,4) = "case" │ └── end_keyword_loc: (151,26)-(151,29) = "end" ├── @ CaseMatchNode (location: (152,0)-(152,27)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (152,5)-(152,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3380,6 +3720,7 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (152,10)-(152,23)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ StringNode (location: (152,13)-(152,18)) │ │ │ ├── flags: ∅ @@ -3394,6 +3735,7 @@ │ ├── case_keyword_loc: (152,0)-(152,4) = "case" │ └── end_keyword_loc: (152,24)-(152,27) = "end" ├── @ CaseMatchNode (location: (153,0)-(153,25)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (153,5)-(153,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3407,8 +3749,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (153,10)-(153,21)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ NilNode (location: (153,13)-(153,16)) + │ │ │ └── flags: static_literal │ │ ├── statements: ∅ │ │ ├── in_loc: (153,10)-(153,12) = "in" │ │ └── then_loc: (153,17)-(153,21) = "then" @@ -3416,6 +3760,7 @@ │ ├── case_keyword_loc: (153,0)-(153,4) = "case" │ └── end_keyword_loc: (153,22)-(153,25) = "end" ├── @ CaseMatchNode (location: (154,0)-(154,26)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (154,5)-(154,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3429,8 +3774,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (154,10)-(154,22)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ SelfNode (location: (154,13)-(154,17)) + │ │ │ └── flags: ∅ │ │ ├── statements: ∅ │ │ ├── in_loc: (154,10)-(154,12) = "in" │ │ └── then_loc: (154,18)-(154,22) = "then" @@ -3438,6 +3785,7 @@ │ ├── case_keyword_loc: (154,0)-(154,4) = "case" │ └── end_keyword_loc: (154,23)-(154,26) = "end" ├── @ CaseMatchNode (location: (155,0)-(155,26)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (155,5)-(155,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3451,8 +3799,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (155,10)-(155,22)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ TrueNode (location: (155,13)-(155,17)) + │ │ │ └── flags: static_literal │ │ ├── statements: ∅ │ │ ├── in_loc: (155,10)-(155,12) = "in" │ │ └── then_loc: (155,18)-(155,22) = "then" @@ -3460,6 +3810,7 @@ │ ├── case_keyword_loc: (155,0)-(155,4) = "case" │ └── end_keyword_loc: (155,23)-(155,26) = "end" ├── @ CaseMatchNode (location: (156,0)-(156,27)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (156,5)-(156,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3473,8 +3824,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (156,10)-(156,23)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ FalseNode (location: (156,13)-(156,18)) + │ │ │ └── flags: static_literal │ │ ├── statements: ∅ │ │ ├── in_loc: (156,10)-(156,12) = "in" │ │ └── then_loc: (156,19)-(156,23) = "then" @@ -3482,6 +3835,7 @@ │ ├── case_keyword_loc: (156,0)-(156,4) = "case" │ └── end_keyword_loc: (156,24)-(156,27) = "end" ├── @ CaseMatchNode (location: (157,0)-(157,30)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (157,5)-(157,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3495,6 +3849,7 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (157,10)-(157,26)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ SourceFileNode (location: (157,13)-(157,21)) │ │ │ ├── flags: ∅ @@ -3506,6 +3861,7 @@ │ ├── case_keyword_loc: (157,0)-(157,4) = "case" │ └── end_keyword_loc: (157,27)-(157,30) = "end" ├── @ CaseMatchNode (location: (158,0)-(158,30)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (158,5)-(158,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3519,8 +3875,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (158,10)-(158,26)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ SourceLineNode (location: (158,13)-(158,21)) + │ │ │ └── flags: static_literal │ │ ├── statements: ∅ │ │ ├── in_loc: (158,10)-(158,12) = "in" │ │ └── then_loc: (158,22)-(158,26) = "then" @@ -3528,6 +3886,7 @@ │ ├── case_keyword_loc: (158,0)-(158,4) = "case" │ └── end_keyword_loc: (158,27)-(158,30) = "end" ├── @ CaseMatchNode (location: (159,0)-(159,34)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (159,5)-(159,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3541,8 +3900,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (159,10)-(159,30)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ SourceEncodingNode (location: (159,13)-(159,25)) + │ │ │ └── flags: static_literal │ │ ├── statements: ∅ │ │ ├── in_loc: (159,10)-(159,12) = "in" │ │ └── then_loc: (159,26)-(159,30) = "then" @@ -3550,6 +3911,7 @@ │ ├── case_keyword_loc: (159,0)-(159,4) = "case" │ └── end_keyword_loc: (159,31)-(159,34) = "end" ├── @ CaseMatchNode (location: (160,0)-(160,32)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (160,5)-(160,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3563,8 +3925,10 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (160,10)-(160,28)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ LambdaNode (location: (160,13)-(160,23)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [] │ │ │ ├── operator_loc: (160,13)-(160,15) = "->" │ │ │ ├── opening_loc: (160,16)-(160,17) = "{" @@ -3572,8 +3936,10 @@ │ │ │ ├── parameters: ∅ │ │ │ └── body: │ │ │ @ StatementsNode (location: (160,18)-(160,21)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableReadNode (location: (160,18)-(160,21)) + │ │ │ ├── flags: newline │ │ │ ├── name: :bar │ │ │ └── depth: 1 │ │ ├── statements: ∅ @@ -3583,6 +3949,7 @@ │ ├── case_keyword_loc: (160,0)-(160,4) = "case" │ └── end_keyword_loc: (160,29)-(160,32) = "end" ├── @ CaseMatchNode (location: (162,0)-(162,32)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (162,5)-(162,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3596,18 +3963,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (162,10)-(162,28)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (162,13)-(162,23)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (162,17)-(162,19) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (162,20)-(162,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (162,13)-(162,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ LocalVariableTargetNode (location: (162,13)-(162,16)) + │ │ │ │ ├── flags: newline │ │ │ │ ├── name: :bar │ │ │ │ └── depth: 0 │ │ │ ├── consequent: ∅ @@ -3619,6 +3991,7 @@ │ ├── case_keyword_loc: (162,0)-(162,4) = "case" │ └── end_keyword_loc: (162,29)-(162,32) = "end" ├── @ CaseMatchNode (location: (163,0)-(163,30)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (163,5)-(163,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3632,19 +4005,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (163,10)-(163,26)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (163,13)-(163,21)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (163,15)-(163,17) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (163,18)-(163,21)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (163,13)-(163,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (163,13)-(163,14)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── consequent: ∅ │ │ │ └── end_keyword_loc: ∅ @@ -3655,6 +4032,7 @@ │ ├── case_keyword_loc: (163,0)-(163,4) = "case" │ └── end_keyword_loc: (163,27)-(163,30) = "end" ├── @ CaseMatchNode (location: (164,0)-(164,32)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (164,5)-(164,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3668,18 +4046,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (164,10)-(164,28)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (164,13)-(164,23)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (164,17)-(164,19) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (164,20)-(164,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (164,13)-(164,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ FloatNode (location: (164,13)-(164,16)) + │ │ │ │ ├── flags: newline, static_literal │ │ │ │ └── value: 1.0 │ │ │ ├── consequent: ∅ │ │ │ └── end_keyword_loc: ∅ @@ -3690,6 +4073,7 @@ │ ├── case_keyword_loc: (164,0)-(164,4) = "case" │ └── end_keyword_loc: (164,29)-(164,32) = "end" ├── @ CaseMatchNode (location: (165,0)-(165,31)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (165,5)-(165,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3703,21 +4087,26 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (165,10)-(165,27)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (165,13)-(165,22)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (165,16)-(165,18) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (165,19)-(165,22)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (165,13)-(165,15)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ ImaginaryNode (location: (165,13)-(165,15)) + │ │ │ │ ├── flags: newline, static_literal │ │ │ │ └── numeric: │ │ │ │ @ IntegerNode (location: (165,13)-(165,14)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── consequent: ∅ │ │ │ └── end_keyword_loc: ∅ @@ -3728,6 +4117,7 @@ │ ├── case_keyword_loc: (165,0)-(165,4) = "case" │ └── end_keyword_loc: (165,28)-(165,31) = "end" ├── @ CaseMatchNode (location: (166,0)-(166,31)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (166,5)-(166,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3741,19 +4131,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (166,10)-(166,27)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (166,13)-(166,22)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (166,16)-(166,18) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (166,19)-(166,22)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (166,13)-(166,15)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ RationalNode (location: (166,13)-(166,15)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ ├── numerator: 1 │ │ │ │ └── denominator: 1 │ │ │ ├── consequent: ∅ @@ -3765,6 +4159,7 @@ │ ├── case_keyword_loc: (166,0)-(166,4) = "case" │ └── end_keyword_loc: (166,28)-(166,31) = "end" ├── @ CaseMatchNode (location: (167,0)-(167,33)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (167,5)-(167,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3778,19 +4173,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (167,10)-(167,29)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (167,13)-(167,24)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (167,18)-(167,20) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (167,21)-(167,24)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (167,13)-(167,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ SymbolNode (location: (167,13)-(167,17)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (167,13)-(167,14) = ":" │ │ │ │ ├── value_loc: (167,14)-(167,17) = "foo" │ │ │ │ ├── closing_loc: ∅ @@ -3804,6 +4203,7 @@ │ ├── case_keyword_loc: (167,0)-(167,4) = "case" │ └── end_keyword_loc: (167,30)-(167,33) = "end" ├── @ CaseMatchNode (location: (168,0)-(168,36)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (168,5)-(168,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3817,19 +4217,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (168,10)-(168,32)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (168,13)-(168,27)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (168,21)-(168,23) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (168,24)-(168,27)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (168,13)-(168,20)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ SymbolNode (location: (168,13)-(168,20)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (168,13)-(168,16) = "%s[" │ │ │ │ ├── value_loc: (168,16)-(168,19) = "foo" │ │ │ │ ├── closing_loc: (168,19)-(168,20) = "]" @@ -3843,6 +4247,7 @@ │ ├── case_keyword_loc: (168,0)-(168,4) = "case" │ └── end_keyword_loc: (168,33)-(168,36) = "end" ├── @ CaseMatchNode (location: (169,0)-(169,35)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (169,5)-(169,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3856,19 +4261,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (169,10)-(169,31)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (169,13)-(169,26)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (169,20)-(169,22) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (169,23)-(169,26)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (169,13)-(169,19)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ SymbolNode (location: (169,13)-(169,19)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (169,13)-(169,15) = ":\"" │ │ │ │ ├── value_loc: (169,15)-(169,18) = "foo" │ │ │ │ ├── closing_loc: (169,18)-(169,19) = "\"" @@ -3882,6 +4291,7 @@ │ ├── case_keyword_loc: (169,0)-(169,4) = "case" │ └── end_keyword_loc: (169,32)-(169,35) = "end" ├── @ CaseMatchNode (location: (170,0)-(170,34)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (170,5)-(170,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3895,19 +4305,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (170,10)-(170,30)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (170,13)-(170,25)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (170,19)-(170,21) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (170,22)-(170,25)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (170,13)-(170,18)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ RegularExpressionNode (location: (170,13)-(170,18)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (170,13)-(170,14) = "/" │ │ │ │ ├── content_loc: (170,14)-(170,17) = "foo" │ │ │ │ ├── closing_loc: (170,17)-(170,18) = "/" @@ -3921,6 +4335,7 @@ │ ├── case_keyword_loc: (170,0)-(170,4) = "case" │ └── end_keyword_loc: (170,31)-(170,34) = "end" ├── @ CaseMatchNode (location: (171,0)-(171,34)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (171,5)-(171,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3934,19 +4349,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (171,10)-(171,30)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (171,13)-(171,25)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (171,19)-(171,21) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (171,22)-(171,25)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (171,13)-(171,18)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ XStringNode (location: (171,13)-(171,18)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: newline │ │ │ │ ├── opening_loc: (171,13)-(171,14) = "`" │ │ │ │ ├── content_loc: (171,14)-(171,17) = "foo" │ │ │ │ ├── closing_loc: (171,17)-(171,18) = "`" @@ -3960,6 +4379,7 @@ │ ├── case_keyword_loc: (171,0)-(171,4) = "case" │ └── end_keyword_loc: (171,31)-(171,34) = "end" ├── @ CaseMatchNode (location: (172,0)-(172,36)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (172,5)-(172,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -3973,19 +4393,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (172,10)-(172,32)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (172,13)-(172,27)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (172,21)-(172,23) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (172,24)-(172,27)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (172,13)-(172,20)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ XStringNode (location: (172,13)-(172,20)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: newline │ │ │ │ ├── opening_loc: (172,13)-(172,16) = "%x[" │ │ │ │ ├── content_loc: (172,16)-(172,19) = "foo" │ │ │ │ ├── closing_loc: (172,19)-(172,20) = "]" @@ -3999,6 +4423,7 @@ │ ├── case_keyword_loc: (172,0)-(172,4) = "case" │ └── end_keyword_loc: (172,33)-(172,36) = "end" ├── @ CaseMatchNode (location: (173,0)-(173,36)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (173,5)-(173,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4012,22 +4437,26 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (173,10)-(173,32)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (173,13)-(173,27)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (173,21)-(173,23) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (173,24)-(173,27)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (173,13)-(173,20)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ ArrayNode (location: (173,13)-(173,20)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: newline, static_literal │ │ │ │ ├── elements: (length: 1) │ │ │ │ │ └── @ SymbolNode (location: (173,16)-(173,19)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (173,16)-(173,19) = "foo" │ │ │ │ │ ├── closing_loc: ∅ @@ -4043,6 +4472,7 @@ │ ├── case_keyword_loc: (173,0)-(173,4) = "case" │ └── end_keyword_loc: (173,33)-(173,36) = "end" ├── @ CaseMatchNode (location: (174,0)-(174,36)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (174,5)-(174,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4056,22 +4486,26 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (174,10)-(174,32)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (174,13)-(174,27)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (174,21)-(174,23) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (174,24)-(174,27)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (174,13)-(174,20)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ ArrayNode (location: (174,13)-(174,20)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: newline, static_literal │ │ │ │ ├── elements: (length: 1) │ │ │ │ │ └── @ SymbolNode (location: (174,16)-(174,19)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (174,16)-(174,19) = "foo" │ │ │ │ │ ├── closing_loc: ∅ @@ -4087,6 +4521,7 @@ │ ├── case_keyword_loc: (174,0)-(174,4) = "case" │ └── end_keyword_loc: (174,33)-(174,36) = "end" ├── @ CaseMatchNode (location: (175,0)-(175,36)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (175,5)-(175,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4100,19 +4535,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (175,10)-(175,32)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (175,13)-(175,27)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (175,21)-(175,23) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (175,24)-(175,27)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (175,13)-(175,20)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ ArrayNode (location: (175,13)-(175,20)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: newline │ │ │ │ ├── elements: (length: 1) │ │ │ │ │ └── @ StringNode (location: (175,16)-(175,19)) │ │ │ │ │ ├── flags: ∅ @@ -4131,6 +4570,7 @@ │ ├── case_keyword_loc: (175,0)-(175,4) = "case" │ └── end_keyword_loc: (175,33)-(175,36) = "end" ├── @ CaseMatchNode (location: (176,0)-(176,36)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (176,5)-(176,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4144,19 +4584,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (176,10)-(176,32)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (176,13)-(176,27)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (176,21)-(176,23) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (176,24)-(176,27)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (176,13)-(176,20)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ ArrayNode (location: (176,13)-(176,20)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: newline │ │ │ │ ├── elements: (length: 1) │ │ │ │ │ └── @ StringNode (location: (176,16)-(176,19)) │ │ │ │ │ ├── flags: ∅ @@ -4175,6 +4619,7 @@ │ ├── case_keyword_loc: (176,0)-(176,4) = "case" │ └── end_keyword_loc: (176,33)-(176,36) = "end" ├── @ CaseMatchNode (location: (177,0)-(177,36)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (177,5)-(177,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4188,19 +4633,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (177,10)-(177,32)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (177,13)-(177,27)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (177,21)-(177,23) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (177,24)-(177,27)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (177,13)-(177,20)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ StringNode (location: (177,13)-(177,20)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: newline │ │ │ │ ├── opening_loc: (177,13)-(177,16) = "%q[" │ │ │ │ ├── content_loc: (177,16)-(177,19) = "foo" │ │ │ │ ├── closing_loc: (177,19)-(177,20) = "]" @@ -4214,6 +4663,7 @@ │ ├── case_keyword_loc: (177,0)-(177,4) = "case" │ └── end_keyword_loc: (177,33)-(177,36) = "end" ├── @ CaseMatchNode (location: (178,0)-(178,36)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (178,5)-(178,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4227,19 +4677,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (178,10)-(178,32)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (178,13)-(178,27)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (178,21)-(178,23) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (178,24)-(178,27)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (178,13)-(178,20)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ StringNode (location: (178,13)-(178,20)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: newline │ │ │ │ ├── opening_loc: (178,13)-(178,16) = "%Q[" │ │ │ │ ├── content_loc: (178,16)-(178,19) = "foo" │ │ │ │ ├── closing_loc: (178,19)-(178,20) = "]" @@ -4253,6 +4707,7 @@ │ ├── case_keyword_loc: (178,0)-(178,4) = "case" │ └── end_keyword_loc: (178,33)-(178,36) = "end" ├── @ CaseMatchNode (location: (179,0)-(179,34)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (179,5)-(179,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4266,19 +4721,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (179,10)-(179,30)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (179,13)-(179,25)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (179,19)-(179,21) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (179,22)-(179,25)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (179,13)-(179,18)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ StringNode (location: (179,13)-(179,18)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: newline │ │ │ │ ├── opening_loc: (179,13)-(179,14) = "\"" │ │ │ │ ├── content_loc: (179,14)-(179,17) = "foo" │ │ │ │ ├── closing_loc: (179,17)-(179,18) = "\"" @@ -4292,6 +4751,7 @@ │ ├── case_keyword_loc: (179,0)-(179,4) = "case" │ └── end_keyword_loc: (179,31)-(179,34) = "end" ├── @ CaseMatchNode (location: (180,0)-(180,32)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (180,5)-(180,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4305,18 +4765,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (180,10)-(180,28)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (180,13)-(180,23)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (180,17)-(180,19) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (180,20)-(180,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (180,13)-(180,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ NilNode (location: (180,13)-(180,16)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── consequent: ∅ │ │ │ └── end_keyword_loc: ∅ │ │ ├── statements: ∅ @@ -4326,6 +4791,7 @@ │ ├── case_keyword_loc: (180,0)-(180,4) = "case" │ └── end_keyword_loc: (180,29)-(180,32) = "end" ├── @ CaseMatchNode (location: (181,0)-(181,33)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (181,5)-(181,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4339,18 +4805,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (181,10)-(181,29)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (181,13)-(181,24)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (181,18)-(181,20) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (181,21)-(181,24)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (181,13)-(181,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ SelfNode (location: (181,13)-(181,17)) + │ │ │ │ └── flags: newline │ │ │ ├── consequent: ∅ │ │ │ └── end_keyword_loc: ∅ │ │ ├── statements: ∅ @@ -4360,6 +4831,7 @@ │ ├── case_keyword_loc: (181,0)-(181,4) = "case" │ └── end_keyword_loc: (181,30)-(181,33) = "end" ├── @ CaseMatchNode (location: (182,0)-(182,33)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (182,5)-(182,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4373,18 +4845,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (182,10)-(182,29)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (182,13)-(182,24)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (182,18)-(182,20) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (182,21)-(182,24)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (182,13)-(182,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ TrueNode (location: (182,13)-(182,17)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── consequent: ∅ │ │ │ └── end_keyword_loc: ∅ │ │ ├── statements: ∅ @@ -4394,6 +4871,7 @@ │ ├── case_keyword_loc: (182,0)-(182,4) = "case" │ └── end_keyword_loc: (182,30)-(182,33) = "end" ├── @ CaseMatchNode (location: (183,0)-(183,34)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (183,5)-(183,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4407,18 +4885,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (183,10)-(183,30)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (183,13)-(183,25)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (183,19)-(183,21) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (183,22)-(183,25)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (183,13)-(183,18)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ FalseNode (location: (183,13)-(183,18)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── consequent: ∅ │ │ │ └── end_keyword_loc: ∅ │ │ ├── statements: ∅ @@ -4428,6 +4911,7 @@ │ ├── case_keyword_loc: (183,0)-(183,4) = "case" │ └── end_keyword_loc: (183,31)-(183,34) = "end" ├── @ CaseMatchNode (location: (184,0)-(184,37)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (184,5)-(184,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4441,19 +4925,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (184,10)-(184,33)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (184,13)-(184,28)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (184,22)-(184,24) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (184,25)-(184,28)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (184,13)-(184,21)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ SourceFileNode (location: (184,13)-(184,21)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: newline │ │ │ │ └── filepath: "patterns.txt" │ │ │ ├── consequent: ∅ │ │ │ └── end_keyword_loc: ∅ @@ -4464,6 +4952,7 @@ │ ├── case_keyword_loc: (184,0)-(184,4) = "case" │ └── end_keyword_loc: (184,34)-(184,37) = "end" ├── @ CaseMatchNode (location: (185,0)-(185,37)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (185,5)-(185,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4477,18 +4966,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (185,10)-(185,33)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (185,13)-(185,28)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (185,22)-(185,24) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (185,25)-(185,28)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (185,13)-(185,21)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ SourceLineNode (location: (185,13)-(185,21)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── consequent: ∅ │ │ │ └── end_keyword_loc: ∅ │ │ ├── statements: ∅ @@ -4498,6 +4992,7 @@ │ ├── case_keyword_loc: (185,0)-(185,4) = "case" │ └── end_keyword_loc: (185,34)-(185,37) = "end" ├── @ CaseMatchNode (location: (186,0)-(186,41)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (186,5)-(186,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4511,18 +5006,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (186,10)-(186,37)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (186,13)-(186,32)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (186,26)-(186,28) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (186,29)-(186,32)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (186,13)-(186,25)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ SourceEncodingNode (location: (186,13)-(186,25)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── consequent: ∅ │ │ │ └── end_keyword_loc: ∅ │ │ ├── statements: ∅ @@ -4532,6 +5032,7 @@ │ ├── case_keyword_loc: (186,0)-(186,4) = "case" │ └── end_keyword_loc: (186,38)-(186,41) = "end" ├── @ CaseMatchNode (location: (187,0)-(187,39)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (187,5)-(187,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -4545,18 +5046,23 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (187,10)-(187,35)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (187,13)-(187,30)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (187,24)-(187,26) = "if" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (187,27)-(187,30)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 0 │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (187,13)-(187,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ LambdaNode (location: (187,13)-(187,23)) + │ │ │ │ ├── flags: newline │ │ │ │ ├── locals: [] │ │ │ │ ├── operator_loc: (187,13)-(187,15) = "->" │ │ │ │ ├── opening_loc: (187,16)-(187,17) = "{" @@ -4564,8 +5070,10 @@ │ │ │ │ ├── parameters: ∅ │ │ │ │ └── body: │ │ │ │ @ StatementsNode (location: (187,18)-(187,21)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ LocalVariableReadNode (location: (187,18)-(187,21)) + │ │ │ │ ├── flags: newline │ │ │ │ ├── name: :bar │ │ │ │ └── depth: 1 │ │ │ ├── consequent: ∅ @@ -4577,9 +5085,11 @@ │ ├── case_keyword_loc: (187,0)-(187,4) = "case" │ └── end_keyword_loc: (187,36)-(187,39) = "end" ├── @ IfNode (location: (189,0)-(190,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (189,0)-(189,2) = "if" │ ├── predicate: │ │ @ MatchPredicateNode (location: (189,3)-(189,10)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ CallNode (location: (189,3)-(189,4)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -4593,6 +5103,7 @@ │ │ │ └── block: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (189,8)-(189,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── requireds: (length: 0) │ │ │ ├── rest: ∅ @@ -4605,6 +5116,7 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (190,0)-(190,3) = "end" ├── @ MatchRequiredNode (location: (192,0)-(194,1)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (192,0)-(192,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -4618,9 +5130,11 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (192,5)-(194,1)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (193,2)-(193,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :b │ │ │ └── depth: 0 │ │ ├── rest: ∅ @@ -4629,6 +5143,7 @@ │ │ └── closing_loc: (194,0)-(194,1) = "]" │ └── operator_loc: (192,2)-(192,4) = "=>" ├── @ MatchPredicateNode (location: (196,0)-(200,1)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (196,0)-(196,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -4642,34 +5157,41 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ HashPatternNode (location: (196,7)-(200,1)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (196,7)-(196,8)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── elements: (length: 1) │ │ │ └── @ AssocNode (location: (197,2)-(199,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (197,2)-(197,6)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (197,2)-(197,5) = "bar" │ │ │ │ ├── closing_loc: (197,5)-(197,6) = ":" │ │ │ │ └── unescaped: "bar" │ │ │ ├── value: │ │ │ │ @ HashPatternNode (location: (197,7)-(199,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: │ │ │ │ │ @ ConstantReadNode (location: (197,7)-(197,8)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── name: :B │ │ │ │ ├── elements: (length: 1) │ │ │ │ │ └── @ AssocNode (location: (198,4)-(198,12)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── key: │ │ │ │ │ │ @ SymbolNode (location: (198,4)-(198,10)) - │ │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ │ ├── value_loc: (198,4)-(198,9) = "value" │ │ │ │ │ │ ├── closing_loc: (198,9)-(198,10) = ":" │ │ │ │ │ │ └── unescaped: "value" │ │ │ │ │ ├── value: │ │ │ │ │ │ @ LocalVariableTargetNode (location: (198,11)-(198,12)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── name: :a │ │ │ │ │ │ └── depth: 0 │ │ │ │ │ └── operator_loc: ∅ @@ -4682,6 +5204,7 @@ │ │ └── closing_loc: (200,0)-(200,1) = "]" │ └── operator_loc: (196,4)-(196,6) = "in" ├── @ MatchPredicateNode (location: (202,0)-(202,17)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (202,0)-(202,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -4695,17 +5218,21 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ CapturePatternNode (location: (202,7)-(202,17)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ LocalVariableTargetNode (location: (202,7)-(202,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── target: │ │ │ @ LocalVariableTargetNode (location: (202,14)-(202,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ └── operator_loc: (202,11)-(202,13) = "=>" │ └── operator_loc: (202,4)-(202,6) = "in" ├── @ MatchRequiredNode (location: (203,0)-(203,17)) + │ ├── flags: newline │ ├── value: │ │ @ CallNode (location: (203,0)-(203,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -4719,25 +5246,32 @@ │ │ └── block: ∅ │ ├── pattern: │ │ @ CapturePatternNode (location: (203,7)-(203,17)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ LocalVariableTargetNode (location: (203,7)-(203,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── target: │ │ │ @ LocalVariableTargetNode (location: (203,14)-(203,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :baz │ │ │ └── depth: 0 │ │ └── operator_loc: (203,11)-(203,13) = "=>" │ └── operator_loc: (203,4)-(203,6) = "=>" ├── @ MultiWriteNode (location: (205,0)-(205,20)) + │ ├── flags: newline │ ├── lefts: (length: 3) │ │ ├── @ LocalVariableTargetNode (location: (205,0)-(205,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :foo │ │ │ └── depth: 0 │ │ ├── @ LocalVariableTargetNode (location: (205,5)-(205,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ └── @ LocalVariableTargetNode (location: (205,10)-(205,13)) + │ │ ├── flags: ∅ │ │ ├── name: :baz │ │ └── depth: 0 │ ├── rest: ∅ @@ -4747,18 +5281,18 @@ │ ├── operator_loc: (205,14)-(205,15) = "=" │ └── value: │ @ ArrayNode (location: (205,16)-(205,20)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (205,16)-(205,17)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (205,19)-(205,20)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: ∅ │ └── closing_loc: ∅ ├── @ CallNode (location: (206,0)-(208,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -4768,34 +5302,41 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (206,4)-(208,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (207,2)-(207,29)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ MatchRequiredNode (location: (207,2)-(207,29)) + │ │ ├── flags: newline │ │ ├── value: │ │ │ @ ArrayNode (location: (207,2)-(207,8)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 2) │ │ │ │ ├── @ IntegerNode (location: (207,3)-(207,4)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ └── @ IntegerNode (location: (207,6)-(207,7)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ ├── opening_loc: (207,2)-(207,3) = "[" │ │ │ └── closing_loc: (207,7)-(207,8) = "]" │ │ ├── pattern: │ │ │ @ CapturePatternNode (location: (207,12)-(207,29)) + │ │ │ ├── flags: ∅ │ │ │ ├── value: │ │ │ │ @ ArrayPatternNode (location: (207,12)-(207,22)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── requireds: (length: 2) │ │ │ │ │ ├── @ LocalVariableTargetNode (location: (207,13)-(207,16)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── name: :foo │ │ │ │ │ │ └── depth: 1 │ │ │ │ │ └── @ LocalVariableTargetNode (location: (207,18)-(207,21)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :bar │ │ │ │ │ └── depth: 1 │ │ │ │ ├── rest: ∅ @@ -4804,6 +5345,7 @@ │ │ │ │ └── closing_loc: (207,21)-(207,22) = "]" │ │ │ ├── target: │ │ │ │ @ LocalVariableTargetNode (location: (207,26)-(207,29)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :baz │ │ │ │ └── depth: 1 │ │ │ └── operator_loc: (207,23)-(207,25) = "=>" @@ -4811,31 +5353,39 @@ │ ├── opening_loc: (206,4)-(206,6) = "do" │ └── closing_loc: (208,0)-(208,3) = "end" ├── @ MatchRequiredNode (location: (210,0)-(210,19)) + │ ├── flags: newline │ ├── value: │ │ @ LocalVariableReadNode (location: (210,0)-(210,3)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── pattern: │ │ @ ArrayPatternNode (location: (210,7)-(210,19)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (210,7)-(210,13)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Object │ │ ├── requireds: (length: 1) │ │ │ └── @ HashPatternNode (location: (210,14)-(210,18)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── elements: (length: 1) │ │ │ │ └── @ AssocNode (location: (210,15)-(210,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (210,15)-(210,17)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (210,15)-(210,16) = "x" │ │ │ │ │ ├── closing_loc: (210,16)-(210,17) = ":" │ │ │ │ │ └── unescaped: "x" │ │ │ │ ├── value: │ │ │ │ │ @ ImplicitNode (location: (210,15)-(210,16)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── value: │ │ │ │ │ @ LocalVariableTargetNode (location: (210,15)-(210,16)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :x │ │ │ │ │ └── depth: 0 │ │ │ │ └── operator_loc: ∅ @@ -4848,10 +5398,10 @@ │ │ └── closing_loc: (210,18)-(210,19) = "]" │ └── operator_loc: (210,4)-(210,6) = "=>" ├── @ CallNode (location: (212,0)-(212,19)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IntegerNode (location: (212,0)-(212,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: (212,1)-(212,2) = "." │ ├── name: :then @@ -4861,22 +5411,28 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (212,7)-(212,19)) + │ ├── flags: ∅ │ ├── locals: [:_1] │ ├── parameters: │ │ @ NumberedParametersNode (location: (212,7)-(212,19)) + │ │ ├── flags: ∅ │ │ └── maximum: 1 │ ├── body: │ │ @ StatementsNode (location: (212,9)-(212,17)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ MatchPredicateNode (location: (212,9)-(212,17)) + │ │ ├── flags: newline │ │ ├── value: │ │ │ @ IntegerNode (location: (212,9)-(212,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── pattern: │ │ │ @ PinnedVariableNode (location: (212,14)-(212,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── variable: │ │ │ │ @ LocalVariableReadNode (location: (212,15)-(212,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :_1 │ │ │ │ └── depth: 0 │ │ │ └── operator_loc: (212,14)-(212,15) = "^" @@ -4884,11 +5440,14 @@ │ ├── opening_loc: (212,7)-(212,8) = "{" │ └── closing_loc: (212,18)-(212,19) = "}" ├── @ MultiWriteNode (location: (214,0)-(217,5)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ LocalVariableTargetNode (location: (215,2)-(215,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ └── @ LocalVariableTargetNode (location: (216,2)-(216,3)) + │ │ ├── flags: ∅ │ │ ├── name: :b │ │ └── depth: 0 │ ├── rest: ∅ @@ -4908,21 +5467,27 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CaseMatchNode (location: (219,0)-(219,25)) + │ ├── flags: newline │ ├── predicate: │ │ @ ParenthesesNode (location: (219,5)-(219,7)) + │ │ ├── flags: ∅ │ │ ├── body: ∅ │ │ ├── opening_loc: (219,5)-(219,6) = "(" │ │ └── closing_loc: (219,6)-(219,7) = ")" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (219,9)-(219,20)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (219,12)-(219,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── requireds: (length: 2) │ │ │ │ ├── @ LocalVariableTargetNode (location: (219,13)-(219,15)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :_a │ │ │ │ │ └── depth: 0 │ │ │ │ └── @ LocalVariableTargetNode (location: (219,17)-(219,19)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :_a │ │ │ │ └── depth: 0 │ │ │ ├── rest: ∅ @@ -4936,50 +5501,58 @@ │ ├── case_keyword_loc: (219,0)-(219,4) = "case" │ └── end_keyword_loc: (219,22)-(219,25) = "end" └── @ CaseMatchNode (location: (220,0)-(220,31)) + ├── flags: newline ├── predicate: │ @ ParenthesesNode (location: (220,5)-(220,7)) + │ ├── flags: ∅ │ ├── body: ∅ │ ├── opening_loc: (220,5)-(220,6) = "(" │ └── closing_loc: (220,6)-(220,7) = ")" ├── conditions: (length: 1) │ └── @ InNode (location: (220,9)-(220,26)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (220,12)-(220,26)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ HashPatternNode (location: (220,13)-(220,18)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── elements: (length: 1) │ │ │ │ │ └── @ AssocNode (location: (220,14)-(220,17)) + │ │ │ │ │ ├── flags: static_literal │ │ │ │ │ ├── key: │ │ │ │ │ │ @ SymbolNode (location: (220,14)-(220,16)) - │ │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ │ ├── value_loc: (220,14)-(220,15) = "a" │ │ │ │ │ │ ├── closing_loc: (220,15)-(220,16) = ":" │ │ │ │ │ │ └── unescaped: "a" │ │ │ │ │ ├── value: │ │ │ │ │ │ @ IntegerNode (location: (220,16)-(220,17)) - │ │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ │ └── value: 1 │ │ │ │ │ └── operator_loc: ∅ │ │ │ │ ├── rest: ∅ │ │ │ │ ├── opening_loc: (220,13)-(220,14) = "{" │ │ │ │ └── closing_loc: (220,17)-(220,18) = "}" │ │ │ └── @ HashPatternNode (location: (220,20)-(220,25)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── elements: (length: 1) │ │ │ │ └── @ AssocNode (location: (220,21)-(220,24)) + │ │ │ │ ├── flags: static_literal │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (220,21)-(220,23)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (220,21)-(220,22) = "a" │ │ │ │ │ ├── closing_loc: (220,22)-(220,23) = ":" │ │ │ │ │ └── unescaped: "a" │ │ │ │ ├── value: │ │ │ │ │ @ IntegerNode (location: (220,23)-(220,24)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 2 │ │ │ │ └── operator_loc: ∅ │ │ │ ├── rest: ∅ diff --git a/test/prism/snapshots/procs.txt b/test/prism/snapshots/procs.txt index 1329ae6a5f..a760216514 100644 --- a/test/prism/snapshots/procs.txt +++ b/test/prism/snapshots/procs.txt @@ -1,17 +1,22 @@ @ ProgramNode (location: (1,0)-(27,19)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(27,19)) + ├── flags: ∅ └── body: (length: 10) ├── @ LambdaNode (location: (1,0)-(1,21)) + │ ├── flags: newline │ ├── locals: [:a, :b, :c, :d] │ ├── operator_loc: (1,0)-(1,2) = "->" │ ├── opening_loc: (1,16)-(1,17) = "{" │ ├── closing_loc: (1,20)-(1,21) = "}" │ ├── parameters: │ │ @ BlockParametersNode (location: (1,3)-(1,15)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (1,4)-(1,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (1,4)-(1,5)) │ │ │ │ ├── flags: ∅ @@ -36,11 +41,14 @@ │ │ └── closing_loc: (1,14)-(1,15) = ")" │ └── body: │ @ StatementsNode (location: (1,18)-(1,19)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ LocalVariableReadNode (location: (1,18)-(1,19)) + │ ├── flags: newline │ ├── name: :b │ └── depth: 0 ├── @ LambdaNode (location: (3,0)-(5,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── operator_loc: (3,0)-(3,2) = "->" │ ├── opening_loc: (3,3)-(3,5) = "do" @@ -48,17 +56,20 @@ │ ├── parameters: ∅ │ └── body: │ @ BeginNode (location: (3,3)-(5,3)) + │ ├── flags: ∅ │ ├── begin_keyword_loc: ∅ │ ├── statements: ∅ │ ├── rescue_clause: ∅ │ ├── else_clause: ∅ │ ├── ensure_clause: │ │ @ EnsureNode (location: (4,0)-(5,3)) + │ │ ├── flags: ∅ │ │ ├── ensure_keyword_loc: (4,0)-(4,6) = "ensure" │ │ ├── statements: ∅ │ │ └── end_keyword_loc: (5,0)-(5,3) = "end" │ └── end_keyword_loc: (5,0)-(5,3) = "end" ├── @ LambdaNode (location: (7,0)-(11,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── operator_loc: (7,0)-(7,2) = "->" │ ├── opening_loc: (7,3)-(7,5) = "do" @@ -66,10 +77,12 @@ │ ├── parameters: ∅ │ └── body: │ @ BeginNode (location: (7,3)-(11,3)) + │ ├── flags: ∅ │ ├── begin_keyword_loc: ∅ │ ├── statements: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (8,0)-(8,6)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (8,0)-(8,6) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ @@ -78,16 +91,19 @@ │ │ └── consequent: ∅ │ ├── else_clause: │ │ @ ElseNode (location: (9,0)-(10,6)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (9,0)-(9,4) = "else" │ │ ├── statements: ∅ │ │ └── end_keyword_loc: (10,0)-(10,6) = "ensure" │ ├── ensure_clause: │ │ @ EnsureNode (location: (10,0)-(11,3)) + │ │ ├── flags: ∅ │ │ ├── ensure_keyword_loc: (10,0)-(10,6) = "ensure" │ │ ├── statements: ∅ │ │ └── end_keyword_loc: (11,0)-(11,3) = "end" │ └── end_keyword_loc: (11,0)-(11,3) = "end" ├── @ LambdaNode (location: (13,0)-(13,10)) + │ ├── flags: newline │ ├── locals: [] │ ├── operator_loc: (13,0)-(13,2) = "->" │ ├── opening_loc: (13,3)-(13,4) = "{" @@ -95,9 +111,10 @@ │ ├── parameters: ∅ │ └── body: │ @ StatementsNode (location: (13,5)-(13,8)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (13,5)-(13,8)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -107,6 +124,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ LambdaNode (location: (15,0)-(15,15)) + │ ├── flags: newline │ ├── locals: [] │ ├── operator_loc: (15,0)-(15,2) = "->" │ ├── opening_loc: (15,3)-(15,5) = "do" @@ -114,9 +132,10 @@ │ ├── parameters: ∅ │ └── body: │ @ StatementsNode (location: (15,7)-(15,10)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (15,7)-(15,10)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -126,14 +145,17 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ LambdaNode (location: (17,0)-(17,29)) + │ ├── flags: newline │ ├── locals: [:a, :b, :c, :d, :e] │ ├── operator_loc: (17,0)-(17,2) = "->" │ ├── opening_loc: (17,24)-(17,25) = "{" │ ├── closing_loc: (17,28)-(17,29) = "}" │ ├── parameters: │ │ @ BlockParametersNode (location: (17,3)-(17,23)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (17,3)-(17,23)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (17,3)-(17,4)) │ │ │ │ ├── flags: ∅ @@ -146,7 +168,7 @@ │ │ │ │ ├── operator_loc: (17,8)-(17,9) = "=" │ │ │ │ └── value: │ │ │ │ @ IntegerNode (location: (17,10)-(17,11)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── rest: ∅ │ │ │ ├── posts: (length: 0) @@ -171,19 +193,24 @@ │ │ └── closing_loc: ∅ │ └── body: │ @ StatementsNode (location: (17,26)-(17,27)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ LocalVariableReadNode (location: (17,26)-(17,27)) + │ ├── flags: newline │ ├── name: :a │ └── depth: 0 ├── @ LambdaNode (location: (19,0)-(19,40)) + │ ├── flags: newline │ ├── locals: [:a, :b, :c, :d, :e, :f, :g] │ ├── operator_loc: (19,0)-(19,2) = "->" │ ├── opening_loc: (19,35)-(19,36) = "{" │ ├── closing_loc: (19,39)-(19,40) = "}" │ ├── parameters: │ │ @ BlockParametersNode (location: (19,3)-(19,34)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (19,4)-(19,33)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (19,4)-(19,5)) │ │ │ │ ├── flags: ∅ @@ -196,7 +223,7 @@ │ │ │ │ ├── operator_loc: (19,9)-(19,10) = "=" │ │ │ │ └── value: │ │ │ │ @ IntegerNode (location: (19,11)-(19,12)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── rest: │ │ │ │ @ RestParameterNode (location: (19,14)-(19,16)) @@ -231,19 +258,24 @@ │ │ └── closing_loc: (19,33)-(19,34) = ")" │ └── body: │ @ StatementsNode (location: (19,37)-(19,38)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ LocalVariableReadNode (location: (19,37)-(19,38)) + │ ├── flags: newline │ ├── name: :a │ └── depth: 0 ├── @ LambdaNode (location: (21,0)-(23,3)) + │ ├── flags: newline │ ├── locals: [:a, :b, :c, :d, :e, :f, :g] │ ├── operator_loc: (21,0)-(21,2) = "->" │ ├── opening_loc: (21,35)-(21,37) = "do" │ ├── closing_loc: (23,0)-(23,3) = "end" │ ├── parameters: │ │ @ BlockParametersNode (location: (21,3)-(21,34)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (21,4)-(21,33)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (21,4)-(21,5)) │ │ │ │ ├── flags: ∅ @@ -256,7 +288,7 @@ │ │ │ │ ├── operator_loc: (21,9)-(21,10) = "=" │ │ │ │ └── value: │ │ │ │ @ IntegerNode (location: (21,11)-(21,12)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── rest: │ │ │ │ @ RestParameterNode (location: (21,14)-(21,16)) @@ -291,19 +323,24 @@ │ │ └── closing_loc: (21,33)-(21,34) = ")" │ └── body: │ @ StatementsNode (location: (22,2)-(22,3)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ LocalVariableReadNode (location: (22,2)-(22,3)) + │ ├── flags: newline │ ├── name: :a │ └── depth: 0 ├── @ LambdaNode (location: (25,0)-(25,25)) + │ ├── flags: newline │ ├── locals: [:a] │ ├── operator_loc: (25,0)-(25,2) = "->" │ ├── opening_loc: (25,7)-(25,8) = "{" │ ├── closing_loc: (25,24)-(25,25) = "}" │ ├── parameters: │ │ @ BlockParametersNode (location: (25,3)-(25,6)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (25,4)-(25,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (25,4)-(25,5)) │ │ │ │ ├── flags: ∅ @@ -319,16 +356,20 @@ │ │ └── closing_loc: (25,5)-(25,6) = ")" │ └── body: │ @ StatementsNode (location: (25,9)-(25,23)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ LambdaNode (location: (25,9)-(25,23)) + │ ├── flags: newline │ ├── locals: [:b] │ ├── operator_loc: (25,9)-(25,11) = "->" │ ├── opening_loc: (25,14)-(25,15) = "{" │ ├── closing_loc: (25,22)-(25,23) = "}" │ ├── parameters: │ │ @ BlockParametersNode (location: (25,12)-(25,13)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (25,12)-(25,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (25,12)-(25,13)) │ │ │ │ ├── flags: ∅ @@ -344,11 +385,13 @@ │ │ └── closing_loc: ∅ │ └── body: │ @ StatementsNode (location: (25,16)-(25,21)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (25,16)-(25,21)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (25,16)-(25,17)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 1 │ ├── call_operator_loc: ∅ @@ -360,21 +403,26 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ LocalVariableReadNode (location: (25,20)-(25,21)) + │ │ ├── flags: ∅ │ │ ├── name: :b │ │ └── depth: 0 │ ├── closing_loc: ∅ │ └── block: ∅ └── @ LambdaNode (location: (27,0)-(27,19)) + ├── flags: newline ├── locals: [:a, :b, :c] ├── operator_loc: (27,0)-(27,2) = "->" ├── opening_loc: (27,16)-(27,17) = "{" ├── closing_loc: (27,18)-(27,19) = "}" ├── parameters: │ @ BlockParametersNode (location: (27,3)-(27,15)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (27,4)-(27,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ MultiTargetNode (location: (27,4)-(27,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 2) │ │ │ │ ├── @ RequiredParameterNode (location: (27,5)-(27,6)) │ │ │ │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/range_begin_open_exclusive.txt b/test/prism/snapshots/range_begin_open_exclusive.txt index a630b01ef1..e4ca315fc2 100644 --- a/test/prism/snapshots/range_begin_open_exclusive.txt +++ b/test/prism/snapshots/range_begin_open_exclusive.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,4)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,4)) + ├── flags: ∅ └── body: (length: 1) └── @ RangeNode (location: (1,0)-(1,4)) - ├── flags: exclude_end + ├── flags: newline, static_literal, exclude_end ├── left: ∅ ├── right: │ @ IntegerNode (location: (1,3)-(1,4)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 └── operator_loc: (1,0)-(1,3) = "..." diff --git a/test/prism/snapshots/range_begin_open_inclusive.txt b/test/prism/snapshots/range_begin_open_inclusive.txt index dc8ef0d2db..45aa88a5d1 100644 --- a/test/prism/snapshots/range_begin_open_inclusive.txt +++ b/test/prism/snapshots/range_begin_open_inclusive.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,3)) + ├── flags: ∅ └── body: (length: 1) └── @ RangeNode (location: (1,0)-(1,3)) - ├── flags: ∅ + ├── flags: newline, static_literal ├── left: ∅ ├── right: │ @ IntegerNode (location: (1,2)-(1,3)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 └── operator_loc: (1,0)-(1,2) = ".." diff --git a/test/prism/snapshots/range_end_open_exclusive.txt b/test/prism/snapshots/range_end_open_exclusive.txt index 17a75f8945..d0d3f810a3 100644 --- a/test/prism/snapshots/range_end_open_exclusive.txt +++ b/test/prism/snapshots/range_end_open_exclusive.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,4)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,4)) + ├── flags: ∅ └── body: (length: 1) └── @ RangeNode (location: (1,0)-(1,4)) - ├── flags: exclude_end + ├── flags: newline, static_literal, exclude_end ├── left: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── right: ∅ └── operator_loc: (1,1)-(1,4) = "..." diff --git a/test/prism/snapshots/range_end_open_inclusive.txt b/test/prism/snapshots/range_end_open_inclusive.txt index b49272d8cd..8bfee649a3 100644 --- a/test/prism/snapshots/range_end_open_inclusive.txt +++ b/test/prism/snapshots/range_end_open_inclusive.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,3)) + ├── flags: ∅ └── body: (length: 1) └── @ RangeNode (location: (1,0)-(1,3)) - ├── flags: ∅ + ├── flags: newline, static_literal ├── left: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── right: ∅ └── operator_loc: (1,1)-(1,3) = ".." diff --git a/test/prism/snapshots/ranges.txt b/test/prism/snapshots/ranges.txt index a9688baf30..7c2175791b 100644 --- a/test/prism/snapshots/ranges.txt +++ b/test/prism/snapshots/ranges.txt @@ -1,49 +1,55 @@ @ ProgramNode (location: (1,0)-(49,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(49,7)) + ├── flags: ∅ └── body: (length: 25) ├── @ ParenthesesNode (location: (1,0)-(1,6)) + │ ├── flags: newline │ ├── body: │ │ @ StatementsNode (location: (1,1)-(1,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RangeNode (location: (1,1)-(1,5)) - │ │ ├── flags: exclude_end + │ │ ├── flags: newline, static_literal, exclude_end │ │ ├── left: ∅ │ │ ├── right: │ │ │ @ IntegerNode (location: (1,4)-(1,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: (1,1)-(1,4) = "..." │ ├── opening_loc: (1,0)-(1,1) = "(" │ └── closing_loc: (1,5)-(1,6) = ")" ├── @ ParenthesesNode (location: (3,0)-(3,5)) + │ ├── flags: newline │ ├── body: │ │ @ StatementsNode (location: (3,1)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RangeNode (location: (3,1)-(3,4)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline, static_literal │ │ ├── left: ∅ │ │ ├── right: │ │ │ @ IntegerNode (location: (3,3)-(3,4)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: (3,1)-(3,3) = ".." │ ├── opening_loc: (3,0)-(3,1) = "(" │ └── closing_loc: (3,4)-(3,5) = ")" ├── @ RangeNode (location: (5,0)-(5,5)) - │ ├── flags: exclude_end + │ ├── flags: newline, static_literal, exclude_end │ ├── left: │ │ @ IntegerNode (location: (5,0)-(5,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── right: │ │ @ IntegerNode (location: (5,4)-(5,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── operator_loc: (5,1)-(5,4) = "..." ├── @ CallNode (location: (7,0)-(7,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (7,0)-(7,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -64,22 +70,24 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ RangeNode (location: (7,4)-(7,8)) - │ │ ├── flags: exclude_end + │ │ ├── flags: static_literal, exclude_end │ │ ├── left: ∅ │ │ ├── right: │ │ │ @ IntegerNode (location: (7,7)-(7,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: (7,4)-(7,7) = "..." │ ├── closing_loc: (7,8)-(7,9) = "]" │ └── block: ∅ ├── @ HashNode (location: (9,0)-(9,15)) + │ ├── flags: newline │ ├── opening_loc: (9,0)-(9,1) = "{" │ ├── elements: (length: 1) │ │ └── @ AssocNode (location: (9,2)-(9,13)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (9,2)-(9,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (9,2)-(9,5) = "foo" │ │ │ ├── closing_loc: (9,5)-(9,6) = ":" @@ -103,37 +111,41 @@ │ │ └── operator_loc: ∅ │ └── closing_loc: (9,14)-(9,15) = "}" ├── @ ParenthesesNode (location: (11,0)-(11,6)) + │ ├── flags: newline │ ├── body: │ │ @ StatementsNode (location: (11,1)-(11,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RangeNode (location: (11,1)-(11,5)) - │ │ ├── flags: exclude_end + │ │ ├── flags: newline, static_literal, exclude_end │ │ ├── left: │ │ │ @ IntegerNode (location: (11,1)-(11,2)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (11,2)-(11,5) = "..." │ ├── opening_loc: (11,0)-(11,1) = "(" │ └── closing_loc: (11,5)-(11,6) = ")" ├── @ RangeNode (location: (13,0)-(13,4)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── left: │ │ @ IntegerNode (location: (13,0)-(13,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── right: │ │ @ IntegerNode (location: (13,3)-(13,4)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── operator_loc: (13,1)-(13,3) = ".." ├── @ HashNode (location: (15,0)-(15,14)) + │ ├── flags: newline │ ├── opening_loc: (15,0)-(15,1) = "{" │ ├── elements: (length: 1) │ │ └── @ AssocNode (location: (15,2)-(15,12)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (15,2)-(15,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (15,2)-(15,5) = "foo" │ │ │ ├── closing_loc: (15,5)-(15,6) = ":" @@ -157,58 +169,61 @@ │ │ └── operator_loc: ∅ │ └── closing_loc: (15,13)-(15,14) = "}" ├── @ ParenthesesNode (location: (17,0)-(17,5)) + │ ├── flags: newline │ ├── body: │ │ @ StatementsNode (location: (17,1)-(17,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RangeNode (location: (17,1)-(17,4)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline, static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (17,1)-(17,2)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (17,2)-(17,4) = ".." │ ├── opening_loc: (17,0)-(17,1) = "(" │ └── closing_loc: (17,4)-(17,5) = ")" ├── @ RangeNode (location: (19,0)-(19,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── left: │ │ @ IntegerNode (location: (19,0)-(19,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── right: │ │ @ RangeNode (location: (19,5)-(19,8)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: ∅ │ │ ├── right: │ │ │ @ IntegerNode (location: (19,7)-(19,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── operator_loc: (19,5)-(19,7) = ".." │ └── operator_loc: (19,2)-(19,4) = ".." ├── @ AndNode (location: (21,0)-(21,8)) + │ ├── flags: newline │ ├── left: │ │ @ RangeNode (location: (21,0)-(21,3)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (21,0)-(21,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (21,1)-(21,3) = ".." │ ├── right: │ │ @ IntegerNode (location: (21,7)-(21,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── operator_loc: (21,4)-(21,6) = "&&" ├── @ CallNode (location: (23,0)-(23,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RangeNode (location: (23,0)-(23,3)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (23,0)-(23,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (23,1)-(23,3) = ".." @@ -221,18 +236,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (23,7)-(23,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (25,0)-(25,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RangeNode (location: (25,0)-(25,3)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (25,0)-(25,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (25,1)-(25,3) = ".." @@ -245,18 +260,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (25,7)-(25,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (27,0)-(27,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RangeNode (location: (27,0)-(27,3)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (27,0)-(27,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (27,1)-(27,3) = ".." @@ -269,18 +284,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (27,8)-(27,9)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (29,0)-(29,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RangeNode (location: (29,0)-(29,3)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (29,0)-(29,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (29,1)-(29,3) = ".." @@ -293,18 +308,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (29,8)-(29,9)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (31,0)-(31,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RangeNode (location: (31,0)-(31,3)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (31,0)-(31,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (31,1)-(31,3) = ".." @@ -317,18 +332,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (31,7)-(31,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (33,0)-(33,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RangeNode (location: (33,0)-(33,3)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (33,0)-(33,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (33,1)-(33,3) = ".." @@ -341,18 +356,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (33,7)-(33,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (35,0)-(35,7)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: │ │ @ RangeNode (location: (35,0)-(35,3)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (35,0)-(35,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (35,1)-(35,3) = ".." @@ -365,18 +380,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (35,6)-(35,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (37,0)-(37,7)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: │ │ @ RangeNode (location: (37,0)-(37,3)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (37,0)-(37,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (37,1)-(37,3) = ".." @@ -389,18 +404,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (37,6)-(37,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (39,0)-(39,8)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: │ │ @ RangeNode (location: (39,0)-(39,3)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (39,0)-(39,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (39,1)-(39,3) = ".." @@ -413,18 +428,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (39,7)-(39,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (41,0)-(41,8)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: │ │ @ RangeNode (location: (41,0)-(41,3)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (41,0)-(41,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (41,1)-(41,3) = ".." @@ -437,18 +452,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (41,7)-(41,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (43,0)-(43,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RangeNode (location: (43,0)-(43,3)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (43,0)-(43,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (43,1)-(43,3) = ".." @@ -461,18 +476,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (43,7)-(43,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (45,0)-(45,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RangeNode (location: (45,0)-(45,3)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (45,0)-(45,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (45,1)-(45,3) = ".." @@ -485,22 +500,22 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (45,7)-(45,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ RangeNode (location: (47,0)-(47,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── left: │ │ @ IntegerNode (location: (47,0)-(47,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── right: │ │ @ CallNode (location: (47,4)-(47,7)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ IntegerNode (location: (47,6)-(47,7)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── call_operator_loc: ∅ │ │ ├── name: :+@ @@ -511,17 +526,17 @@ │ │ └── block: ∅ │ └── operator_loc: (47,1)-(47,3) = ".." └── @ RangeNode (location: (49,0)-(49,7)) - ├── flags: ∅ + ├── flags: newline ├── left: │ @ IntegerNode (location: (49,0)-(49,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── right: │ @ CallNode (location: (49,4)-(49,7)) │ ├── flags: ∅ │ ├── receiver: │ │ @ IntegerNode (location: (49,6)-(49,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── call_operator_loc: ∅ │ ├── name: :-@ diff --git a/test/prism/snapshots/regex.txt b/test/prism/snapshots/regex.txt index d4d153e8d5..2f4b986d97 100644 --- a/test/prism/snapshots/regex.txt +++ b/test/prism/snapshots/regex.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(46,32)) +├── flags: ∅ ├── locals: [:foo, :ab, :abc, :a] └── statements: @ StatementsNode (location: (1,0)-(46,32)) + ├── flags: ∅ └── body: (length: 25) ├── @ CallNode (location: (1,0)-(1,9)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -15,7 +17,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ RegularExpressionNode (location: (1,4)-(1,9)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,4)-(1,5) = "/" │ │ ├── content_loc: (1,5)-(1,8) = "bar" │ │ ├── closing_loc: (1,8)-(1,9) = "/" @@ -23,47 +25,51 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ RegularExpressionNode (location: (3,0)-(3,8)) - │ ├── flags: ignore_case, forced_us_ascii_encoding + │ ├── flags: newline, static_literal, ignore_case, forced_us_ascii_encoding │ ├── opening_loc: (3,0)-(3,3) = "%r{" │ ├── content_loc: (3,3)-(3,6) = "abc" │ ├── closing_loc: (3,6)-(3,8) = "}i" │ └── unescaped: "abc" ├── @ RegularExpressionNode (location: (5,0)-(5,5)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (5,0)-(5,1) = "/" │ ├── content_loc: (5,1)-(5,4) = "a\\b" │ ├── closing_loc: (5,4)-(5,5) = "/" │ └── unescaped: "a\\b" ├── @ InterpolatedRegularExpressionNode (location: (7,0)-(7,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (7,0)-(7,1) = "/" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (7,1)-(7,5)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (7,1)-(7,5) = "aaa " │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "aaa " │ │ └── @ EmbeddedVariableNode (location: (7,5)-(7,10)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (7,5)-(7,6) = "#" │ │ └── variable: │ │ @ GlobalVariableReadNode (location: (7,6)-(7,10)) + │ │ ├── flags: ∅ │ │ └── name: :$bbb │ └── closing_loc: (7,10)-(7,11) = "/" ├── @ InterpolatedRegularExpressionNode (location: (9,0)-(9,16)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (9,0)-(9,1) = "/" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (9,1)-(9,5)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (9,1)-(9,5) = "aaa " │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "aaa " │ │ ├── @ EmbeddedStatementsNode (location: (9,5)-(9,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (9,5)-(9,7) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (9,7)-(9,10)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (9,7)-(9,10)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -77,22 +83,23 @@ │ │ │ │ └── block: ∅ │ │ │ └── closing_loc: (9,10)-(9,11) = "}" │ │ └── @ StringNode (location: (9,11)-(9,15)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (9,11)-(9,15) = " ccc" │ │ ├── closing_loc: ∅ │ │ └── unescaped: " ccc" │ └── closing_loc: (9,15)-(9,16) = "/" ├── @ ArrayNode (location: (11,0)-(11,27)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 2) │ │ ├── @ MatchWriteNode (location: (11,1)-(11,21)) + │ │ │ ├── flags: ∅ │ │ │ ├── call: │ │ │ │ @ CallNode (location: (11,1)-(11,21)) │ │ │ │ ├── flags: ∅ │ │ │ │ ├── receiver: │ │ │ │ │ @ RegularExpressionNode (location: (11,1)-(11,14)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: (11,1)-(11,2) = "/" │ │ │ │ │ ├── content_loc: (11,2)-(11,13) = "(?bar)" │ │ │ │ │ ├── closing_loc: (11,13)-(11,14) = "/" @@ -119,48 +126,50 @@ │ │ │ │ └── block: ∅ │ │ │ └── targets: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (11,5)-(11,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :foo │ │ │ └── depth: 0 │ │ └── @ LocalVariableReadNode (location: (11,23)-(11,26)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── opening_loc: (11,0)-(11,1) = "[" │ └── closing_loc: (11,26)-(11,27) = "]" ├── @ RegularExpressionNode (location: (13,0)-(13,6)) - │ ├── flags: ignore_case, forced_us_ascii_encoding + │ ├── flags: newline, static_literal, ignore_case, forced_us_ascii_encoding │ ├── opening_loc: (13,0)-(13,1) = "/" │ ├── content_loc: (13,1)-(13,4) = "abc" │ ├── closing_loc: (13,4)-(13,6) = "/i" │ └── unescaped: "abc" ├── @ RegularExpressionNode (location: (15,0)-(15,26)) - │ ├── flags: ignore_case, forced_us_ascii_encoding + │ ├── flags: newline, static_literal, ignore_case, forced_us_ascii_encoding │ ├── opening_loc: (15,0)-(15,3) = "%r/" │ ├── content_loc: (15,3)-(15,24) = "[a-z$._?][\\w$.?\#@~]*:" │ ├── closing_loc: (15,24)-(15,26) = "/i" │ └── unescaped: "[a-z$._?][\\w$.?\#@~]*:" ├── @ RegularExpressionNode (location: (17,0)-(17,37)) - │ ├── flags: ignore_case, forced_us_ascii_encoding + │ ├── flags: newline, static_literal, ignore_case, forced_us_ascii_encoding │ ├── opening_loc: (17,0)-(17,3) = "%r/" │ ├── content_loc: (17,3)-(17,35) = "([a-z$._?][\\w$.?\#@~]*)(\\s+)(equ)" │ ├── closing_loc: (17,35)-(17,37) = "/i" │ └── unescaped: "([a-z$._?][\\w$.?\#@~]*)(\\s+)(equ)" ├── @ RegularExpressionNode (location: (19,0)-(19,25)) - │ ├── flags: ignore_case, forced_us_ascii_encoding + │ ├── flags: newline, static_literal, ignore_case, forced_us_ascii_encoding │ ├── opening_loc: (19,0)-(19,3) = "%r/" │ ├── content_loc: (19,3)-(19,23) = "[a-z$._?][\\w$.?\#@~]*" │ ├── closing_loc: (19,23)-(19,25) = "/i" │ └── unescaped: "[a-z$._?][\\w$.?\#@~]*" ├── @ RegularExpressionNode (location: (21,0)-(24,1)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (21,0)-(21,3) = "%r(" │ ├── content_loc: (21,3)-(24,0) = "\n(?:[\#$%_']|\\(\\)|\\(,\\)|\\[\\]|[0-9])*\n (?:[\#$%_']+)\n" │ ├── closing_loc: (24,0)-(24,1) = ")" │ └── unescaped: "\n(?:[\#$%_']|\\(\\)|\\(,\\)|\\[\\]|[0-9])*\n (?:[\#$%_']+)\n" ├── @ CallNode (location: (26,0)-(26,16)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RegularExpressionNode (location: (26,0)-(26,8)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (26,0)-(26,1) = "/" │ │ ├── content_loc: (26,1)-(26,7) = "(?#\\))" │ │ ├── closing_loc: (26,7)-(26,8) = "/" @@ -182,25 +191,27 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ RegularExpressionNode (location: (28,0)-(28,9)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (28,0)-(28,3) = "%r#" │ ├── content_loc: (28,3)-(28,8) = "pound" │ ├── closing_loc: (28,8)-(28,9) = "#" │ └── unescaped: "pound" ├── @ InterpolatedRegularExpressionNode (location: (30,0)-(30,13)) - │ ├── flags: once + │ ├── flags: newline, once │ ├── opening_loc: (30,0)-(30,1) = "/" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (30,1)-(30,5)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (30,1)-(30,5) = "aaa " │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "aaa " │ │ └── @ EmbeddedStatementsNode (location: (30,5)-(30,11)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (30,5)-(30,7) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (30,7)-(30,10)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (30,7)-(30,10)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -215,12 +226,13 @@ │ │ └── closing_loc: (30,10)-(30,11) = "}" │ └── closing_loc: (30,11)-(30,13) = "/o" ├── @ MatchWriteNode (location: (32,0)-(33,10)) + │ ├── flags: newline │ ├── call: │ │ @ CallNode (location: (32,0)-(33,10)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ RegularExpressionNode (location: (32,0)-(33,4)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (32,0)-(32,1) = "/" │ │ │ ├── content_loc: (32,1)-(33,3) = "(?)" │ │ │ ├── closing_loc: (33,3)-(33,4) = "/" @@ -243,18 +255,21 @@ │ │ └── block: ∅ │ └── targets: (length: 1) │ └── @ LocalVariableTargetNode (location: (32,0)-(33,4)) + │ ├── flags: ∅ │ ├── name: :ab │ └── depth: 0 ├── @ LocalVariableReadNode (location: (33,12)-(33,14)) + │ ├── flags: newline │ ├── name: :ab │ └── depth: 0 ├── @ MatchWriteNode (location: (35,0)-(35,24)) + │ ├── flags: newline │ ├── call: │ │ @ CallNode (location: (35,0)-(35,24)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ RegularExpressionNode (location: (35,0)-(35,18)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (35,0)-(35,1) = "/" │ │ │ ├── content_loc: (35,1)-(35,17) = "(?)(?)" │ │ │ ├── closing_loc: (35,17)-(35,18) = "/" @@ -277,16 +292,18 @@ │ │ └── block: ∅ │ └── targets: (length: 1) │ └── @ LocalVariableTargetNode (location: (35,4)-(35,7)) + │ ├── flags: ∅ │ ├── name: :abc │ └── depth: 0 ├── @ LocalVariableReadNode (location: (35,26)-(35,29)) + │ ├── flags: newline │ ├── name: :abc │ └── depth: 0 ├── @ CallNode (location: (37,0)-(37,16)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RegularExpressionNode (location: (37,0)-(37,10)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (37,0)-(37,1) = "/" │ │ ├── content_loc: (37,1)-(37,9) = "(?)" │ │ ├── closing_loc: (37,9)-(37,10) = "/" @@ -308,16 +325,17 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ LocalVariableWriteNode (location: (39,0)-(39,5)) + │ ├── flags: newline │ ├── name: :a │ ├── depth: 0 │ ├── name_loc: (39,0)-(39,1) = "a" │ ├── value: │ │ @ IntegerNode (location: (39,4)-(39,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (39,2)-(39,3) = "=" ├── @ CallNode (location: (40,0)-(40,24)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -327,18 +345,21 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (40,4)-(40,24)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (40,6)-(40,22)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ MatchWriteNode (location: (40,6)-(40,22)) + │ │ ├── flags: newline │ │ ├── call: │ │ │ @ CallNode (location: (40,6)-(40,22)) │ │ │ ├── flags: ∅ │ │ │ ├── receiver: │ │ │ │ @ RegularExpressionNode (location: (40,6)-(40,14)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (40,6)-(40,7) = "/" │ │ │ │ ├── content_loc: (40,7)-(40,13) = "(?)" │ │ │ │ ├── closing_loc: (40,13)-(40,14) = "/" @@ -365,17 +386,19 @@ │ │ │ └── block: ∅ │ │ └── targets: (length: 1) │ │ └── @ LocalVariableTargetNode (location: (40,10)-(40,11)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 1 │ ├── opening_loc: (40,4)-(40,5) = "{" │ └── closing_loc: (40,23)-(40,24) = "}" ├── @ MatchWriteNode (location: (42,0)-(42,16)) + │ ├── flags: newline │ ├── call: │ │ @ CallNode (location: (42,0)-(42,16)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ RegularExpressionNode (location: (42,0)-(42,10)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (42,0)-(42,1) = "/" │ │ │ ├── content_loc: (42,1)-(42,9) = "(?)" │ │ │ ├── closing_loc: (42,9)-(42,10) = "/" @@ -398,13 +421,14 @@ │ │ └── block: ∅ │ └── targets: (length: 1) │ └── @ LocalVariableTargetNode (location: (42,4)-(42,7)) + │ ├── flags: ∅ │ ├── name: :foo │ └── depth: 0 ├── @ CallNode (location: (43,0)-(43,16)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RegularExpressionNode (location: (43,0)-(43,10)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (43,0)-(43,1) = "/" │ │ ├── content_loc: (43,1)-(43,9) = "(?)" │ │ ├── closing_loc: (43,9)-(43,10) = "/" @@ -426,10 +450,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (45,0)-(45,16)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RegularExpressionNode (location: (45,0)-(45,10)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (45,0)-(45,1) = "/" │ │ ├── content_loc: (45,1)-(45,9) = "(?)" │ │ ├── closing_loc: (45,9)-(45,10) = "/" @@ -451,11 +475,13 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ DefNode (location: (46,0)-(46,32)) + ├── flags: newline ├── name: :foo ├── name_loc: (46,4)-(46,7) = "foo" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (46,8)-(46,12)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -469,14 +495,16 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (46,16)-(46,32)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ MatchWriteNode (location: (46,16)-(46,32)) + │ ├── flags: newline │ ├── call: │ │ @ CallNode (location: (46,16)-(46,32)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ RegularExpressionNode (location: (46,16)-(46,26)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (46,16)-(46,17) = "/" │ │ │ ├── content_loc: (46,17)-(46,25) = "(?)" │ │ │ ├── closing_loc: (46,25)-(46,26) = "/" @@ -499,6 +527,7 @@ │ │ └── block: ∅ │ └── targets: (length: 1) │ └── @ LocalVariableTargetNode (location: (46,20)-(46,23)) + │ ├── flags: ∅ │ ├── name: :nil │ └── depth: 0 ├── locals: [:nil] diff --git a/test/prism/snapshots/regex_char_width.txt b/test/prism/snapshots/regex_char_width.txt index 6bf2169b2f..664e4e8850 100644 --- a/test/prism/snapshots/regex_char_width.txt +++ b/test/prism/snapshots/regex_char_width.txt @@ -1,15 +1,18 @@ @ ProgramNode (location: (2,0)-(3,6)) +├── flags: ∅ ├── locals: [:a, :b] └── statements: @ StatementsNode (location: (2,0)-(3,6)) + ├── flags: ∅ └── body: (length: 2) ├── @ MatchWriteNode (location: (2,0)-(2,36)) + │ ├── flags: newline │ ├── call: │ │ @ CallNode (location: (2,0)-(2,36)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ RegularExpressionNode (location: (2,0)-(2,22)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── opening_loc: (2,0)-(2,1) = "/" │ │ │ ├── content_loc: (2,1)-(2,21) = "\x{E285}\xA7(?.)\x{E285}\xA9(?.)" │ │ │ ├── closing_loc: (2,21)-(2,22) = "/" @@ -32,18 +35,22 @@ │ │ └── block: ∅ │ └── targets: (length: 2) │ ├── @ LocalVariableTargetNode (location: (2,7)-(2,8)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ └── @ LocalVariableTargetNode (location: (2,17)-(2,18)) + │ ├── flags: ∅ │ ├── name: :b │ └── depth: 0 └── @ ArrayNode (location: (3,0)-(3,6)) - ├── flags: ∅ + ├── flags: newline ├── elements: (length: 2) │ ├── @ LocalVariableReadNode (location: (3,1)-(3,2)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ └── @ LocalVariableReadNode (location: (3,4)-(3,5)) + │ ├── flags: ∅ │ ├── name: :b │ └── depth: 0 ├── opening_loc: (3,0)-(3,1) = "[" diff --git a/test/prism/snapshots/repeat_parameters.txt b/test/prism/snapshots/repeat_parameters.txt index fd98294ce6..1dbf120e9c 100644 --- a/test/prism/snapshots/repeat_parameters.txt +++ b/test/prism/snapshots/repeat_parameters.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(38,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(38,3)) + ├── flags: ∅ └── body: (length: 13) ├── @ DefNode (location: (1,0)-(2,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (1,4)-(1,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,8)-(1,12)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ RequiredParameterNode (location: (1,8)-(1,9)) │ │ │ │ ├── flags: ∅ @@ -31,11 +35,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (2,0)-(2,3) = "end" ├── @ DefNode (location: (4,0)-(5,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (4,4)-(4,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (4,8)-(4,15)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 3) │ │ │ ├── @ RequiredParameterNode (location: (4,8)-(4,9)) │ │ │ │ ├── flags: ∅ @@ -61,11 +67,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (5,0)-(5,3) = "end" ├── @ DefNode (location: (7,0)-(8,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (7,4)-(7,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (7,8)-(7,19)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 4) │ │ │ ├── @ RequiredParameterNode (location: (7,8)-(7,9)) │ │ │ │ ├── flags: ∅ @@ -94,11 +102,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (8,0)-(8,3) = "end" ├── @ DefNode (location: (10,0)-(11,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (10,4)-(10,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (10,8)-(10,23)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 5) │ │ │ ├── @ RequiredParameterNode (location: (10,8)-(10,9)) │ │ │ │ ├── flags: ∅ @@ -130,22 +140,26 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (11,0)-(11,3) = "end" ├── @ DefNode (location: (13,0)-(14,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (13,4)-(13,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (13,8)-(13,35)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 3) │ │ │ ├── @ RequiredParameterNode (location: (13,8)-(13,9)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :a │ │ │ ├── @ MultiTargetNode (location: (13,11)-(13,22)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── lefts: (length: 1) │ │ │ │ │ └── @ RequiredParameterNode (location: (13,12)-(13,13)) │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── name: :b │ │ │ │ ├── rest: │ │ │ │ │ @ SplatNode (location: (13,15)-(13,18)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── operator_loc: (13,15)-(13,16) = "*" │ │ │ │ │ └── expression: │ │ │ │ │ @ RequiredParameterNode (location: (13,16)-(13,18)) @@ -158,12 +172,14 @@ │ │ │ │ ├── lparen_loc: (13,11)-(13,12) = "(" │ │ │ │ └── rparen_loc: (13,21)-(13,22) = ")" │ │ │ └── @ MultiTargetNode (location: (13,24)-(13,35)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (13,25)-(13,26)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :e │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (13,28)-(13,31)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (13,28)-(13,29) = "*" │ │ │ │ └── expression: │ │ │ │ @ RequiredParameterNode (location: (13,29)-(13,31)) @@ -190,11 +206,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (14,0)-(14,3) = "end" ├── @ DefNode (location: (16,0)-(17,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (16,4)-(16,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (16,8)-(16,20)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 4) │ │ │ ├── @ RequiredParameterNode (location: (16,8)-(16,10)) │ │ │ │ ├── flags: ∅ @@ -223,19 +241,23 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (17,0)-(17,3) = "end" ├── @ DefNode (location: (19,0)-(20,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (19,4)-(19,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (19,8)-(19,32)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ MultiTargetNode (location: (19,8)-(19,19)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── lefts: (length: 1) │ │ │ │ │ └── @ RequiredParameterNode (location: (19,9)-(19,10)) │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── name: :a │ │ │ │ ├── rest: │ │ │ │ │ @ SplatNode (location: (19,12)-(19,15)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── operator_loc: (19,12)-(19,13) = "*" │ │ │ │ │ └── expression: │ │ │ │ │ @ RequiredParameterNode (location: (19,13)-(19,15)) @@ -248,12 +270,14 @@ │ │ │ │ ├── lparen_loc: (19,8)-(19,9) = "(" │ │ │ │ └── rparen_loc: (19,18)-(19,19) = ")" │ │ │ └── @ MultiTargetNode (location: (19,21)-(19,32)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (19,22)-(19,23)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :d │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (19,25)-(19,28)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (19,25)-(19,26) = "*" │ │ │ │ └── expression: │ │ │ │ @ RequiredParameterNode (location: (19,26)-(19,28)) @@ -280,11 +304,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (20,0)-(20,3) = "end" ├── @ DefNode (location: (22,0)-(23,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (22,4)-(22,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (22,8)-(22,22)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 2) │ │ │ ├── @ OptionalParameterNode (location: (22,8)-(22,14)) @@ -294,7 +320,7 @@ │ │ │ │ ├── operator_loc: (22,11)-(22,12) = "=" │ │ │ │ └── value: │ │ │ │ @ IntegerNode (location: (22,13)-(22,14)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── @ OptionalParameterNode (location: (22,16)-(22,22)) │ │ │ ├── flags: repeated_parameter @@ -303,7 +329,7 @@ │ │ │ ├── operator_loc: (22,19)-(22,20) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (22,21)-(22,22)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) @@ -319,11 +345,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (23,0)-(23,3) = "end" ├── @ DefNode (location: (25,0)-(26,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (25,4)-(25,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (25,8)-(25,16)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -348,11 +376,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (26,0)-(26,3) = "end" ├── @ DefNode (location: (28,0)-(29,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (28,4)-(28,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (28,8)-(28,20)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -364,7 +394,7 @@ │ │ │ │ ├── name_loc: (28,8)-(28,11) = "_a:" │ │ │ │ └── value: │ │ │ │ @ IntegerNode (location: (28,12)-(28,13)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── @ OptionalKeywordParameterNode (location: (28,15)-(28,20)) │ │ │ ├── flags: repeated_parameter @@ -372,7 +402,7 @@ │ │ │ ├── name_loc: (28,15)-(28,18) = "_a:" │ │ │ └── value: │ │ │ @ IntegerNode (location: (28,19)-(28,20)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── keyword_rest: ∅ │ │ └── block: ∅ @@ -385,11 +415,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (29,0)-(29,3) = "end" ├── @ DefNode (location: (31,0)-(32,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (31,4)-(31,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (31,8)-(31,16)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (31,8)-(31,10)) │ │ │ ├── flags: ∅ @@ -414,11 +446,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (32,0)-(32,3) = "end" ├── @ DefNode (location: (34,0)-(35,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (34,4)-(34,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (34,8)-(34,15)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (34,8)-(34,10)) │ │ │ ├── flags: ∅ @@ -443,11 +477,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (35,0)-(35,3) = "end" └── @ DefNode (location: (37,0)-(38,3)) + ├── flags: newline ├── name: :foo ├── name_loc: (37,4)-(37,7) = "foo" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (37,8)-(37,15)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (37,8)-(37,10)) │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/rescue.txt b/test/prism/snapshots/rescue.txt index 390b08ae0e..53a49fbb47 100644 --- a/test/prism/snapshots/rescue.txt +++ b/test/prism/snapshots/rescue.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(35,18)) +├── flags: ∅ ├── locals: [:a, :z] └── statements: @ StatementsNode (location: (1,0)-(35,18)) + ├── flags: ∅ └── body: (length: 14) ├── @ RescueModifierNode (location: (1,0)-(1,14)) + │ ├── flags: newline │ ├── expression: │ │ @ CallNode (location: (1,0)-(1,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -18,7 +21,9 @@ │ ├── keyword_loc: (1,4)-(1,10) = "rescue" │ └── rescue_expression: │ @ NilNode (location: (1,11)-(1,14)) + │ └── flags: static_literal ├── @ RescueModifierNode (location: (3,0)-(4,3)) + │ ├── flags: newline │ ├── expression: │ │ @ CallNode (location: (3,0)-(3,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -33,8 +38,9 @@ │ ├── keyword_loc: (3,4)-(3,10) = "rescue" │ └── rescue_expression: │ @ NilNode (location: (4,0)-(4,3)) + │ └── flags: static_literal ├── @ CallNode (location: (6,0)-(6,24)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -44,23 +50,28 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (6,4)-(6,24)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (6,6)-(6,22)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RescueModifierNode (location: (6,6)-(6,22)) + │ │ ├── flags: newline │ │ ├── expression: │ │ │ @ BreakNode (location: (6,6)-(6,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── arguments: ∅ │ │ │ └── keyword_loc: (6,6)-(6,11) = "break" │ │ ├── keyword_loc: (6,12)-(6,18) = "rescue" │ │ └── rescue_expression: │ │ @ NilNode (location: (6,19)-(6,22)) + │ │ └── flags: static_literal │ ├── opening_loc: (6,4)-(6,5) = "{" │ └── closing_loc: (6,23)-(6,24) = "}" ├── @ CallNode (location: (8,0)-(8,23)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -70,22 +81,28 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (8,4)-(8,23)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (8,6)-(8,21)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RescueModifierNode (location: (8,6)-(8,21)) + │ │ ├── flags: newline │ │ ├── expression: │ │ │ @ NextNode (location: (8,6)-(8,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── arguments: ∅ │ │ │ └── keyword_loc: (8,6)-(8,10) = "next" │ │ ├── keyword_loc: (8,11)-(8,17) = "rescue" │ │ └── rescue_expression: │ │ @ NilNode (location: (8,18)-(8,21)) + │ │ └── flags: static_literal │ ├── opening_loc: (8,4)-(8,5) = "{" │ └── closing_loc: (8,22)-(8,23) = "}" ├── @ RescueModifierNode (location: (10,0)-(10,17)) + │ ├── flags: newline │ ├── expression: │ │ @ ReturnNode (location: (10,0)-(10,6)) │ │ ├── flags: ∅ @@ -94,7 +111,9 @@ │ ├── keyword_loc: (10,7)-(10,13) = "rescue" │ └── rescue_expression: │ @ NilNode (location: (10,14)-(10,17)) + │ └── flags: static_literal ├── @ RescueModifierNode (location: (12,0)-(12,19)) + │ ├── flags: newline │ ├── expression: │ │ @ CallNode (location: (12,0)-(12,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -109,14 +128,17 @@ │ ├── keyword_loc: (12,4)-(12,10) = "rescue" │ └── rescue_expression: │ @ OrNode (location: (12,11)-(12,19)) + │ ├── flags: ∅ │ ├── left: │ │ @ NilNode (location: (12,11)-(12,14)) + │ │ └── flags: static_literal │ ├── right: │ │ @ IntegerNode (location: (12,18)-(12,19)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (12,15)-(12,17) = "||" ├── @ RescueModifierNode (location: (14,0)-(14,22)) + │ ├── flags: newline │ ├── expression: │ │ @ CallNode (location: (14,0)-(14,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -131,34 +153,41 @@ │ ├── keyword_loc: (14,4)-(14,10) = "rescue" │ └── rescue_expression: │ @ IfNode (location: (14,11)-(14,22)) + │ ├── flags: newline │ ├── if_keyword_loc: ∅ │ ├── predicate: │ │ @ NilNode (location: (14,11)-(14,14)) + │ │ └── flags: static_literal │ ├── then_keyword_loc: (14,15)-(14,16) = "?" │ ├── statements: │ │ @ StatementsNode (location: (14,17)-(14,18)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (14,17)-(14,18)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 1 │ ├── consequent: │ │ @ ElseNode (location: (14,19)-(14,22)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (14,19)-(14,20) = ":" │ │ ├── statements: │ │ │ @ StatementsNode (location: (14,21)-(14,22)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ IntegerNode (location: (14,21)-(14,22)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: newline, static_literal, decimal │ │ │ └── value: 2 │ │ └── end_keyword_loc: ∅ │ └── end_keyword_loc: ∅ ├── @ BeginNode (location: (16,0)-(16,24)) + │ ├── flags: newline │ ├── begin_keyword_loc: (16,0)-(16,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (16,7)-(16,8)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (16,7)-(16,8)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -169,9 +198,11 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (16,10)-(16,19)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (16,10)-(16,16) = "rescue" │ │ ├── exceptions: (length: 1) │ │ │ └── @ SplatNode (location: (16,17)-(16,19)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (16,17)-(16,18) = "*" │ │ │ └── expression: │ │ │ @ CallNode (location: (16,18)-(16,19)) @@ -192,7 +223,7 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (16,21)-(16,24) = "end" ├── @ CallNode (location: (18,0)-(20,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -202,11 +233,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (18,4)-(20,3)) + │ ├── flags: ∅ │ ├── locals: [:x] │ ├── parameters: │ │ @ BlockParametersNode (location: (18,7)-(18,10)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (18,8)-(18,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (18,8)-(18,9)) │ │ │ │ ├── flags: ∅ @@ -222,8 +256,10 @@ │ │ └── closing_loc: (18,9)-(18,10) = "|" │ ├── body: │ │ @ StatementsNode (location: (19,2)-(19,40)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RescueModifierNode (location: (19,2)-(19,40)) + │ │ ├── flags: newline │ │ ├── expression: │ │ │ @ CallNode (location: (19,2)-(19,8)) │ │ │ ├── flags: ignore_visibility @@ -285,14 +321,17 @@ │ ├── opening_loc: (18,4)-(18,6) = "do" │ └── closing_loc: (20,0)-(20,3) = "end" ├── @ IfNode (location: (22,0)-(24,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (22,0)-(22,2) = "if" │ ├── predicate: │ │ @ LocalVariableWriteNode (location: (22,3)-(22,21)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ ├── depth: 0 │ │ ├── name_loc: (22,3)-(22,4) = "a" │ │ ├── value: │ │ │ @ RescueModifierNode (location: (22,7)-(22,21)) + │ │ │ ├── flags: ∅ │ │ │ ├── expression: │ │ │ │ @ CallNode (location: (22,7)-(22,10)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -307,13 +346,15 @@ │ │ │ ├── keyword_loc: (22,11)-(22,17) = "rescue" │ │ │ └── rescue_expression: │ │ │ @ NilNode (location: (22,18)-(22,21)) + │ │ │ └── flags: static_literal │ │ └── operator_loc: (22,5)-(22,6) = "=" │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (23,2)-(23,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (23,2)-(23,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -325,14 +366,17 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (24,0)-(24,3) = "end" ├── @ DefNode (location: (26,0)-(26,44)) + │ ├── flags: newline │ ├── name: :some_method │ ├── name_loc: (26,4)-(26,15) = "some_method" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (26,18)-(26,44)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RescueModifierNode (location: (26,18)-(26,44)) + │ │ ├── flags: newline │ │ ├── expression: │ │ │ @ CallNode (location: (26,18)-(26,33)) │ │ │ ├── flags: ignore_visibility @@ -346,13 +390,14 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ IntegerNode (location: (26,31)-(26,33)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 42 │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ ├── keyword_loc: (26,34)-(26,40) = "rescue" │ │ └── rescue_expression: │ │ @ NilNode (location: (26,41)-(26,44)) + │ │ └── flags: static_literal │ ├── locals: [] │ ├── def_keyword_loc: (26,0)-(26,3) = "def" │ ├── operator_loc: ∅ @@ -361,18 +406,21 @@ │ ├── equal_loc: (26,16)-(26,17) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (28,0)-(31,3)) + │ ├── flags: newline │ ├── name: :a │ ├── name_loc: (28,4)-(28,5) = "a" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (28,0)-(31,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (29,2)-(29,6)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (29,2)-(29,6)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :a @@ -386,15 +434,17 @@ │ │ │ │ ├── flags: symbol_keys │ │ │ │ └── elements: (length: 1) │ │ │ │ └── @ AssocNode (location: (29,4)-(29,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (29,4)-(29,6)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (29,4)-(29,5) = "b" │ │ │ │ │ ├── closing_loc: (29,5)-(29,6) = ":" │ │ │ │ │ └── unescaped: "b" │ │ │ │ ├── value: │ │ │ │ │ @ ImplicitNode (location: (29,4)-(29,6)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── value: │ │ │ │ │ @ CallNode (location: (29,4)-(29,6)) │ │ │ │ │ ├── flags: ignore_visibility @@ -411,6 +461,7 @@ │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (30,0)-(30,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (30,0)-(30,6) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ @@ -428,8 +479,10 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (31,0)-(31,3) = "end" ├── @ RescueModifierNode (location: (33,0)-(33,21)) + │ ├── flags: newline │ ├── expression: │ │ @ IfNode (location: (33,0)-(33,10)) + │ │ ├── flags: newline │ │ ├── if_keyword_loc: (33,4)-(33,6) = "if" │ │ ├── predicate: │ │ │ @ CallNode (location: (33,7)-(33,10)) @@ -445,9 +498,10 @@ │ │ ├── then_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (33,0)-(33,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (33,0)-(33,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :foo @@ -471,11 +525,13 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ LocalVariableWriteNode (location: (35,0)-(35,18)) + ├── flags: newline ├── name: :z ├── depth: 0 ├── name_loc: (35,0)-(35,1) = "z" ├── value: │ @ RescueModifierNode (location: (35,4)-(35,18)) + │ ├── flags: ∅ │ ├── expression: │ │ @ CallNode (location: (35,4)-(35,7)) │ │ ├── flags: ignore_visibility diff --git a/test/prism/snapshots/return.txt b/test/prism/snapshots/return.txt index 0dd26281c1..8c01ee438c 100644 --- a/test/prism/snapshots/return.txt +++ b/test/prism/snapshots/return.txt @@ -1,165 +1,179 @@ @ ProgramNode (location: (1,0)-(23,9)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(23,9)) + ├── flags: ∅ └── body: (length: 10) ├── @ ReturnNode (location: (1,0)-(1,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (1,0)-(1,6) = "return" │ └── arguments: ∅ ├── @ ReturnNode (location: (3,0)-(3,20)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (3,0)-(3,6) = "return" │ └── arguments: │ @ ArgumentsNode (location: (3,7)-(3,20)) │ ├── flags: ∅ │ └── arguments: (length: 3) │ ├── @ ParenthesesNode (location: (3,7)-(3,10)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (3,8)-(3,9)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ IntegerNode (location: (3,8)-(3,9)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: newline, static_literal, decimal │ │ │ └── value: 1 │ │ ├── opening_loc: (3,7)-(3,8) = "(" │ │ └── closing_loc: (3,9)-(3,10) = ")" │ ├── @ ParenthesesNode (location: (3,12)-(3,15)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (3,13)-(3,14)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ IntegerNode (location: (3,13)-(3,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: newline, static_literal, decimal │ │ │ └── value: 2 │ │ ├── opening_loc: (3,12)-(3,13) = "(" │ │ └── closing_loc: (3,14)-(3,15) = ")" │ └── @ ParenthesesNode (location: (3,17)-(3,20)) + │ ├── flags: ∅ │ ├── body: │ │ @ StatementsNode (location: (3,18)-(3,19)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (3,18)-(3,19)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 3 │ ├── opening_loc: (3,17)-(3,18) = "(" │ └── closing_loc: (3,19)-(3,20) = ")" ├── @ ReturnNode (location: (5,0)-(5,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (5,0)-(5,6) = "return" │ └── arguments: │ @ ArgumentsNode (location: (5,7)-(5,9)) │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ SplatNode (location: (5,7)-(5,9)) + │ ├── flags: ∅ │ ├── operator_loc: (5,7)-(5,8) = "*" │ └── expression: │ @ IntegerNode (location: (5,8)-(5,9)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ ReturnNode (location: (7,0)-(7,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (7,0)-(7,6) = "return" │ └── arguments: │ @ ArgumentsNode (location: (7,7)-(7,8)) │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (7,7)-(7,8)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ ReturnNode (location: (9,0)-(10,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (9,0)-(9,6) = "return" │ └── arguments: │ @ ArgumentsNode (location: (9,7)-(10,1)) │ ├── flags: ∅ │ └── arguments: (length: 3) │ ├── @ IntegerNode (location: (9,7)-(9,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── @ IntegerNode (location: (9,10)-(9,11)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── @ IntegerNode (location: (10,0)-(10,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 3 ├── @ ReturnNode (location: (12,0)-(12,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (12,0)-(12,6) = "return" │ └── arguments: │ @ ArgumentsNode (location: (12,7)-(12,14)) │ ├── flags: ∅ │ └── arguments: (length: 3) │ ├── @ IntegerNode (location: (12,7)-(12,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── @ IntegerNode (location: (12,10)-(12,11)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── @ IntegerNode (location: (12,13)-(12,14)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 3 ├── @ ReturnNode (location: (14,0)-(14,16)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (14,0)-(14,6) = "return" │ └── arguments: │ @ ArgumentsNode (location: (14,7)-(14,16)) │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ ArrayNode (location: (14,7)-(14,16)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 3) │ │ ├── @ IntegerNode (location: (14,8)-(14,9)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── @ IntegerNode (location: (14,11)-(14,12)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── @ IntegerNode (location: (14,14)-(14,15)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ ├── opening_loc: (14,7)-(14,8) = "[" │ └── closing_loc: (14,15)-(14,16) = "]" ├── @ ReturnNode (location: (16,0)-(19,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (16,0)-(16,6) = "return" │ └── arguments: │ @ ArgumentsNode (location: (16,6)-(19,1)) │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ ParenthesesNode (location: (16,6)-(19,1)) + │ ├── flags: ∅ │ ├── body: │ │ @ StatementsNode (location: (17,2)-(18,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 2) │ │ ├── @ IntegerNode (location: (17,2)-(17,3)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: newline, static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (18,2)-(18,3)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: (16,6)-(16,7) = "(" │ └── closing_loc: (19,0)-(19,1) = ")" ├── @ ReturnNode (location: (21,0)-(21,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (21,0)-(21,6) = "return" │ └── arguments: │ @ ArgumentsNode (location: (21,6)-(21,8)) │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ ParenthesesNode (location: (21,6)-(21,8)) + │ ├── flags: ∅ │ ├── body: ∅ │ ├── opening_loc: (21,6)-(21,7) = "(" │ └── closing_loc: (21,7)-(21,8) = ")" └── @ ReturnNode (location: (23,0)-(23,9)) - ├── flags: ∅ + ├── flags: newline ├── keyword_loc: (23,0)-(23,6) = "return" └── arguments: @ ArgumentsNode (location: (23,6)-(23,9)) ├── flags: ∅ └── arguments: (length: 1) └── @ ParenthesesNode (location: (23,6)-(23,9)) + ├── flags: ∅ ├── body: │ @ StatementsNode (location: (23,7)-(23,8)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ IntegerNode (location: (23,7)-(23,8)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 1 ├── opening_loc: (23,6)-(23,7) = "(" └── closing_loc: (23,8)-(23,9) = ")" diff --git a/test/prism/snapshots/seattlerb/BEGIN.txt b/test/prism/snapshots/seattlerb/BEGIN.txt index 246f39cbba..a0d73a8039 100644 --- a/test/prism/snapshots/seattlerb/BEGIN.txt +++ b/test/prism/snapshots/seattlerb/BEGIN.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,12)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,12)) + ├── flags: ∅ └── body: (length: 1) └── @ PreExecutionNode (location: (1,0)-(1,12)) + ├── flags: newline ├── statements: │ @ StatementsNode (location: (1,8)-(1,10)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ IntegerNode (location: (1,8)-(1,10)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 42 ├── keyword_loc: (1,0)-(1,5) = "BEGIN" ├── opening_loc: (1,6)-(1,7) = "{" diff --git a/test/prism/snapshots/seattlerb/TestRubyParserShared.txt b/test/prism/snapshots/seattlerb/TestRubyParserShared.txt index fabc92e477..7a488a20aa 100644 --- a/test/prism/snapshots/seattlerb/TestRubyParserShared.txt +++ b/test/prism/snapshots/seattlerb/TestRubyParserShared.txt @@ -1,24 +1,26 @@ @ ProgramNode (location: (1,0)-(92,1)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(92,1)) + ├── flags: ∅ └── body: (length: 16) ├── @ ArrayNode (location: (1,0)-(4,1)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 0) │ ├── opening_loc: (1,0)-(1,3) = "%I[" │ └── closing_loc: (4,0)-(4,1) = "]" ├── @ ArrayNode (location: (6,0)-(9,1)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 2) │ │ ├── @ SymbolNode (location: (7,0)-(7,5)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (7,0)-(7,5) = "line2" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "line2" │ │ └── @ SymbolNode (location: (8,0)-(8,5)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (8,0)-(8,5) = "line3" │ │ ├── closing_loc: ∅ @@ -26,12 +28,12 @@ │ ├── opening_loc: (6,0)-(6,3) = "%I[" │ └── closing_loc: (9,0)-(9,1) = "]" ├── @ ArrayNode (location: (11,0)-(14,1)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 0) │ ├── opening_loc: (11,0)-(11,3) = "%W[" │ └── closing_loc: (14,0)-(14,1) = "]" ├── @ ArrayNode (location: (16,0)-(19,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 2) │ │ ├── @ StringNode (location: (17,0)-(17,5)) │ │ │ ├── flags: ∅ @@ -48,21 +50,21 @@ │ ├── opening_loc: (16,0)-(16,3) = "%W[" │ └── closing_loc: (19,0)-(19,1) = "]" ├── @ ArrayNode (location: (21,0)-(24,1)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 0) │ ├── opening_loc: (21,0)-(21,3) = "%i[" │ └── closing_loc: (24,0)-(24,1) = "]" ├── @ ArrayNode (location: (26,0)-(29,1)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 2) │ │ ├── @ SymbolNode (location: (27,0)-(27,5)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (27,0)-(27,5) = "line2" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "line2" │ │ └── @ SymbolNode (location: (28,0)-(28,5)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (28,0)-(28,5) = "line3" │ │ ├── closing_loc: ∅ @@ -70,18 +72,18 @@ │ ├── opening_loc: (26,0)-(26,3) = "%i[" │ └── closing_loc: (29,0)-(29,1) = "]" ├── @ RegularExpressionNode (location: (31,0)-(34,1)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (31,0)-(31,3) = "%r[" │ ├── content_loc: (31,3)-(34,0) = "\n\n\n" │ ├── closing_loc: (34,0)-(34,1) = "]" │ └── unescaped: "\n\n\n" ├── @ ArrayNode (location: (36,0)-(39,1)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 0) │ ├── opening_loc: (36,0)-(36,3) = "%w[" │ └── closing_loc: (39,0)-(39,1) = "]" ├── @ ArrayNode (location: (41,0)-(44,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 2) │ │ ├── @ StringNode (location: (42,0)-(42,5)) │ │ │ ├── flags: ∅ @@ -98,16 +100,16 @@ │ ├── opening_loc: (41,0)-(41,3) = "%w[" │ └── closing_loc: (44,0)-(44,1) = "]" ├── @ ArrayNode (location: (46,0)-(49,1)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 2) │ │ ├── @ SymbolNode (location: (47,0)-(47,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (47,0)-(47,1) = ":" │ │ │ ├── value_loc: (47,1)-(47,6) = "line2" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "line2" │ │ └── @ SymbolNode (location: (48,0)-(48,6)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (48,0)-(48,1) = ":" │ │ ├── value_loc: (48,1)-(48,6) = "line3" │ │ ├── closing_loc: ∅ @@ -115,23 +117,29 @@ │ ├── opening_loc: (46,0)-(46,1) = "[" │ └── closing_loc: (49,0)-(49,1) = "]" ├── @ ClassNode (location: (51,0)-(56,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (51,0)-(51,5) = "class" │ ├── constant_path: │ │ @ ConstantReadNode (location: (51,6)-(51,7)) + │ │ ├── flags: ∅ │ │ └── name: :X │ ├── inheritance_operator_loc: ∅ │ ├── superclass: ∅ │ ├── body: │ │ @ StatementsNode (location: (52,2)-(55,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ DefNode (location: (52,2)-(55,5)) + │ │ ├── flags: newline │ │ ├── name: :y │ │ ├── name_loc: (52,11)-(52,12) = "y" │ │ ├── receiver: │ │ │ @ SelfNode (location: (52,6)-(52,10)) + │ │ │ └── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (52,13)-(53,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 2) │ │ │ │ ├── @ RequiredParameterNode (location: (52,13)-(52,14)) │ │ │ │ │ ├── flags: ∅ @@ -147,11 +155,13 @@ │ │ │ └── block: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (54,4)-(54,9)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (54,4)-(54,9)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ LocalVariableReadNode (location: (54,4)-(54,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :a │ │ │ │ └── depth: 0 │ │ │ ├── call_operator_loc: ∅ @@ -163,6 +173,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ LocalVariableReadNode (location: (54,8)-(54,9)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :b │ │ │ │ └── depth: 0 │ │ │ ├── closing_loc: ∅ @@ -177,33 +188,40 @@ │ ├── end_keyword_loc: (56,0)-(56,3) = "end" │ └── name: :X ├── @ ClassNode (location: (59,0)-(63,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (59,0)-(59,5) = "class" │ ├── constant_path: │ │ @ ConstantReadNode (location: (59,6)-(59,7)) + │ │ ├── flags: ∅ │ │ └── name: :X │ ├── inheritance_operator_loc: ∅ │ ├── superclass: ∅ │ ├── body: │ │ @ StatementsNode (location: (60,2)-(62,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ ClassNode (location: (60,2)-(62,5)) + │ │ ├── flags: newline │ │ ├── locals: [] │ │ ├── class_keyword_loc: (60,2)-(60,7) = "class" │ │ ├── constant_path: │ │ │ @ ConstantReadNode (location: (60,8)-(60,9)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Y │ │ ├── inheritance_operator_loc: ∅ │ │ ├── superclass: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (61,4)-(61,10)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ ConstantWriteNode (location: (61,4)-(61,10)) + │ │ │ ├── flags: newline │ │ │ ├── name: :Z │ │ │ ├── name_loc: (61,4)-(61,5) = "Z" │ │ │ ├── value: │ │ │ │ @ IntegerNode (location: (61,8)-(61,10)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 42 │ │ │ └── operator_loc: (61,6)-(61,7) = "=" │ │ ├── end_keyword_loc: (62,2)-(62,5) = "end" @@ -211,22 +229,27 @@ │ ├── end_keyword_loc: (63,0)-(63,3) = "end" │ └── name: :X ├── @ ClassNode (location: (66,0)-(71,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (66,0)-(66,5) = "class" │ ├── constant_path: │ │ @ ConstantReadNode (location: (66,6)-(66,7)) + │ │ ├── flags: ∅ │ │ └── name: :X │ ├── inheritance_operator_loc: ∅ │ ├── superclass: ∅ │ ├── body: │ │ @ StatementsNode (location: (67,2)-(70,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ DefNode (location: (67,2)-(70,5)) + │ │ ├── flags: newline │ │ ├── name: :y │ │ ├── name_loc: (67,6)-(67,7) = "y" │ │ ├── receiver: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (67,8)-(68,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 2) │ │ │ │ ├── @ RequiredParameterNode (location: (67,8)-(67,9)) │ │ │ │ │ ├── flags: ∅ @@ -242,11 +265,13 @@ │ │ │ └── block: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (69,4)-(69,9)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (69,4)-(69,9)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ LocalVariableReadNode (location: (69,4)-(69,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :a │ │ │ │ └── depth: 0 │ │ │ ├── call_operator_loc: ∅ @@ -258,6 +283,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ LocalVariableReadNode (location: (69,8)-(69,9)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :b │ │ │ │ └── depth: 0 │ │ │ ├── closing_loc: ∅ @@ -272,29 +298,33 @@ │ ├── end_keyword_loc: (71,0)-(71,3) = "end" │ └── name: :X ├── @ ModuleNode (location: (74,0)-(79,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── module_keyword_loc: (74,0)-(74,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (74,7)-(74,8)) + │ │ ├── flags: ∅ │ │ └── name: :X │ ├── body: │ │ @ StatementsNode (location: (75,2)-(78,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ ConstantWriteNode (location: (75,2)-(78,3)) + │ │ ├── flags: newline │ │ ├── name: :X │ │ ├── name_loc: (75,2)-(75,3) = "X" │ │ ├── value: │ │ │ @ ArrayNode (location: (75,6)-(78,3)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 2) │ │ │ │ ├── @ SymbolNode (location: (76,4)-(76,10)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: (76,4)-(76,5) = ":" │ │ │ │ │ ├── value_loc: (76,5)-(76,10) = "line3" │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── unescaped: "line3" │ │ │ │ └── @ SymbolNode (location: (77,4)-(77,10)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (77,4)-(77,5) = ":" │ │ │ │ ├── value_loc: (77,5)-(77,10) = "line4" │ │ │ │ ├── closing_loc: ∅ @@ -305,29 +335,36 @@ │ ├── end_keyword_loc: (79,0)-(79,3) = "end" │ └── name: :X ├── @ ModuleNode (location: (82,0)-(86,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── module_keyword_loc: (82,0)-(82,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (82,7)-(82,8)) + │ │ ├── flags: ∅ │ │ └── name: :X │ ├── body: │ │ @ StatementsNode (location: (83,2)-(85,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ ModuleNode (location: (83,2)-(85,5)) + │ │ ├── flags: newline │ │ ├── locals: [] │ │ ├── module_keyword_loc: (83,2)-(83,8) = "module" │ │ ├── constant_path: │ │ │ @ ConstantReadNode (location: (83,9)-(83,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Y │ │ ├── body: │ │ │ @ StatementsNode (location: (84,4)-(84,10)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ ConstantWriteNode (location: (84,4)-(84,10)) + │ │ │ ├── flags: newline │ │ │ ├── name: :Z │ │ │ ├── name_loc: (84,4)-(84,5) = "Z" │ │ │ ├── value: │ │ │ │ @ IntegerNode (location: (84,8)-(84,10)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 42 │ │ │ └── operator_loc: (84,6)-(84,7) = "=" │ │ ├── end_keyword_loc: (85,2)-(85,5) = "end" @@ -335,7 +372,7 @@ │ ├── end_keyword_loc: (86,0)-(86,3) = "end" │ └── name: :X └── @ CallNode (location: (89,0)-(92,1)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :x @@ -346,13 +383,13 @@ │ ├── flags: ∅ │ └── arguments: (length: 2) │ ├── @ SymbolNode (location: (90,0)-(90,6)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (90,0)-(90,1) = ":" │ │ ├── value_loc: (90,1)-(90,6) = "line2" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "line2" │ └── @ SymbolNode (location: (91,0)-(91,6)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (91,0)-(91,1) = ":" │ ├── value_loc: (91,1)-(91,6) = "line3" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/__ENCODING__.txt b/test/prism/snapshots/seattlerb/__ENCODING__.txt index 1b223bd8fe..f04dfb6cb8 100644 --- a/test/prism/snapshots/seattlerb/__ENCODING__.txt +++ b/test/prism/snapshots/seattlerb/__ENCODING__.txt @@ -1,6 +1,9 @@ @ ProgramNode (location: (1,0)-(1,12)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,12)) + ├── flags: ∅ └── body: (length: 1) └── @ SourceEncodingNode (location: (1,0)-(1,12)) + └── flags: newline, static_literal diff --git a/test/prism/snapshots/seattlerb/alias_gvar_backref.txt b/test/prism/snapshots/seattlerb/alias_gvar_backref.txt index a2586423d7..47b0e80b64 100644 --- a/test/prism/snapshots/seattlerb/alias_gvar_backref.txt +++ b/test/prism/snapshots/seattlerb/alias_gvar_backref.txt @@ -1,13 +1,18 @@ @ ProgramNode (location: (1,0)-(1,15)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,15)) + ├── flags: ∅ └── body: (length: 1) └── @ AliasGlobalVariableNode (location: (1,0)-(1,15)) + ├── flags: newline ├── new_name: │ @ GlobalVariableReadNode (location: (1,6)-(1,12)) + │ ├── flags: ∅ │ └── name: :$MATCH ├── old_name: │ @ BackReferenceReadNode (location: (1,13)-(1,15)) + │ ├── flags: ∅ │ └── name: :$& └── keyword_loc: (1,0)-(1,5) = "alias" diff --git a/test/prism/snapshots/seattlerb/alias_resword.txt b/test/prism/snapshots/seattlerb/alias_resword.txt index 99ed696c68..44a4727283 100644 --- a/test/prism/snapshots/seattlerb/alias_resword.txt +++ b/test/prism/snapshots/seattlerb/alias_resword.txt @@ -1,19 +1,22 @@ @ ProgramNode (location: (1,0)-(1,12)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,12)) + ├── flags: ∅ └── body: (length: 1) └── @ AliasMethodNode (location: (1,0)-(1,12)) + ├── flags: newline ├── new_name: │ @ SymbolNode (location: (1,6)-(1,8)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: ∅ │ ├── value_loc: (1,6)-(1,8) = "in" │ ├── closing_loc: ∅ │ └── unescaped: "in" ├── old_name: │ @ SymbolNode (location: (1,9)-(1,12)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: ∅ │ ├── value_loc: (1,9)-(1,12) = "out" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/and_multi.txt b/test/prism/snapshots/seattlerb/and_multi.txt index b60b131fd2..f98ad67e10 100644 --- a/test/prism/snapshots/seattlerb/and_multi.txt +++ b/test/prism/snapshots/seattlerb/and_multi.txt @@ -1,18 +1,24 @@ @ ProgramNode (location: (1,0)-(3,4)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,4)) + ├── flags: ∅ └── body: (length: 1) └── @ AndNode (location: (1,0)-(3,4)) + ├── flags: newline ├── left: │ @ AndNode (location: (1,0)-(2,9)) + │ ├── flags: ∅ │ ├── left: │ │ @ TrueNode (location: (1,0)-(1,4)) + │ │ └── flags: static_literal │ ├── right: │ │ @ CallNode (location: (2,0)-(2,9)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ FalseNode (location: (2,4)-(2,9)) + │ │ │ └── flags: static_literal │ │ ├── call_operator_loc: ∅ │ │ ├── name: :! │ │ ├── message_loc: (2,0)-(2,3) = "not" @@ -23,4 +29,5 @@ │ └── operator_loc: (1,5)-(1,8) = "and" ├── right: │ @ TrueNode (location: (3,0)-(3,4)) + │ └── flags: static_literal └── operator_loc: (2,10)-(2,13) = "and" diff --git a/test/prism/snapshots/seattlerb/aref_args_assocs.txt b/test/prism/snapshots/seattlerb/aref_args_assocs.txt index b729186dc5..cbd0792037 100644 --- a/test/prism/snapshots/seattlerb/aref_args_assocs.txt +++ b/test/prism/snapshots/seattlerb/aref_args_assocs.txt @@ -1,22 +1,25 @@ @ ProgramNode (location: (1,0)-(1,8)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,8)) + ├── flags: ∅ └── body: (length: 1) └── @ ArrayNode (location: (1,0)-(1,8)) - ├── flags: ∅ + ├── flags: newline ├── elements: (length: 1) │ └── @ KeywordHashNode (location: (1,1)-(1,7)) │ ├── flags: ∅ │ └── elements: (length: 1) │ └── @ AssocNode (location: (1,1)-(1,7)) + │ ├── flags: static_literal │ ├── key: │ │ @ IntegerNode (location: (1,1)-(1,2)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── value: │ │ @ IntegerNode (location: (1,6)-(1,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── operator_loc: (1,3)-(1,5) = "=>" ├── opening_loc: (1,0)-(1,1) = "[" diff --git a/test/prism/snapshots/seattlerb/aref_args_lit_assocs.txt b/test/prism/snapshots/seattlerb/aref_args_lit_assocs.txt index 0e9454d780..7302f728e3 100644 --- a/test/prism/snapshots/seattlerb/aref_args_lit_assocs.txt +++ b/test/prism/snapshots/seattlerb/aref_args_lit_assocs.txt @@ -1,25 +1,28 @@ @ ProgramNode (location: (1,0)-(1,11)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,11)) + ├── flags: ∅ └── body: (length: 1) └── @ ArrayNode (location: (1,0)-(1,11)) - ├── flags: ∅ + ├── flags: newline ├── elements: (length: 2) │ ├── @ IntegerNode (location: (1,1)-(1,2)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── @ KeywordHashNode (location: (1,4)-(1,10)) │ ├── flags: ∅ │ └── elements: (length: 1) │ └── @ AssocNode (location: (1,4)-(1,10)) + │ ├── flags: static_literal │ ├── key: │ │ @ IntegerNode (location: (1,4)-(1,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── value: │ │ @ IntegerNode (location: (1,9)-(1,10)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ └── operator_loc: (1,6)-(1,8) = "=>" ├── opening_loc: (1,0)-(1,1) = "[" diff --git a/test/prism/snapshots/seattlerb/args_kw_block.txt b/test/prism/snapshots/seattlerb/args_kw_block.txt index 1ad933c74e..88081dfa14 100644 --- a/test/prism/snapshots/seattlerb/args_kw_block.txt +++ b/test/prism/snapshots/seattlerb/args_kw_block.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,20)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,20)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,20)) + ├── flags: newline ├── name: :f ├── name_loc: (1,4)-(1,5) = "f" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,14)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -20,7 +24,7 @@ │ │ ├── name_loc: (1,6)-(1,8) = "a:" │ │ └── value: │ │ @ IntegerNode (location: (1,9)-(1,10)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── keyword_rest: ∅ │ └── block: diff --git a/test/prism/snapshots/seattlerb/array_line_breaks.txt b/test/prism/snapshots/seattlerb/array_line_breaks.txt index 880fedf933..a2d21e90ad 100644 --- a/test/prism/snapshots/seattlerb/array_line_breaks.txt +++ b/test/prism/snapshots/seattlerb/array_line_breaks.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(4,1)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,1)) + ├── flags: ∅ └── body: (length: 2) ├── @ ArrayNode (location: (1,0)-(3,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 2) │ │ ├── @ StringNode (location: (2,0)-(2,3)) │ │ │ ├── flags: ∅ @@ -21,5 +23,5 @@ │ ├── opening_loc: (1,0)-(1,1) = "[" │ └── closing_loc: (3,3)-(3,4) = "]" └── @ IntegerNode (location: (4,0)-(4,1)) - ├── flags: decimal + ├── flags: newline, static_literal, decimal └── value: 1 diff --git a/test/prism/snapshots/seattlerb/array_lits_trailing_calls.txt b/test/prism/snapshots/seattlerb/array_lits_trailing_calls.txt index d46a181fc7..2de5a054a6 100644 --- a/test/prism/snapshots/seattlerb/array_lits_trailing_calls.txt +++ b/test/prism/snapshots/seattlerb/array_lits_trailing_calls.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(3,4)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,4)) + ├── flags: ∅ └── body: (length: 2) ├── @ CallNode (location: (1,0)-(1,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ArrayNode (location: (1,0)-(1,4)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── elements: (length: 0) │ │ ├── opening_loc: (1,0)-(1,3) = "%w[" │ │ └── closing_loc: (1,3)-(1,4) = "]" @@ -19,10 +21,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ CallNode (location: (3,0)-(3,4)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ ArrayNode (location: (3,0)-(3,2)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 0) │ ├── opening_loc: (3,0)-(3,1) = "[" │ └── closing_loc: (3,1)-(3,2) = "]" diff --git a/test/prism/snapshots/seattlerb/assoc__bare.txt b/test/prism/snapshots/seattlerb/assoc__bare.txt index 28e4f713c5..530360ef66 100644 --- a/test/prism/snapshots/seattlerb/assoc__bare.txt +++ b/test/prism/snapshots/seattlerb/assoc__bare.txt @@ -1,21 +1,26 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ HashNode (location: (1,0)-(1,6)) + ├── flags: newline ├── opening_loc: (1,0)-(1,1) = "{" ├── elements: (length: 1) │ └── @ AssocNode (location: (1,2)-(1,4)) + │ ├── flags: ∅ │ ├── key: │ │ @ SymbolNode (location: (1,2)-(1,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (1,2)-(1,3) = "y" │ │ ├── closing_loc: (1,3)-(1,4) = ":" │ │ └── unescaped: "y" │ ├── value: │ │ @ ImplicitNode (location: (1,2)-(1,4)) + │ │ ├── flags: ∅ │ │ └── value: │ │ @ CallNode (location: (1,2)-(1,4)) │ │ ├── flags: ignore_visibility diff --git a/test/prism/snapshots/seattlerb/assoc_label.txt b/test/prism/snapshots/seattlerb/assoc_label.txt index 70490c0da4..91b94bbc1c 100644 --- a/test/prism/snapshots/seattlerb/assoc_label.txt +++ b/test/prism/snapshots/seattlerb/assoc_label.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,6)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -18,16 +20,17 @@ │ ├── flags: symbol_keys │ └── elements: (length: 1) │ └── @ AssocNode (location: (1,2)-(1,5)) + │ ├── flags: static_literal │ ├── key: │ │ @ SymbolNode (location: (1,2)-(1,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (1,2)-(1,3) = "b" │ │ ├── closing_loc: (1,3)-(1,4) = ":" │ │ └── unescaped: "b" │ ├── value: │ │ @ IntegerNode (location: (1,4)-(1,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: ∅ ├── closing_loc: (1,5)-(1,6) = ")" diff --git a/test/prism/snapshots/seattlerb/attr_asgn_colon_id.txt b/test/prism/snapshots/seattlerb/attr_asgn_colon_id.txt index 589433eda8..67802fc8a4 100644 --- a/test/prism/snapshots/seattlerb/attr_asgn_colon_id.txt +++ b/test/prism/snapshots/seattlerb/attr_asgn_colon_id.txt @@ -1,12 +1,15 @@ @ ProgramNode (location: (1,0)-(1,8)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,8)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,8)) - ├── flags: attribute_write + ├── flags: newline, attribute_write ├── receiver: │ @ ConstantReadNode (location: (1,0)-(1,1)) + │ ├── flags: ∅ │ └── name: :A ├── call_operator_loc: (1,1)-(1,3) = "::" ├── name: :b= @@ -17,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,7)-(1,8)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/attrasgn_array_arg.txt b/test/prism/snapshots/seattlerb/attrasgn_array_arg.txt index 9b04ae9656..43853b4ef9 100644 --- a/test/prism/snapshots/seattlerb/attrasgn_array_arg.txt +++ b/test/prism/snapshots/seattlerb/attrasgn_array_arg.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,13)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,13)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,13)) - ├── flags: attribute_write + ├── flags: newline, attribute_write ├── receiver: │ @ CallNode (location: (1,0)-(1,1)) │ ├── flags: variable_call, ignore_visibility @@ -25,18 +27,18 @@ │ ├── flags: ∅ │ └── arguments: (length: 2) │ ├── @ ArrayNode (location: (1,2)-(1,8)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── elements: (length: 2) │ │ │ ├── @ IntegerNode (location: (1,3)-(1,4)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── @ IntegerNode (location: (1,6)-(1,7)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── opening_loc: (1,2)-(1,3) = "[" │ │ └── closing_loc: (1,7)-(1,8) = "]" │ └── @ IntegerNode (location: (1,12)-(1,13)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 3 ├── closing_loc: (1,8)-(1,9) = "]" └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/attrasgn_array_lhs.txt b/test/prism/snapshots/seattlerb/attrasgn_array_lhs.txt index 39544e98da..5729407edc 100644 --- a/test/prism/snapshots/seattlerb/attrasgn_array_lhs.txt +++ b/test/prism/snapshots/seattlerb/attrasgn_array_lhs.txt @@ -1,25 +1,27 @@ @ ProgramNode (location: (1,0)-(1,42)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,42)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,42)) - ├── flags: attribute_write + ├── flags: newline, attribute_write ├── receiver: │ @ ArrayNode (location: (1,0)-(1,12)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 4) │ │ ├── @ IntegerNode (location: (1,1)-(1,2)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── @ IntegerNode (location: (1,4)-(1,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── @ IntegerNode (location: (1,7)-(1,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ └── @ IntegerNode (location: (1,10)-(1,11)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 4 │ ├── opening_loc: (1,0)-(1,1) = "[" │ └── closing_loc: (1,11)-(1,12) = "]" diff --git a/test/prism/snapshots/seattlerb/attrasgn_primary_dot_constant.txt b/test/prism/snapshots/seattlerb/attrasgn_primary_dot_constant.txt index d4c4fe1070..2c06df2609 100644 --- a/test/prism/snapshots/seattlerb/attrasgn_primary_dot_constant.txt +++ b/test/prism/snapshots/seattlerb/attrasgn_primary_dot_constant.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,7)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,7)) - ├── flags: attribute_write + ├── flags: newline, attribute_write ├── receiver: │ @ CallNode (location: (1,0)-(1,1)) │ ├── flags: variable_call, ignore_visibility @@ -25,7 +27,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,6)-(1,7)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/backticks_interpolation_line.txt b/test/prism/snapshots/seattlerb/backticks_interpolation_line.txt index 67c8be034e..8c6a163c48 100644 --- a/test/prism/snapshots/seattlerb/backticks_interpolation_line.txt +++ b/test/prism/snapshots/seattlerb/backticks_interpolation_line.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,8)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,8)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,8)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :x @@ -15,12 +17,15 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ InterpolatedXStringNode (location: (1,2)-(1,8)) + │ ├── flags: ∅ │ ├── opening_loc: (1,2)-(1,3) = "`" │ ├── parts: (length: 1) │ │ └── @ EmbeddedStatementsNode (location: (1,3)-(1,7)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (1,3)-(1,5) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (1,5)-(1,6)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (1,5)-(1,6)) │ │ │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/seattlerb/bang_eq.txt b/test/prism/snapshots/seattlerb/bang_eq.txt index ec3dd888b2..6bbd4a6ea2 100644 --- a/test/prism/snapshots/seattlerb/bang_eq.txt +++ b/test/prism/snapshots/seattlerb/bang_eq.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,6)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :!= @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,5)-(1,6)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/bdot2.txt b/test/prism/snapshots/seattlerb/bdot2.txt index d4fb86fbe6..b1c05c0fc4 100644 --- a/test/prism/snapshots/seattlerb/bdot2.txt +++ b/test/prism/snapshots/seattlerb/bdot2.txt @@ -1,18 +1,20 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 3) ├── @ RangeNode (location: (1,0)-(1,4)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── left: ∅ │ ├── right: │ │ @ IntegerNode (location: (1,2)-(1,4)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 10 │ └── operator_loc: (1,0)-(1,2) = ".." ├── @ RangeNode (location: (2,2)-(2,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── left: ∅ │ ├── right: │ │ @ CallNode (location: (2,4)-(2,5)) @@ -27,7 +29,7 @@ │ │ └── block: ∅ │ └── operator_loc: (2,2)-(2,4) = ".." └── @ CallNode (location: (3,2)-(3,3)) - ├── flags: variable_call, ignore_visibility + ├── flags: newline, variable_call, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :c diff --git a/test/prism/snapshots/seattlerb/bdot3.txt b/test/prism/snapshots/seattlerb/bdot3.txt index 0c960f0458..0b35268f19 100644 --- a/test/prism/snapshots/seattlerb/bdot3.txt +++ b/test/prism/snapshots/seattlerb/bdot3.txt @@ -1,18 +1,20 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 3) ├── @ RangeNode (location: (1,0)-(1,5)) - │ ├── flags: exclude_end + │ ├── flags: newline, static_literal, exclude_end │ ├── left: ∅ │ ├── right: │ │ @ IntegerNode (location: (1,3)-(1,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 10 │ └── operator_loc: (1,0)-(1,3) = "..." ├── @ RangeNode (location: (2,2)-(2,6)) - │ ├── flags: exclude_end + │ ├── flags: newline, exclude_end │ ├── left: ∅ │ ├── right: │ │ @ CallNode (location: (2,5)-(2,6)) @@ -27,7 +29,7 @@ │ │ └── block: ∅ │ └── operator_loc: (2,2)-(2,5) = "..." └── @ CallNode (location: (3,2)-(3,3)) - ├── flags: variable_call, ignore_visibility + ├── flags: newline, variable_call, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :c diff --git a/test/prism/snapshots/seattlerb/begin_ensure_no_bodies.txt b/test/prism/snapshots/seattlerb/begin_ensure_no_bodies.txt index e1698d0bae..6ebcc2e052 100644 --- a/test/prism/snapshots/seattlerb/begin_ensure_no_bodies.txt +++ b/test/prism/snapshots/seattlerb/begin_ensure_no_bodies.txt @@ -1,15 +1,19 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ BeginNode (location: (1,0)-(3,3)) + ├── flags: newline ├── begin_keyword_loc: (1,0)-(1,5) = "begin" ├── statements: ∅ ├── rescue_clause: ∅ ├── else_clause: ∅ ├── ensure_clause: │ @ EnsureNode (location: (2,0)-(3,3)) + │ ├── flags: ∅ │ ├── ensure_keyword_loc: (2,0)-(2,6) = "ensure" │ ├── statements: ∅ │ └── end_keyword_loc: (3,0)-(3,3) = "end" diff --git a/test/prism/snapshots/seattlerb/begin_rescue_else_ensure_bodies.txt b/test/prism/snapshots/seattlerb/begin_rescue_else_ensure_bodies.txt index 6603e5c894..61a62d311e 100644 --- a/test/prism/snapshots/seattlerb/begin_rescue_else_ensure_bodies.txt +++ b/test/prism/snapshots/seattlerb/begin_rescue_else_ensure_bodies.txt @@ -1,47 +1,57 @@ @ ProgramNode (location: (1,0)-(9,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(9,3)) + ├── flags: ∅ └── body: (length: 1) └── @ BeginNode (location: (1,0)-(9,3)) + ├── flags: newline ├── begin_keyword_loc: (1,0)-(1,5) = "begin" ├── statements: │ @ StatementsNode (location: (2,2)-(2,3)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ IntegerNode (location: (2,2)-(2,3)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 1 ├── rescue_clause: │ @ RescueNode (location: (3,0)-(4,3)) + │ ├── flags: ∅ │ ├── keyword_loc: (3,0)-(3,6) = "rescue" │ ├── exceptions: (length: 0) │ ├── operator_loc: ∅ │ ├── reference: ∅ │ ├── statements: │ │ @ StatementsNode (location: (4,2)-(4,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (4,2)-(4,3)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 2 │ └── consequent: ∅ ├── else_clause: │ @ ElseNode (location: (5,0)-(7,6)) + │ ├── flags: ∅ │ ├── else_keyword_loc: (5,0)-(5,4) = "else" │ ├── statements: │ │ @ StatementsNode (location: (6,2)-(6,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (6,2)-(6,3)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 3 │ └── end_keyword_loc: (7,0)-(7,6) = "ensure" ├── ensure_clause: │ @ EnsureNode (location: (7,0)-(9,3)) + │ ├── flags: ∅ │ ├── ensure_keyword_loc: (7,0)-(7,6) = "ensure" │ ├── statements: │ │ @ StatementsNode (location: (8,2)-(8,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (8,2)-(8,3)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 4 │ └── end_keyword_loc: (9,0)-(9,3) = "end" └── end_keyword_loc: (9,0)-(9,3) = "end" diff --git a/test/prism/snapshots/seattlerb/begin_rescue_else_ensure_no_bodies.txt b/test/prism/snapshots/seattlerb/begin_rescue_else_ensure_no_bodies.txt index 02e1f097ac..3353a41484 100644 --- a/test/prism/snapshots/seattlerb/begin_rescue_else_ensure_no_bodies.txt +++ b/test/prism/snapshots/seattlerb/begin_rescue_else_ensure_no_bodies.txt @@ -1,13 +1,17 @@ @ ProgramNode (location: (1,0)-(9,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(9,3)) + ├── flags: ∅ └── body: (length: 1) └── @ BeginNode (location: (1,0)-(9,3)) + ├── flags: newline ├── begin_keyword_loc: (1,0)-(1,5) = "begin" ├── statements: ∅ ├── rescue_clause: │ @ RescueNode (location: (3,0)-(3,6)) + │ ├── flags: ∅ │ ├── keyword_loc: (3,0)-(3,6) = "rescue" │ ├── exceptions: (length: 0) │ ├── operator_loc: ∅ @@ -16,11 +20,13 @@ │ └── consequent: ∅ ├── else_clause: │ @ ElseNode (location: (5,0)-(7,6)) + │ ├── flags: ∅ │ ├── else_keyword_loc: (5,0)-(5,4) = "else" │ ├── statements: ∅ │ └── end_keyword_loc: (7,0)-(7,6) = "ensure" ├── ensure_clause: │ @ EnsureNode (location: (7,0)-(9,3)) + │ ├── flags: ∅ │ ├── ensure_keyword_loc: (7,0)-(7,6) = "ensure" │ ├── statements: ∅ │ └── end_keyword_loc: (9,0)-(9,3) = "end" diff --git a/test/prism/snapshots/seattlerb/begin_rescue_ensure_no_bodies.txt b/test/prism/snapshots/seattlerb/begin_rescue_ensure_no_bodies.txt index b36fe5c1fe..e84fc70650 100644 --- a/test/prism/snapshots/seattlerb/begin_rescue_ensure_no_bodies.txt +++ b/test/prism/snapshots/seattlerb/begin_rescue_ensure_no_bodies.txt @@ -1,13 +1,17 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 1) └── @ BeginNode (location: (1,0)-(4,3)) + ├── flags: newline ├── begin_keyword_loc: (1,0)-(1,5) = "begin" ├── statements: ∅ ├── rescue_clause: │ @ RescueNode (location: (2,0)-(2,6)) + │ ├── flags: ∅ │ ├── keyword_loc: (2,0)-(2,6) = "rescue" │ ├── exceptions: (length: 0) │ ├── operator_loc: ∅ @@ -17,6 +21,7 @@ ├── else_clause: ∅ ├── ensure_clause: │ @ EnsureNode (location: (3,0)-(4,3)) + │ ├── flags: ∅ │ ├── ensure_keyword_loc: (3,0)-(3,6) = "ensure" │ ├── statements: ∅ │ └── end_keyword_loc: (4,0)-(4,3) = "end" diff --git a/test/prism/snapshots/seattlerb/block_arg__bare.txt b/test/prism/snapshots/seattlerb/block_arg__bare.txt index 165c2980be..ceafdcebbc 100644 --- a/test/prism/snapshots/seattlerb/block_arg__bare.txt +++ b/test/prism/snapshots/seattlerb/block_arg__bare.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,13)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,13)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,13)) + ├── flags: newline ├── name: :x ├── name_loc: (1,4)-(1,5) = "x" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,7)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ diff --git a/test/prism/snapshots/seattlerb/block_arg_kwsplat.txt b/test/prism/snapshots/seattlerb/block_arg_kwsplat.txt index 392de8559b..20756c8378 100644 --- a/test/prism/snapshots/seattlerb/block_arg_kwsplat.txt +++ b/test/prism/snapshots/seattlerb/block_arg_kwsplat.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,11)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,11)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,11)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,11)) + ├── flags: ∅ ├── locals: [:b] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,9)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,8)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ diff --git a/test/prism/snapshots/seattlerb/block_arg_opt_arg_block.txt b/test/prism/snapshots/seattlerb/block_arg_opt_arg_block.txt index ee9644d59d..dd89df907d 100644 --- a/test/prism/snapshots/seattlerb/block_arg_opt_arg_block.txt +++ b/test/prism/snapshots/seattlerb/block_arg_opt_arg_block.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,21)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,21)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,21)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,21)) + ├── flags: ∅ ├── locals: [:b, :c, :d, :e] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,19)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,18)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ ├── flags: ∅ @@ -31,7 +36,7 @@ │ │ │ ├── operator_loc: (1,9)-(1,10) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (1,10)-(1,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rest: ∅ │ │ ├── posts: (length: 1) diff --git a/test/prism/snapshots/seattlerb/block_arg_opt_splat.txt b/test/prism/snapshots/seattlerb/block_arg_opt_splat.txt index 799bd21057..cefc1a8515 100644 --- a/test/prism/snapshots/seattlerb/block_arg_opt_splat.txt +++ b/test/prism/snapshots/seattlerb/block_arg_opt_splat.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,20)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,20)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,20)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,20)) + ├── flags: ∅ ├── locals: [:b, :c, :d] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,18)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,17)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ ├── flags: ∅ @@ -31,7 +36,7 @@ │ │ │ ├── operator_loc: (1,10)-(1,11) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (1,12)-(1,13)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rest: │ │ │ @ RestParameterNode (location: (1,15)-(1,17)) diff --git a/test/prism/snapshots/seattlerb/block_arg_opt_splat_arg_block_omfg.txt b/test/prism/snapshots/seattlerb/block_arg_opt_splat_arg_block_omfg.txt index b5df136a62..bf66e376fd 100644 --- a/test/prism/snapshots/seattlerb/block_arg_opt_splat_arg_block_omfg.txt +++ b/test/prism/snapshots/seattlerb/block_arg_opt_splat_arg_block_omfg.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,25)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,25)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,25)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,25)) + ├── flags: ∅ ├── locals: [:b, :c, :d, :e, :f] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,23)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,22)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ ├── flags: ∅ @@ -31,7 +36,7 @@ │ │ │ ├── operator_loc: (1,9)-(1,10) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (1,10)-(1,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rest: │ │ │ @ RestParameterNode (location: (1,13)-(1,15)) diff --git a/test/prism/snapshots/seattlerb/block_arg_optional.txt b/test/prism/snapshots/seattlerb/block_arg_optional.txt index 8a850e9a21..5fecfc31ab 100644 --- a/test/prism/snapshots/seattlerb/block_arg_optional.txt +++ b/test/prism/snapshots/seattlerb/block_arg_optional.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,13)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,13)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,13)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,13)) + ├── flags: ∅ ├── locals: [:b] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,11)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,10)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (1,5)-(1,10)) @@ -28,7 +33,7 @@ │ │ │ ├── operator_loc: (1,7)-(1,8) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (1,9)-(1,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) diff --git a/test/prism/snapshots/seattlerb/block_arg_scope.txt b/test/prism/snapshots/seattlerb/block_arg_scope.txt index b99cc5e45c..e90d6445b2 100644 --- a/test/prism/snapshots/seattlerb/block_arg_scope.txt +++ b/test/prism/snapshots/seattlerb/block_arg_scope.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,12)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,12)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,12)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,12)) + ├── flags: ∅ ├── locals: [:b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,10)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,6)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/block_arg_scope2.txt b/test/prism/snapshots/seattlerb/block_arg_scope2.txt index 98b3a7da3a..c9f7242d8a 100644 --- a/test/prism/snapshots/seattlerb/block_arg_scope2.txt +++ b/test/prism/snapshots/seattlerb/block_arg_scope2.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,14)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,14)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,14)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,14)) + ├── flags: ∅ ├── locals: [:b, :c, :d] ├── parameters: │ @ BlockParametersNode (location: (1,3)-(1,12)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,4)-(1,5)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,4)-(1,5)) │ │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/block_arg_splat_arg.txt b/test/prism/snapshots/seattlerb/block_arg_splat_arg.txt index fd5813c983..6ae1b1dade 100644 --- a/test/prism/snapshots/seattlerb/block_arg_splat_arg.txt +++ b/test/prism/snapshots/seattlerb/block_arg_splat_arg.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,16)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,16)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,16)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,16)) + ├── flags: ∅ ├── locals: [:b, :c, :d] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,14)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,13)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/block_args_kwargs.txt b/test/prism/snapshots/seattlerb/block_args_kwargs.txt index 0975ce3367..45876c6dc1 100644 --- a/test/prism/snapshots/seattlerb/block_args_kwargs.txt +++ b/test/prism/snapshots/seattlerb/block_args_kwargs.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,23)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,23)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,23)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,23)) + ├── flags: ∅ ├── locals: [:kwargs] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,14)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,13)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -36,8 +41,10 @@ │ └── closing_loc: (1,13)-(1,14) = "|" ├── body: │ @ StatementsNode (location: (1,15)-(1,21)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ LocalVariableReadNode (location: (1,15)-(1,21)) + │ ├── flags: newline │ ├── name: :kwargs │ └── depth: 0 ├── opening_loc: (1,2)-(1,3) = "{" diff --git a/test/prism/snapshots/seattlerb/block_args_no_kwargs.txt b/test/prism/snapshots/seattlerb/block_args_no_kwargs.txt index d47349defb..298bc26ce0 100644 --- a/test/prism/snapshots/seattlerb/block_args_no_kwargs.txt +++ b/test/prism/snapshots/seattlerb/block_args_no_kwargs.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,13)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,13)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,13)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,13)) + ├── flags: ∅ ├── locals: [] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,11)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,10)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -26,6 +31,7 @@ │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ NoKeywordsParameterNode (location: (1,5)-(1,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (1,5)-(1,7) = "**" │ │ │ └── keyword_loc: (1,7)-(1,10) = "nil" │ │ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/block_args_opt1.txt b/test/prism/snapshots/seattlerb/block_args_opt1.txt index 1f21c0a477..d23bd5edce 100644 --- a/test/prism/snapshots/seattlerb/block_args_opt1.txt +++ b/test/prism/snapshots/seattlerb/block_args_opt1.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,24)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,24)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,24)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,24)) + ├── flags: ∅ ├── locals: [:a, :b] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,15)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ ├── flags: ∅ @@ -31,7 +36,7 @@ │ │ │ ├── operator_loc: (1,10)-(1,11) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (1,12)-(1,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 42 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) @@ -43,14 +48,17 @@ │ └── closing_loc: (1,14)-(1,15) = "|" ├── body: │ @ StatementsNode (location: (1,16)-(1,22)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ ArrayNode (location: (1,16)-(1,22)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 2) │ │ ├── @ LocalVariableReadNode (location: (1,17)-(1,18)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ └── @ LocalVariableReadNode (location: (1,20)-(1,21)) + │ │ ├── flags: ∅ │ │ ├── name: :b │ │ └── depth: 0 │ ├── opening_loc: (1,16)-(1,17) = "[" diff --git a/test/prism/snapshots/seattlerb/block_args_opt2.txt b/test/prism/snapshots/seattlerb/block_args_opt2.txt index a8d736dde7..7170768b1c 100644 --- a/test/prism/snapshots/seattlerb/block_args_opt2.txt +++ b/test/prism/snapshots/seattlerb/block_args_opt2.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,18)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,18)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,18)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,18)) + ├── flags: ∅ ├── locals: [:b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,16)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,6)-(1,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 2) │ │ │ ├── @ OptionalParameterNode (location: (1,6)-(1,9)) @@ -28,7 +33,7 @@ │ │ │ │ ├── operator_loc: (1,7)-(1,8) = "=" │ │ │ │ └── value: │ │ │ │ @ IntegerNode (location: (1,8)-(1,9)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── @ OptionalParameterNode (location: (1,11)-(1,14)) │ │ │ ├── flags: ∅ @@ -37,7 +42,7 @@ │ │ │ ├── operator_loc: (1,12)-(1,13) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (1,13)-(1,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) diff --git a/test/prism/snapshots/seattlerb/block_args_opt2_2.txt b/test/prism/snapshots/seattlerb/block_args_opt2_2.txt index 0403851ed7..34d04dbe54 100644 --- a/test/prism/snapshots/seattlerb/block_args_opt2_2.txt +++ b/test/prism/snapshots/seattlerb/block_args_opt2_2.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,35)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,35)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,35)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,35)) + ├── flags: ∅ ├── locals: [:a, :b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,23)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,22)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ ├── flags: ∅ @@ -31,7 +36,7 @@ │ │ │ │ ├── operator_loc: (1,10)-(1,11) = "=" │ │ │ │ └── value: │ │ │ │ @ IntegerNode (location: (1,12)-(1,14)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 42 │ │ │ └── @ OptionalParameterNode (location: (1,16)-(1,22)) │ │ │ ├── flags: ∅ @@ -40,7 +45,7 @@ │ │ │ ├── operator_loc: (1,18)-(1,19) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (1,20)-(1,22)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 24 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) @@ -52,17 +57,21 @@ │ └── closing_loc: (1,22)-(1,23) = "|" ├── body: │ @ StatementsNode (location: (1,24)-(1,33)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ ArrayNode (location: (1,24)-(1,33)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 3) │ │ ├── @ LocalVariableReadNode (location: (1,25)-(1,26)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ ├── @ LocalVariableReadNode (location: (1,28)-(1,29)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :b │ │ │ └── depth: 0 │ │ └── @ LocalVariableReadNode (location: (1,31)-(1,32)) + │ │ ├── flags: ∅ │ │ ├── name: :c │ │ └── depth: 0 │ ├── opening_loc: (1,24)-(1,25) = "[" diff --git a/test/prism/snapshots/seattlerb/block_args_opt3.txt b/test/prism/snapshots/seattlerb/block_args_opt3.txt index ff4495019c..508d062ce2 100644 --- a/test/prism/snapshots/seattlerb/block_args_opt3.txt +++ b/test/prism/snapshots/seattlerb/block_args_opt3.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,42)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,42)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,42)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,42)) + ├── flags: ∅ ├── locals: [:a, :b, :c, :d] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,27)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,26)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ ├── flags: ∅ @@ -31,7 +36,7 @@ │ │ │ │ ├── operator_loc: (1,10)-(1,11) = "=" │ │ │ │ └── value: │ │ │ │ @ IntegerNode (location: (1,12)-(1,14)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 42 │ │ │ └── @ OptionalParameterNode (location: (1,16)-(1,22)) │ │ │ ├── flags: ∅ @@ -40,7 +45,7 @@ │ │ │ ├── operator_loc: (1,18)-(1,19) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (1,20)-(1,22)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 24 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) @@ -57,20 +62,25 @@ │ └── closing_loc: (1,26)-(1,27) = "|" ├── body: │ @ StatementsNode (location: (1,28)-(1,40)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ ArrayNode (location: (1,28)-(1,40)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 4) │ │ ├── @ LocalVariableReadNode (location: (1,29)-(1,30)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ ├── @ LocalVariableReadNode (location: (1,32)-(1,33)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :b │ │ │ └── depth: 0 │ │ ├── @ LocalVariableReadNode (location: (1,35)-(1,36)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :c │ │ │ └── depth: 0 │ │ └── @ LocalVariableReadNode (location: (1,38)-(1,39)) + │ │ ├── flags: ∅ │ │ ├── name: :d │ │ └── depth: 0 │ ├── opening_loc: (1,28)-(1,29) = "[" diff --git a/test/prism/snapshots/seattlerb/block_call_defn_call_block_call.txt b/test/prism/snapshots/seattlerb/block_call_defn_call_block_call.txt index 2e634dc937..4e6ad90afd 100644 --- a/test/prism/snapshots/seattlerb/block_call_defn_call_block_call.txt +++ b/test/prism/snapshots/seattlerb/block_call_defn_call_block_call.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(4,11)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,11)) + ├── flags: ∅ └── body: (length: 2) ├── @ CallNode (location: (1,0)-(3,4)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a @@ -15,11 +17,13 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ DefNode (location: (1,2)-(3,4)) + │ │ ├── flags: ∅ │ │ ├── name: :b │ │ ├── name_loc: (1,6)-(1,7) = "b" │ │ ├── receiver: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (1,8)-(1,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (1,8)-(1,9)) │ │ │ │ ├── flags: ∅ @@ -32,9 +36,10 @@ │ │ │ └── block: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (2,1)-(2,2)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (2,1)-(2,2)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :d @@ -53,7 +58,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ CallNode (location: (4,1)-(4,11)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (4,1)-(4,2)) │ ├── flags: variable_call, ignore_visibility @@ -73,6 +78,7 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (4,5)-(4,11)) + ├── flags: ∅ ├── locals: [] ├── parameters: ∅ ├── body: ∅ diff --git a/test/prism/snapshots/seattlerb/block_call_dot_op2_brace_block.txt b/test/prism/snapshots/seattlerb/block_call_dot_op2_brace_block.txt index e46104b868..5f05b1f6ff 100644 --- a/test/prism/snapshots/seattlerb/block_call_dot_op2_brace_block.txt +++ b/test/prism/snapshots/seattlerb/block_call_dot_op2_brace_block.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,31)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,31)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,31)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(1,16)) │ ├── flags: ∅ @@ -40,13 +42,15 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,8)-(1,16)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,11)-(1,12)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,11)-(1,12)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :d @@ -65,11 +69,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,19)-(1,31)) + ├── flags: ∅ ├── locals: [:f] ├── parameters: │ @ BlockParametersNode (location: (1,22)-(1,25)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,23)-(1,24)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,23)-(1,24)) │ │ │ ├── flags: ∅ @@ -85,9 +92,10 @@ │ └── closing_loc: (1,24)-(1,25) = "|" ├── body: │ @ StatementsNode (location: (1,26)-(1,27)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,26)-(1,27)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :g diff --git a/test/prism/snapshots/seattlerb/block_call_dot_op2_cmd_args_do_block.txt b/test/prism/snapshots/seattlerb/block_call_dot_op2_cmd_args_do_block.txt index 05d076f8d6..ca141580b7 100644 --- a/test/prism/snapshots/seattlerb/block_call_dot_op2_cmd_args_do_block.txt +++ b/test/prism/snapshots/seattlerb/block_call_dot_op2_cmd_args_do_block.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,33)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,33)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,33)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(1,16)) │ ├── flags: ∅ @@ -40,13 +42,15 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,8)-(1,16)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,11)-(1,12)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,11)-(1,12)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :d @@ -78,11 +82,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,21)-(1,33)) + ├── flags: ∅ ├── locals: [:g] ├── parameters: │ @ BlockParametersNode (location: (1,24)-(1,27)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,25)-(1,26)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,25)-(1,26)) │ │ │ ├── flags: ∅ @@ -98,9 +105,10 @@ │ └── closing_loc: (1,26)-(1,27) = "|" ├── body: │ @ StatementsNode (location: (1,28)-(1,29)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,28)-(1,29)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :h diff --git a/test/prism/snapshots/seattlerb/block_call_operation_colon.txt b/test/prism/snapshots/seattlerb/block_call_operation_colon.txt index 9fd13b0dfc..cecd421263 100644 --- a/test/prism/snapshots/seattlerb/block_call_operation_colon.txt +++ b/test/prism/snapshots/seattlerb/block_call_operation_colon.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,15)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,15)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,15)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(1,12)) │ ├── flags: ∅ @@ -40,6 +42,7 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,6)-(1,12)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ diff --git a/test/prism/snapshots/seattlerb/block_call_operation_dot.txt b/test/prism/snapshots/seattlerb/block_call_operation_dot.txt index 43c19d3318..5c661fb49a 100644 --- a/test/prism/snapshots/seattlerb/block_call_operation_dot.txt +++ b/test/prism/snapshots/seattlerb/block_call_operation_dot.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,14)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,14)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,14)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(1,12)) │ ├── flags: ∅ @@ -40,6 +42,7 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,6)-(1,12)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ diff --git a/test/prism/snapshots/seattlerb/block_call_paren_call_block_call.txt b/test/prism/snapshots/seattlerb/block_call_paren_call_block_call.txt index 10c1780d37..93c4b05f9b 100644 --- a/test/prism/snapshots/seattlerb/block_call_paren_call_block_call.txt +++ b/test/prism/snapshots/seattlerb/block_call_paren_call_block_call.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(2,10)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(2,10)) + ├── flags: ∅ └── body: (length: 2) ├── @ CallNode (location: (1,0)-(1,5)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a @@ -15,11 +17,13 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ParenthesesNode (location: (1,2)-(1,5)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (1,3)-(1,4)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (1,3)-(1,4)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -33,7 +37,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ CallNode (location: (2,0)-(2,10)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (2,0)-(2,1)) │ ├── flags: variable_call, ignore_visibility @@ -53,6 +57,7 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (2,4)-(2,10)) + ├── flags: ∅ ├── locals: [] ├── parameters: ∅ ├── body: ∅ diff --git a/test/prism/snapshots/seattlerb/block_command_operation_colon.txt b/test/prism/snapshots/seattlerb/block_command_operation_colon.txt index 30fd6dafa0..c71fbe2f4a 100644 --- a/test/prism/snapshots/seattlerb/block_command_operation_colon.txt +++ b/test/prism/snapshots/seattlerb/block_command_operation_colon.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,17)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(1,11)) │ ├── flags: ignore_visibility @@ -18,7 +20,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SymbolNode (location: (1,2)-(1,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,2)-(1,3) = ":" │ │ ├── value_loc: (1,3)-(1,4) = "b" │ │ ├── closing_loc: ∅ @@ -26,6 +28,7 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,5)-(1,11)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ @@ -40,7 +43,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ SymbolNode (location: (1,15)-(1,17)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,15)-(1,16) = ":" │ ├── value_loc: (1,16)-(1,17) = "d" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/block_command_operation_dot.txt b/test/prism/snapshots/seattlerb/block_command_operation_dot.txt index e4f69d3604..68d98c99b4 100644 --- a/test/prism/snapshots/seattlerb/block_command_operation_dot.txt +++ b/test/prism/snapshots/seattlerb/block_command_operation_dot.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,16)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,16)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,16)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(1,11)) │ ├── flags: ignore_visibility @@ -18,7 +20,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SymbolNode (location: (1,2)-(1,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,2)-(1,3) = ":" │ │ ├── value_loc: (1,3)-(1,4) = "b" │ │ ├── closing_loc: ∅ @@ -26,6 +28,7 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,5)-(1,11)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ @@ -40,7 +43,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ SymbolNode (location: (1,14)-(1,16)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,14)-(1,15) = ":" │ ├── value_loc: (1,15)-(1,16) = "d" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/block_decomp_anon_splat_arg.txt b/test/prism/snapshots/seattlerb/block_decomp_anon_splat_arg.txt index e309ec1f98..5628cacc97 100644 --- a/test/prism/snapshots/seattlerb/block_decomp_anon_splat_arg.txt +++ b/test/prism/snapshots/seattlerb/block_decomp_anon_splat_arg.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,14)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,14)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,14)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,16 +16,21 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,14)) + ├── flags: ∅ ├── locals: [:a] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,12)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ MultiTargetNode (location: (1,5)-(1,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 0) │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (1,6)-(1,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (1,6)-(1,7) = "*" │ │ │ │ └── expression: ∅ │ │ │ ├── rights: (length: 1) diff --git a/test/prism/snapshots/seattlerb/block_decomp_arg_splat.txt b/test/prism/snapshots/seattlerb/block_decomp_arg_splat.txt index 8d28fa7e02..b13e13d167 100644 --- a/test/prism/snapshots/seattlerb/block_decomp_arg_splat.txt +++ b/test/prism/snapshots/seattlerb/block_decomp_arg_splat.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,14)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,14)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,14)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,19 +16,24 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,14)) + ├── flags: ∅ ├── locals: [:b] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,12)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ MultiTargetNode (location: (1,5)-(1,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (1,6)-(1,7)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :b │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (1,9)-(1,10)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (1,9)-(1,10) = "*" │ │ │ │ └── expression: ∅ │ │ │ ├── rights: (length: 0) diff --git a/test/prism/snapshots/seattlerb/block_decomp_arg_splat_arg.txt b/test/prism/snapshots/seattlerb/block_decomp_arg_splat_arg.txt index 4f4a82acf5..ba0a6202ce 100644 --- a/test/prism/snapshots/seattlerb/block_decomp_arg_splat_arg.txt +++ b/test/prism/snapshots/seattlerb/block_decomp_arg_splat_arg.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,18)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,18)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,18)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,19 +16,24 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,18)) + ├── flags: ∅ ├── locals: [:a, :b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,16)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,15)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ MultiTargetNode (location: (1,5)-(1,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (1,6)-(1,7)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :a │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (1,9)-(1,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (1,9)-(1,10) = "*" │ │ │ │ └── expression: │ │ │ │ @ RequiredParameterNode (location: (1,10)-(1,11)) diff --git a/test/prism/snapshots/seattlerb/block_decomp_splat.txt b/test/prism/snapshots/seattlerb/block_decomp_splat.txt index 09d3440126..fd8ad4bda1 100644 --- a/test/prism/snapshots/seattlerb/block_decomp_splat.txt +++ b/test/prism/snapshots/seattlerb/block_decomp_splat.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,12)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,12)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,12)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,16 +16,21 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,12)) + ├── flags: ∅ ├── locals: [:a] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,10)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,9)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ MultiTargetNode (location: (1,5)-(1,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 0) │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (1,6)-(1,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (1,6)-(1,7) = "*" │ │ │ │ └── expression: │ │ │ │ @ RequiredParameterNode (location: (1,7)-(1,8)) diff --git a/test/prism/snapshots/seattlerb/block_kw.txt b/test/prism/snapshots/seattlerb/block_kw.txt index f022637dae..d76998ecb6 100644 --- a/test/prism/snapshots/seattlerb/block_kw.txt +++ b/test/prism/snapshots/seattlerb/block_kw.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,15)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,15)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,15)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :blah @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,5)-(1,15)) + ├── flags: ∅ ├── locals: [:k] ├── parameters: │ @ BlockParametersNode (location: (1,7)-(1,13)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,8)-(1,12)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -30,7 +35,7 @@ │ │ │ ├── name_loc: (1,8)-(1,10) = "k:" │ │ │ └── value: │ │ │ @ IntegerNode (location: (1,10)-(1,12)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 42 │ │ ├── keyword_rest: ∅ │ │ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/block_kw__required.txt b/test/prism/snapshots/seattlerb/block_kw__required.txt index 8a49c8bec7..f04987d854 100644 --- a/test/prism/snapshots/seattlerb/block_kw__required.txt +++ b/test/prism/snapshots/seattlerb/block_kw__required.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,16)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,16)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,16)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :blah @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,5)-(1,16)) + ├── flags: ∅ ├── locals: [:k] ├── parameters: │ @ BlockParametersNode (location: (1,8)-(1,12)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,9)-(1,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ diff --git a/test/prism/snapshots/seattlerb/block_kwarg_lvar.txt b/test/prism/snapshots/seattlerb/block_kwarg_lvar.txt index e77bf90a27..861348f2a2 100644 --- a/test/prism/snapshots/seattlerb/block_kwarg_lvar.txt +++ b/test/prism/snapshots/seattlerb/block_kwarg_lvar.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,20)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,20)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,20)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :bl @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,3)-(1,20)) + ├── flags: ∅ ├── locals: [:kw] ├── parameters: │ @ BlockParametersNode (location: (1,5)-(1,15)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,6)-(1,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -30,7 +35,7 @@ │ │ │ ├── name_loc: (1,6)-(1,9) = "kw:" │ │ │ └── value: │ │ │ @ SymbolNode (location: (1,10)-(1,14)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (1,10)-(1,11) = ":" │ │ │ ├── value_loc: (1,11)-(1,14) = "val" │ │ │ ├── closing_loc: ∅ @@ -42,8 +47,10 @@ │ └── closing_loc: (1,14)-(1,15) = "|" ├── body: │ @ StatementsNode (location: (1,16)-(1,18)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ LocalVariableReadNode (location: (1,16)-(1,18)) + │ ├── flags: newline │ ├── name: :kw │ └── depth: 0 ├── opening_loc: (1,3)-(1,4) = "{" diff --git a/test/prism/snapshots/seattlerb/block_kwarg_lvar_multiple.txt b/test/prism/snapshots/seattlerb/block_kwarg_lvar_multiple.txt index a527c8c993..f1c1fef8a3 100644 --- a/test/prism/snapshots/seattlerb/block_kwarg_lvar_multiple.txt +++ b/test/prism/snapshots/seattlerb/block_kwarg_lvar_multiple.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,33)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,33)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,33)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :bl @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,3)-(1,33)) + ├── flags: ∅ ├── locals: [:kw, :kw2] ├── parameters: │ @ BlockParametersNode (location: (1,5)-(1,28)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,6)-(1,26)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -30,7 +35,7 @@ │ │ │ │ ├── name_loc: (1,6)-(1,9) = "kw:" │ │ │ │ └── value: │ │ │ │ @ SymbolNode (location: (1,10)-(1,14)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (1,10)-(1,11) = ":" │ │ │ │ ├── value_loc: (1,11)-(1,14) = "val" │ │ │ │ ├── closing_loc: ∅ @@ -41,7 +46,7 @@ │ │ │ ├── name_loc: (1,16)-(1,20) = "kw2:" │ │ │ └── value: │ │ │ @ SymbolNode (location: (1,21)-(1,26)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (1,21)-(1,22) = ":" │ │ │ ├── value_loc: (1,22)-(1,26) = "val2" │ │ │ ├── closing_loc: ∅ @@ -53,8 +58,10 @@ │ └── closing_loc: (1,27)-(1,28) = "|" ├── body: │ @ StatementsNode (location: (1,29)-(1,31)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ LocalVariableReadNode (location: (1,29)-(1,31)) + │ ├── flags: newline │ ├── name: :kw │ └── depth: 0 ├── opening_loc: (1,3)-(1,4) = "{" diff --git a/test/prism/snapshots/seattlerb/block_opt_arg.txt b/test/prism/snapshots/seattlerb/block_opt_arg.txt index 64dc928f14..39be11ac92 100644 --- a/test/prism/snapshots/seattlerb/block_opt_arg.txt +++ b/test/prism/snapshots/seattlerb/block_opt_arg.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,14)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,14)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,14)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,14)) + ├── flags: ∅ ├── locals: [:b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,12)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (1,5)-(1,8)) @@ -28,7 +33,7 @@ │ │ │ ├── operator_loc: (1,6)-(1,7) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (1,7)-(1,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rest: ∅ │ │ ├── posts: (length: 1) diff --git a/test/prism/snapshots/seattlerb/block_opt_splat.txt b/test/prism/snapshots/seattlerb/block_opt_splat.txt index c18df9c27d..3898212dc0 100644 --- a/test/prism/snapshots/seattlerb/block_opt_splat.txt +++ b/test/prism/snapshots/seattlerb/block_opt_splat.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,17)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,17)) + ├── flags: ∅ ├── locals: [:b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,15)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (1,5)-(1,10)) @@ -28,7 +33,7 @@ │ │ │ ├── operator_loc: (1,7)-(1,8) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (1,9)-(1,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rest: │ │ │ @ RestParameterNode (location: (1,12)-(1,14)) diff --git a/test/prism/snapshots/seattlerb/block_opt_splat_arg_block_omfg.txt b/test/prism/snapshots/seattlerb/block_opt_splat_arg_block_omfg.txt index 3806809d2b..ed4857ad25 100644 --- a/test/prism/snapshots/seattlerb/block_opt_splat_arg_block_omfg.txt +++ b/test/prism/snapshots/seattlerb/block_opt_splat_arg_block_omfg.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,22)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,22)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,22)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,22)) + ├── flags: ∅ ├── locals: [:b, :c, :d, :e] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,20)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,19)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (1,5)-(1,8)) @@ -28,7 +33,7 @@ │ │ │ ├── operator_loc: (1,6)-(1,7) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (1,7)-(1,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rest: │ │ │ @ RestParameterNode (location: (1,10)-(1,12)) diff --git a/test/prism/snapshots/seattlerb/block_optarg.txt b/test/prism/snapshots/seattlerb/block_optarg.txt index 5da99aec79..2172571eb1 100644 --- a/test/prism/snapshots/seattlerb/block_optarg.txt +++ b/test/prism/snapshots/seattlerb/block_optarg.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,14)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,14)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,14)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,14)) + ├── flags: ∅ ├── locals: [:b] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,12)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (1,5)-(1,11)) @@ -28,7 +33,7 @@ │ │ │ ├── operator_loc: (1,7)-(1,8) = "=" │ │ │ └── value: │ │ │ @ SymbolNode (location: (1,9)-(1,11)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (1,9)-(1,10) = ":" │ │ │ ├── value_loc: (1,10)-(1,11) = "c" │ │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/block_paren_splat.txt b/test/prism/snapshots/seattlerb/block_paren_splat.txt index ebd937904c..b6c2da679b 100644 --- a/test/prism/snapshots/seattlerb/block_paren_splat.txt +++ b/test/prism/snapshots/seattlerb/block_paren_splat.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,15)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,15)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,15)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,19 +16,24 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,15)) + ├── flags: ∅ ├── locals: [:b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,13)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,12)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ MultiTargetNode (location: (1,5)-(1,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (1,6)-(1,7)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :b │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (1,9)-(1,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (1,9)-(1,10) = "*" │ │ │ │ └── expression: │ │ │ │ @ RequiredParameterNode (location: (1,10)-(1,11)) diff --git a/test/prism/snapshots/seattlerb/block_reg_optarg.txt b/test/prism/snapshots/seattlerb/block_reg_optarg.txt index 53c43603a7..0173b92e8f 100644 --- a/test/prism/snapshots/seattlerb/block_reg_optarg.txt +++ b/test/prism/snapshots/seattlerb/block_reg_optarg.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,17)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,17)) + ├── flags: ∅ ├── locals: [:b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,15)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ ├── flags: ∅ @@ -31,7 +36,7 @@ │ │ │ ├── operator_loc: (1,10)-(1,11) = "=" │ │ │ └── value: │ │ │ @ SymbolNode (location: (1,12)-(1,14)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (1,12)-(1,13) = ":" │ │ │ ├── value_loc: (1,13)-(1,14) = "d" │ │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/block_return.txt b/test/prism/snapshots/seattlerb/block_return.txt index c863b28a22..0eee33c844 100644 --- a/test/prism/snapshots/seattlerb/block_return.txt +++ b/test/prism/snapshots/seattlerb/block_return.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,27)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,27)) + ├── flags: ∅ └── body: (length: 1) └── @ ReturnNode (location: (1,0)-(1,27)) - ├── flags: ∅ + ├── flags: newline ├── keyword_loc: (1,0)-(1,6) = "return" └── arguments: @ ArgumentsNode (location: (1,7)-(1,27)) @@ -34,11 +36,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,15)-(1,27)) + ├── flags: ∅ ├── locals: [:bar] ├── parameters: │ @ BlockParametersNode (location: (1,18)-(1,23)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,19)-(1,22)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,19)-(1,22)) │ │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/block_scope.txt b/test/prism/snapshots/seattlerb/block_scope.txt index a21a28b993..ef659bb38e 100644 --- a/test/prism/snapshots/seattlerb/block_scope.txt +++ b/test/prism/snapshots/seattlerb/block_scope.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,10)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,10)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,10)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,9 +16,11 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,10)) + ├── flags: ∅ ├── locals: [:b] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,8)) + │ ├── flags: ∅ │ ├── parameters: ∅ │ ├── locals: (length: 1) │ │ └── @ BlockLocalVariableNode (location: (1,6)-(1,7)) diff --git a/test/prism/snapshots/seattlerb/block_splat_reg.txt b/test/prism/snapshots/seattlerb/block_splat_reg.txt index 617ff88622..b5eb009c52 100644 --- a/test/prism/snapshots/seattlerb/block_splat_reg.txt +++ b/test/prism/snapshots/seattlerb/block_splat_reg.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,13)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,13)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,13)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,13)) + ├── flags: ∅ ├── locals: [:b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,11)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,10)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: diff --git a/test/prism/snapshots/seattlerb/bug169.txt b/test/prism/snapshots/seattlerb/bug169.txt index e4fb47a6de..c55df4257d 100644 --- a/test/prism/snapshots/seattlerb/bug169.txt +++ b/test/prism/snapshots/seattlerb/bug169.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,7)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,7)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :m @@ -15,12 +17,14 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ ParenthesesNode (location: (1,2)-(1,4)) + │ ├── flags: ∅ │ ├── body: ∅ │ ├── opening_loc: (1,2)-(1,3) = "(" │ └── closing_loc: (1,3)-(1,4) = ")" ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,5)-(1,7)) + ├── flags: ∅ ├── locals: [] ├── parameters: ∅ ├── body: ∅ diff --git a/test/prism/snapshots/seattlerb/bug179.txt b/test/prism/snapshots/seattlerb/bug179.txt index d7695bc7a7..4392d5ec27 100644 --- a/test/prism/snapshots/seattlerb/bug179.txt +++ b/test/prism/snapshots/seattlerb/bug179.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,9)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,9)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,9)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :p @@ -18,11 +20,13 @@ │ ├── flags: ∅ │ ├── left: │ │ @ ParenthesesNode (location: (1,2)-(1,4)) + │ │ ├── flags: ∅ │ │ ├── body: ∅ │ │ ├── opening_loc: (1,2)-(1,3) = "(" │ │ └── closing_loc: (1,3)-(1,4) = ")" │ ├── right: │ │ @ NilNode (location: (1,6)-(1,9)) + │ │ └── flags: static_literal │ └── operator_loc: (1,4)-(1,6) = ".." ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/bug190.txt b/test/prism/snapshots/seattlerb/bug190.txt index b261a166cf..004ca16a60 100644 --- a/test/prism/snapshots/seattlerb/bug190.txt +++ b/test/prism/snapshots/seattlerb/bug190.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ RegularExpressionNode (location: (1,0)-(1,6)) - ├── flags: forced_us_ascii_encoding + ├── flags: newline, static_literal, forced_us_ascii_encoding ├── opening_loc: (1,0)-(1,3) = "%r'" ├── content_loc: (1,3)-(1,5) = "\\'" ├── closing_loc: (1,5)-(1,6) = "'" diff --git a/test/prism/snapshots/seattlerb/bug191.txt b/test/prism/snapshots/seattlerb/bug191.txt index 69835ab1d0..3977eb9519 100644 --- a/test/prism/snapshots/seattlerb/bug191.txt +++ b/test/prism/snapshots/seattlerb/bug191.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(3,9)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,9)) + ├── flags: ∅ └── body: (length: 2) ├── @ IfNode (location: (1,0)-(1,9)) + │ ├── flags: newline │ ├── if_keyword_loc: ∅ │ ├── predicate: │ │ @ CallNode (location: (1,0)-(1,1)) @@ -19,21 +22,24 @@ │ ├── then_keyword_loc: (1,2)-(1,3) = "?" │ ├── statements: │ │ @ StatementsNode (location: (1,4)-(1,6)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ StringNode (location: (1,4)-(1,6)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── opening_loc: (1,4)-(1,5) = "\"" │ │ ├── content_loc: (1,5)-(1,5) = "" │ │ ├── closing_loc: (1,5)-(1,6) = "\"" │ │ └── unescaped: "" │ ├── consequent: │ │ @ ElseNode (location: (1,6)-(1,9)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (1,6)-(1,7) = ":" │ │ ├── statements: │ │ │ @ StatementsNode (location: (1,8)-(1,9)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (1,8)-(1,9)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -45,6 +51,7 @@ │ │ └── end_keyword_loc: ∅ │ └── end_keyword_loc: ∅ └── @ IfNode (location: (3,0)-(3,9)) + ├── flags: newline ├── if_keyword_loc: ∅ ├── predicate: │ @ CallNode (location: (3,0)-(3,1)) @@ -60,21 +67,24 @@ ├── then_keyword_loc: (3,2)-(3,3) = "?" ├── statements: │ @ StatementsNode (location: (3,4)-(3,6)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ StringNode (location: (3,4)-(3,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (3,4)-(3,5) = "'" │ ├── content_loc: (3,5)-(3,5) = "" │ ├── closing_loc: (3,5)-(3,6) = "'" │ └── unescaped: "" ├── consequent: │ @ ElseNode (location: (3,6)-(3,9)) + │ ├── flags: ∅ │ ├── else_keyword_loc: (3,6)-(3,7) = ":" │ ├── statements: │ │ @ StatementsNode (location: (3,8)-(3,9)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (3,8)-(3,9)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :b diff --git a/test/prism/snapshots/seattlerb/bug202.txt b/test/prism/snapshots/seattlerb/bug202.txt index 377b53727e..f907081c20 100644 --- a/test/prism/snapshots/seattlerb/bug202.txt +++ b/test/prism/snapshots/seattlerb/bug202.txt @@ -1,22 +1,26 @@ @ ProgramNode (location: (1,0)-(2,10)) +├── flags: ∅ ├── locals: [:测试] └── statements: @ StatementsNode (location: (1,0)-(2,10)) + ├── flags: ∅ └── body: (length: 2) ├── @ GlobalVariableWriteNode (location: (1,0)-(1,11)) + │ ├── flags: newline │ ├── name: :$测试 │ ├── name_loc: (1,0)-(1,7) = "$测试" │ ├── value: │ │ @ IntegerNode (location: (1,10)-(1,11)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (1,8)-(1,9) = "=" └── @ LocalVariableWriteNode (location: (2,0)-(2,10)) + ├── flags: newline ├── name: :测试 ├── depth: 0 ├── name_loc: (2,0)-(2,6) = "测试" ├── value: │ @ IntegerNode (location: (2,9)-(2,10)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 └── operator_loc: (2,7)-(2,8) = "=" diff --git a/test/prism/snapshots/seattlerb/bug236.txt b/test/prism/snapshots/seattlerb/bug236.txt index 203a39a793..792020dc78 100644 --- a/test/prism/snapshots/seattlerb/bug236.txt +++ b/test/prism/snapshots/seattlerb/bug236.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(3,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,6)) + ├── flags: ∅ └── body: (length: 2) ├── @ CallNode (location: (1,0)-(1,7)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :x @@ -14,11 +16,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,1)-(1,7)) + │ ├── flags: ∅ │ ├── locals: [:a] │ ├── parameters: │ │ @ BlockParametersNode (location: (1,2)-(1,6)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (1,3)-(1,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (1,3)-(1,4)) │ │ │ │ ├── flags: ∅ @@ -26,6 +31,7 @@ │ │ │ ├── optionals: (length: 0) │ │ │ ├── rest: │ │ │ │ @ ImplicitRestNode (location: (1,4)-(1,5)) + │ │ │ │ └── flags: ∅ │ │ │ ├── posts: (length: 0) │ │ │ ├── keywords: (length: 0) │ │ │ ├── keyword_rest: ∅ @@ -37,7 +43,7 @@ │ ├── opening_loc: (1,1)-(1,2) = "{" │ └── closing_loc: (1,6)-(1,7) = "}" └── @ CallNode (location: (3,0)-(3,6)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :x @@ -47,11 +53,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (3,1)-(3,6)) + ├── flags: ∅ ├── locals: [:a] ├── parameters: │ @ BlockParametersNode (location: (3,2)-(3,5)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (3,3)-(3,4)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (3,3)-(3,4)) │ │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/bug290.txt b/test/prism/snapshots/seattlerb/bug290.txt index 4f1e673c4b..85d75c0d16 100644 --- a/test/prism/snapshots/seattlerb/bug290.txt +++ b/test/prism/snapshots/seattlerb/bug290.txt @@ -1,15 +1,19 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ BeginNode (location: (1,0)-(3,3)) + ├── flags: newline ├── begin_keyword_loc: (1,0)-(1,5) = "begin" ├── statements: │ @ StatementsNode (location: (2,2)-(2,5)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (2,2)-(2,5)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo diff --git a/test/prism/snapshots/seattlerb/bug_187.txt b/test/prism/snapshots/seattlerb/bug_187.txt index ae72675e5c..6a5786e34a 100644 --- a/test/prism/snapshots/seattlerb/bug_187.txt +++ b/test/prism/snapshots/seattlerb/bug_187.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(3,3)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :private @@ -15,15 +17,17 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ DefNode (location: (1,8)-(3,3)) + │ ├── flags: ∅ │ ├── name: :f │ ├── name_loc: (1,12)-(1,13) = "f" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (2,0)-(2,10)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (2,0)-(2,10)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (2,0)-(2,1)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -43,6 +47,7 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (2,4)-(2,10)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: ∅ diff --git a/test/prism/snapshots/seattlerb/bug_215.txt b/test/prism/snapshots/seattlerb/bug_215.txt index de7716335e..ee82b4f1da 100644 --- a/test/prism/snapshots/seattlerb/bug_215.txt +++ b/test/prism/snapshots/seattlerb/bug_215.txt @@ -1,12 +1,15 @@ @ ProgramNode (location: (1,0)-(1,13)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,13)) + ├── flags: ∅ └── body: (length: 1) └── @ UndefNode (location: (1,0)-(1,13)) + ├── flags: newline ├── names: (length: 1) │ └── @ SymbolNode (location: (1,6)-(1,13)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,6)-(1,9) = "%s(" │ ├── value_loc: (1,9)-(1,12) = "foo" │ ├── closing_loc: (1,12)-(1,13) = ")" diff --git a/test/prism/snapshots/seattlerb/bug_249.txt b/test/prism/snapshots/seattlerb/bug_249.txt index ad61501a07..06daa80e41 100644 --- a/test/prism/snapshots/seattlerb/bug_249.txt +++ b/test/prism/snapshots/seattlerb/bug_249.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(4,28)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,28)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(4,28)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :mount @@ -18,13 +20,16 @@ │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ ParenthesesNode (location: (1,6)-(4,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (1,7)-(4,4)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (1,7)-(4,4)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: newline │ │ │ │ ├── receiver: │ │ │ │ │ @ ConstantReadNode (location: (1,7)-(1,12)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── name: :Class │ │ │ │ ├── call_operator_loc: (1,12)-(1,13) = "." │ │ │ │ ├── name: :new @@ -34,12 +39,15 @@ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── block: │ │ │ │ @ BlockNode (location: (1,17)-(4,4)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── locals: [] │ │ │ │ ├── parameters: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (2,0)-(3,3)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ DefNode (location: (2,0)-(3,3)) + │ │ │ │ │ ├── flags: newline │ │ │ │ │ ├── name: :initialize │ │ │ │ │ ├── name_loc: (2,4)-(2,14) = "initialize" │ │ │ │ │ ├── receiver: ∅ @@ -67,9 +75,10 @@ │ ├── flags: symbol_keys │ └── elements: (length: 1) │ └── @ AssocNode (location: (4,11)-(4,28)) + │ ├── flags: ∅ │ ├── key: │ │ @ SymbolNode (location: (4,11)-(4,14)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (4,11)-(4,12) = ":" │ │ ├── value_loc: (4,12)-(4,14) = "at" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/bug_and.txt b/test/prism/snapshots/seattlerb/bug_and.txt index 3daf505e5f..89eb403b4a 100644 --- a/test/prism/snapshots/seattlerb/bug_and.txt +++ b/test/prism/snapshots/seattlerb/bug_and.txt @@ -1,20 +1,27 @@ @ ProgramNode (location: (1,0)-(4,11)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,11)) + ├── flags: ∅ └── body: (length: 2) ├── @ AndNode (location: (1,0)-(2,4)) + │ ├── flags: newline │ ├── left: │ │ @ TrueNode (location: (1,0)-(1,4)) + │ │ └── flags: static_literal │ ├── right: │ │ @ TrueNode (location: (2,0)-(2,4)) + │ │ └── flags: static_literal │ └── operator_loc: (1,5)-(1,8) = "and" └── @ AndNode (location: (4,0)-(4,11)) + ├── flags: newline ├── left: │ @ TrueNode (location: (4,0)-(4,4)) + │ └── flags: static_literal ├── right: │ @ ArrayNode (location: (4,9)-(4,11)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 0) │ ├── opening_loc: (4,9)-(4,10) = "[" │ └── closing_loc: (4,10)-(4,11) = "]" diff --git a/test/prism/snapshots/seattlerb/bug_args__19.txt b/test/prism/snapshots/seattlerb/bug_args__19.txt index f451bd0172..5b1d897718 100644 --- a/test/prism/snapshots/seattlerb/bug_args__19.txt +++ b/test/prism/snapshots/seattlerb/bug_args__19.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,16)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,16)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,16)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,13 +16,17 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,16)) + ├── flags: ∅ ├── locals: [:a, :b] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,12)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ MultiTargetNode (location: (1,5)-(1,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 2) │ │ │ │ ├── @ RequiredParameterNode (location: (1,6)-(1,7)) │ │ │ │ │ ├── flags: ∅ @@ -43,9 +49,10 @@ │ └── closing_loc: (1,11)-(1,12) = "|" ├── body: │ @ StatementsNode (location: (1,13)-(1,14)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,13)-(1,14)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :d diff --git a/test/prism/snapshots/seattlerb/bug_args_masgn.txt b/test/prism/snapshots/seattlerb/bug_args_masgn.txt index 297979c182..6456d82ecc 100644 --- a/test/prism/snapshots/seattlerb/bug_args_masgn.txt +++ b/test/prism/snapshots/seattlerb/bug_args_masgn.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,17)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,13 +16,17 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,17)) + ├── flags: ∅ ├── locals: [:a, :b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,15)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ MultiTargetNode (location: (1,5)-(1,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── lefts: (length: 2) │ │ │ │ │ ├── @ RequiredParameterNode (location: (1,6)-(1,7)) │ │ │ │ │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/bug_args_masgn2.txt b/test/prism/snapshots/seattlerb/bug_args_masgn2.txt index 6bec9187b3..bd9fc61161 100644 --- a/test/prism/snapshots/seattlerb/bug_args_masgn2.txt +++ b/test/prism/snapshots/seattlerb/bug_args_masgn2.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,22)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,22)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,22)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,15 +16,20 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,22)) + ├── flags: ∅ ├── locals: [:a, :b, :c, :d] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,20)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,19)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ MultiTargetNode (location: (1,5)-(1,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── lefts: (length: 2) │ │ │ │ │ ├── @ MultiTargetNode (location: (1,6)-(1,12)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── lefts: (length: 2) │ │ │ │ │ │ │ ├── @ RequiredParameterNode (location: (1,7)-(1,8)) │ │ │ │ │ │ │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/bug_args_masgn_outer_parens__19.txt b/test/prism/snapshots/seattlerb/bug_args_masgn_outer_parens__19.txt index 42a060d02a..ad62bd4daa 100644 --- a/test/prism/snapshots/seattlerb/bug_args_masgn_outer_parens__19.txt +++ b/test/prism/snapshots/seattlerb/bug_args_masgn_outer_parens__19.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,19)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,19)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,19)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,15 +16,20 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,19)) + ├── flags: ∅ ├── locals: [:k, :v, :i] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,17)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,16)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ MultiTargetNode (location: (1,5)-(1,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 2) │ │ │ │ ├── @ MultiTargetNode (location: (1,6)-(1,12)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── lefts: (length: 2) │ │ │ │ │ │ ├── @ RequiredParameterNode (location: (1,7)-(1,8)) │ │ │ │ │ │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/bug_call_arglist_parens.txt b/test/prism/snapshots/seattlerb/bug_call_arglist_parens.txt index 53d6f9220b..6954854bae 100644 --- a/test/prism/snapshots/seattlerb/bug_call_arglist_parens.txt +++ b/test/prism/snapshots/seattlerb/bug_call_arglist_parens.txt @@ -1,18 +1,22 @@ @ ProgramNode (location: (1,6)-(11,9)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,6)-(11,9)) + ├── flags: ∅ └── body: (length: 3) ├── @ DefNode (location: (1,6)-(3,9)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (1,10)-(1,11) = "f" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (2,8)-(2,17)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (2,8)-(2,17)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :g @@ -23,16 +27,18 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 2) │ │ │ ├── @ ParenthesesNode (location: (2,10)-(2,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (2,12)-(2,13)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ IntegerNode (location: (2,12)-(2,13)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── opening_loc: (2,10)-(2,11) = "(" │ │ │ │ └── closing_loc: (2,13)-(2,14) = ")" │ │ │ └── @ IntegerNode (location: (2,16)-(2,17)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ @@ -44,15 +50,17 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (3,6)-(3,9) = "end" ├── @ DefNode (location: (6,6)-(8,9)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (6,10)-(6,11) = "f" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (7,8)-(7,16)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (7,8)-(7,16)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :g @@ -63,16 +71,18 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 2) │ │ │ ├── @ ParenthesesNode (location: (7,10)-(7,13)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (7,11)-(7,12)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ IntegerNode (location: (7,11)-(7,12)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── opening_loc: (7,10)-(7,11) = "(" │ │ │ │ └── closing_loc: (7,12)-(7,13) = ")" │ │ │ └── @ IntegerNode (location: (7,15)-(7,16)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ @@ -84,7 +94,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (8,6)-(8,9) = "end" └── @ CallNode (location: (11,0)-(11,9)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :g @@ -95,16 +105,18 @@ │ ├── flags: ∅ │ └── arguments: (length: 2) │ ├── @ ParenthesesNode (location: (11,2)-(11,6)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (11,4)-(11,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ IntegerNode (location: (11,4)-(11,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: newline, static_literal, decimal │ │ │ └── value: 1 │ │ ├── opening_loc: (11,2)-(11,3) = "(" │ │ └── closing_loc: (11,5)-(11,6) = ")" │ └── @ IntegerNode (location: (11,8)-(11,9)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/bug_case_when_regexp.txt b/test/prism/snapshots/seattlerb/bug_case_when_regexp.txt index 0cc1ca05e1..f0d3c3d23c 100644 --- a/test/prism/snapshots/seattlerb/bug_case_when_regexp.txt +++ b/test/prism/snapshots/seattlerb/bug_case_when_regexp.txt @@ -1,22 +1,26 @@ @ ProgramNode (location: (1,0)-(1,26)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,26)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseNode (location: (1,0)-(1,26)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "x" │ ├── closing_loc: ∅ │ └── unescaped: "x" ├── conditions: (length: 1) │ └── @ WhenNode (location: (1,9)-(1,22)) + │ ├── flags: ∅ │ ├── keyword_loc: (1,9)-(1,13) = "when" │ ├── conditions: (length: 1) │ │ └── @ RegularExpressionNode (location: (1,14)-(1,17)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,14)-(1,15) = "/" │ │ ├── content_loc: (1,15)-(1,16) = "x" │ │ ├── closing_loc: (1,16)-(1,17) = "/" diff --git a/test/prism/snapshots/seattlerb/bug_comma.txt b/test/prism/snapshots/seattlerb/bug_comma.txt index af886999b5..0d65d2805a 100644 --- a/test/prism/snapshots/seattlerb/bug_comma.txt +++ b/test/prism/snapshots/seattlerb/bug_comma.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(1,24)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,24)) + ├── flags: ∅ └── body: (length: 1) └── @ IfNode (location: (1,0)-(1,24)) + ├── flags: newline ├── if_keyword_loc: (1,0)-(1,2) = "if" ├── predicate: │ @ CallNode (location: (1,3)-(1,15)) diff --git a/test/prism/snapshots/seattlerb/bug_cond_pct.txt b/test/prism/snapshots/seattlerb/bug_cond_pct.txt index cbf3bc3ef0..69d9b7e175 100644 --- a/test/prism/snapshots/seattlerb/bug_cond_pct.txt +++ b/test/prism/snapshots/seattlerb/bug_cond_pct.txt @@ -1,16 +1,20 @@ @ ProgramNode (location: (1,0)-(1,28)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,28)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseNode (location: (1,0)-(1,28)) + ├── flags: newline ├── predicate: ∅ ├── conditions: (length: 1) │ └── @ WhenNode (location: (1,6)-(1,23)) + │ ├── flags: ∅ │ ├── keyword_loc: (1,6)-(1,10) = "when" │ ├── conditions: (length: 1) │ │ └── @ RegularExpressionNode (location: (1,11)-(1,23)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,11)-(1,14) = "%r%" │ │ ├── content_loc: (1,14)-(1,22) = "blahblah" │ │ ├── closing_loc: (1,22)-(1,23) = "%" diff --git a/test/prism/snapshots/seattlerb/bug_hash_args.txt b/test/prism/snapshots/seattlerb/bug_hash_args.txt index e138db4d49..cd90f0ebc6 100644 --- a/test/prism/snapshots/seattlerb/bug_hash_args.txt +++ b/test/prism/snapshots/seattlerb/bug_hash_args.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,19)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,19)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,19)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :foo @@ -15,7 +17,7 @@ │ ├── flags: contains_keywords │ └── arguments: (length: 2) │ ├── @ SymbolNode (location: (1,4)-(1,8)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,4)-(1,5) = ":" │ │ ├── value_loc: (1,5)-(1,8) = "bar" │ │ ├── closing_loc: ∅ @@ -24,15 +26,17 @@ │ ├── flags: symbol_keys │ └── elements: (length: 1) │ └── @ AssocNode (location: (1,10)-(1,18)) + │ ├── flags: static_literal │ ├── key: │ │ @ SymbolNode (location: (1,10)-(1,14)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (1,10)-(1,13) = "baz" │ │ ├── closing_loc: (1,13)-(1,14) = ":" │ │ └── unescaped: "baz" │ ├── value: │ │ @ NilNode (location: (1,15)-(1,18)) + │ │ └── flags: static_literal │ └── operator_loc: ∅ ├── closing_loc: (1,18)-(1,19) = ")" └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/bug_hash_args_trailing_comma.txt b/test/prism/snapshots/seattlerb/bug_hash_args_trailing_comma.txt index fe2d7f73c9..8c06cabf1c 100644 --- a/test/prism/snapshots/seattlerb/bug_hash_args_trailing_comma.txt +++ b/test/prism/snapshots/seattlerb/bug_hash_args_trailing_comma.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,20)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,20)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,20)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :foo @@ -15,7 +17,7 @@ │ ├── flags: contains_keywords │ └── arguments: (length: 2) │ ├── @ SymbolNode (location: (1,4)-(1,8)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,4)-(1,5) = ":" │ │ ├── value_loc: (1,5)-(1,8) = "bar" │ │ ├── closing_loc: ∅ @@ -24,15 +26,17 @@ │ ├── flags: symbol_keys │ └── elements: (length: 1) │ └── @ AssocNode (location: (1,10)-(1,18)) + │ ├── flags: static_literal │ ├── key: │ │ @ SymbolNode (location: (1,10)-(1,14)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (1,10)-(1,13) = "baz" │ │ ├── closing_loc: (1,13)-(1,14) = ":" │ │ └── unescaped: "baz" │ ├── value: │ │ @ NilNode (location: (1,15)-(1,18)) + │ │ └── flags: static_literal │ └── operator_loc: ∅ ├── closing_loc: (1,19)-(1,20) = ")" └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/bug_hash_interp_array.txt b/test/prism/snapshots/seattlerb/bug_hash_interp_array.txt index 433fb02411..3d9fc56850 100644 --- a/test/prism/snapshots/seattlerb/bug_hash_interp_array.txt +++ b/test/prism/snapshots/seattlerb/bug_hash_interp_array.txt @@ -1,24 +1,30 @@ @ ProgramNode (location: (1,0)-(1,13)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,13)) + ├── flags: ∅ └── body: (length: 1) └── @ HashNode (location: (1,0)-(1,13)) + ├── flags: newline ├── opening_loc: (1,0)-(1,1) = "{" ├── elements: (length: 1) │ └── @ AssocNode (location: (1,2)-(1,11)) + │ ├── flags: ∅ │ ├── key: │ │ @ InterpolatedSymbolNode (location: (1,2)-(1,8)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (1,2)-(1,3) = "\"" │ │ ├── parts: (length: 1) │ │ │ └── @ EmbeddedStatementsNode (location: (1,3)-(1,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (1,3)-(1,5) = "\#{" │ │ │ ├── statements: ∅ │ │ │ └── closing_loc: (1,5)-(1,6) = "}" │ │ └── closing_loc: (1,6)-(1,8) = "\":" │ ├── value: │ │ @ ArrayNode (location: (1,9)-(1,11)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── elements: (length: 0) │ │ ├── opening_loc: (1,9)-(1,10) = "[" │ │ └── closing_loc: (1,10)-(1,11) = "]" diff --git a/test/prism/snapshots/seattlerb/bug_masgn_right.txt b/test/prism/snapshots/seattlerb/bug_masgn_right.txt index b4c75c4607..e5b635d802 100644 --- a/test/prism/snapshots/seattlerb/bug_masgn_right.txt +++ b/test/prism/snapshots/seattlerb/bug_masgn_right.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,17)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,16 +16,20 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,17)) + ├── flags: ∅ ├── locals: [:a, :b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,15)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :a │ │ │ └── @ MultiTargetNode (location: (1,8)-(1,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 2) │ │ │ │ ├── @ RequiredParameterNode (location: (1,9)-(1,10)) │ │ │ │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/bug_not_parens.txt b/test/prism/snapshots/seattlerb/bug_not_parens.txt index 9e4a416d4a..163fb79564 100644 --- a/test/prism/snapshots/seattlerb/bug_not_parens.txt +++ b/test/prism/snapshots/seattlerb/bug_not_parens.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,6)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,4)-(1,5)) │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/seattlerb/bug_op_asgn_rescue.txt b/test/prism/snapshots/seattlerb/bug_op_asgn_rescue.txt index 33016f32f8..9da753aece 100644 --- a/test/prism/snapshots/seattlerb/bug_op_asgn_rescue.txt +++ b/test/prism/snapshots/seattlerb/bug_op_asgn_rescue.txt @@ -1,13 +1,17 @@ @ ProgramNode (location: (1,0)-(1,18)) +├── flags: ∅ ├── locals: [:a] └── statements: @ StatementsNode (location: (1,0)-(1,18)) + ├── flags: ∅ └── body: (length: 1) └── @ LocalVariableOrWriteNode (location: (1,0)-(1,18)) + ├── flags: newline ├── name_loc: (1,0)-(1,1) = "a" ├── operator_loc: (1,2)-(1,5) = "||=" ├── value: │ @ RescueModifierNode (location: (1,6)-(1,18)) + │ ├── flags: ∅ │ ├── expression: │ │ @ CallNode (location: (1,6)-(1,7)) │ │ ├── flags: variable_call, ignore_visibility @@ -22,5 +26,6 @@ │ ├── keyword_loc: (1,8)-(1,14) = "rescue" │ └── rescue_expression: │ @ NilNode (location: (1,15)-(1,18)) + │ └── flags: static_literal ├── name: :a └── depth: 0 diff --git a/test/prism/snapshots/seattlerb/call_and.txt b/test/prism/snapshots/seattlerb/call_and.txt index d3e88b3f9e..640f355c4a 100644 --- a/test/prism/snapshots/seattlerb/call_and.txt +++ b/test/prism/snapshots/seattlerb/call_and.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,5)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,5)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :& @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,4)-(1,5)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_arg_assoc.txt b/test/prism/snapshots/seattlerb/call_arg_assoc.txt index f489bc7f19..b8ec907031 100644 --- a/test/prism/snapshots/seattlerb/call_arg_assoc.txt +++ b/test/prism/snapshots/seattlerb/call_arg_assoc.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,10)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,10)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,10)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -15,19 +17,20 @@ │ ├── flags: contains_keywords │ └── arguments: (length: 2) │ ├── @ IntegerNode (location: (1,2)-(1,3)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── @ KeywordHashNode (location: (1,5)-(1,9)) │ ├── flags: ∅ │ └── elements: (length: 1) │ └── @ AssocNode (location: (1,5)-(1,9)) + │ ├── flags: static_literal │ ├── key: │ │ @ IntegerNode (location: (1,5)-(1,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── value: │ │ @ IntegerNode (location: (1,8)-(1,9)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ └── operator_loc: (1,6)-(1,8) = "=>" ├── closing_loc: (1,9)-(1,10) = ")" diff --git a/test/prism/snapshots/seattlerb/call_arg_assoc_kwsplat.txt b/test/prism/snapshots/seattlerb/call_arg_assoc_kwsplat.txt index 5b191396de..11142b2721 100644 --- a/test/prism/snapshots/seattlerb/call_arg_assoc_kwsplat.txt +++ b/test/prism/snapshots/seattlerb/call_arg_assoc_kwsplat.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,16)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,16)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,16)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -15,28 +17,30 @@ │ ├── flags: contains_keywords, contains_keyword_splat │ └── arguments: (length: 2) │ ├── @ IntegerNode (location: (1,2)-(1,3)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── @ KeywordHashNode (location: (1,5)-(1,15)) │ ├── flags: ∅ │ └── elements: (length: 2) │ ├── @ AssocNode (location: (1,5)-(1,10)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (1,5)-(1,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (1,5)-(1,7) = "kw" │ │ │ ├── closing_loc: (1,7)-(1,8) = ":" │ │ │ └── unescaped: "kw" │ │ ├── value: │ │ │ @ IntegerNode (location: (1,9)-(1,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: ∅ │ └── @ AssocSplatNode (location: (1,12)-(1,15)) + │ ├── flags: ∅ │ ├── value: │ │ @ IntegerNode (location: (1,14)-(1,15)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ └── operator_loc: (1,12)-(1,14) = "**" ├── closing_loc: (1,15)-(1,16) = ")" diff --git a/test/prism/snapshots/seattlerb/call_arg_kwsplat.txt b/test/prism/snapshots/seattlerb/call_arg_kwsplat.txt index f95b80cf7d..853f7103e3 100644 --- a/test/prism/snapshots/seattlerb/call_arg_kwsplat.txt +++ b/test/prism/snapshots/seattlerb/call_arg_kwsplat.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,9)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,9)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,9)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -28,9 +30,10 @@ │ ├── flags: ∅ │ └── elements: (length: 1) │ └── @ AssocSplatNode (location: (1,5)-(1,8)) + │ ├── flags: ∅ │ ├── value: │ │ @ IntegerNode (location: (1,7)-(1,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (1,5)-(1,7) = "**" ├── closing_loc: (1,8)-(1,9) = ")" diff --git a/test/prism/snapshots/seattlerb/call_args_assoc_quoted.txt b/test/prism/snapshots/seattlerb/call_args_assoc_quoted.txt index 8946206a3f..615bee5b4a 100644 --- a/test/prism/snapshots/seattlerb/call_args_assoc_quoted.txt +++ b/test/prism/snapshots/seattlerb/call_args_assoc_quoted.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(5,8)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(5,8)) + ├── flags: ∅ └── body: (length: 3) ├── @ CallNode (location: (1,0)-(1,11)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :x @@ -18,14 +20,18 @@ │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (1,2)-(1,11)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ InterpolatedSymbolNode (location: (1,2)-(1,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (1,2)-(1,3) = "\"" │ │ │ ├── parts: (length: 1) │ │ │ │ └── @ EmbeddedStatementsNode (location: (1,3)-(1,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── opening_loc: (1,3)-(1,5) = "\#{" │ │ │ │ ├── statements: │ │ │ │ │ @ StatementsNode (location: (1,5)-(1,6)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ CallNode (location: (1,5)-(1,6)) │ │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -41,13 +47,13 @@ │ │ │ └── closing_loc: (1,7)-(1,9) = "\":" │ │ ├── value: │ │ │ @ IntegerNode (location: (1,9)-(1,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 42 │ │ └── operator_loc: ∅ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (3,0)-(3,8)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :x @@ -61,22 +67,23 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (3,2)-(3,8)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (3,2)-(3,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (3,2)-(3,3) = "\"" │ │ │ ├── value_loc: (3,3)-(3,4) = "k" │ │ │ ├── closing_loc: (3,4)-(3,6) = "\":" │ │ │ └── unescaped: "k" │ │ ├── value: │ │ │ @ IntegerNode (location: (3,6)-(3,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 42 │ │ └── operator_loc: ∅ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ CallNode (location: (5,0)-(5,8)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :x @@ -90,16 +97,17 @@ │ ├── flags: symbol_keys │ └── elements: (length: 1) │ └── @ AssocNode (location: (5,2)-(5,8)) + │ ├── flags: static_literal │ ├── key: │ │ @ SymbolNode (location: (5,2)-(5,6)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (5,2)-(5,3) = "'" │ │ ├── value_loc: (5,3)-(5,4) = "k" │ │ ├── closing_loc: (5,4)-(5,6) = "':" │ │ └── unescaped: "k" │ ├── value: │ │ @ IntegerNode (location: (5,6)-(5,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 42 │ └── operator_loc: ∅ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/call_args_assoc_trailing_comma.txt b/test/prism/snapshots/seattlerb/call_args_assoc_trailing_comma.txt index 0ba5891cf6..00bc620f54 100644 --- a/test/prism/snapshots/seattlerb/call_args_assoc_trailing_comma.txt +++ b/test/prism/snapshots/seattlerb/call_args_assoc_trailing_comma.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,11)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,11)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,11)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -15,19 +17,20 @@ │ ├── flags: contains_keywords │ └── arguments: (length: 2) │ ├── @ IntegerNode (location: (1,2)-(1,3)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── @ KeywordHashNode (location: (1,5)-(1,9)) │ ├── flags: ∅ │ └── elements: (length: 1) │ └── @ AssocNode (location: (1,5)-(1,9)) + │ ├── flags: static_literal │ ├── key: │ │ @ IntegerNode (location: (1,5)-(1,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── value: │ │ @ IntegerNode (location: (1,8)-(1,9)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ └── operator_loc: (1,6)-(1,8) = "=>" ├── closing_loc: (1,10)-(1,11) = ")" diff --git a/test/prism/snapshots/seattlerb/call_args_command.txt b/test/prism/snapshots/seattlerb/call_args_command.txt index f4a55ff58c..6fe112f224 100644 --- a/test/prism/snapshots/seattlerb/call_args_command.txt +++ b/test/prism/snapshots/seattlerb/call_args_command.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,9)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,9)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,9)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(1,1)) │ ├── flags: variable_call, ignore_visibility @@ -46,7 +48,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (1,8)-(1,9)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── closing_loc: ∅ │ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_array_arg.txt b/test/prism/snapshots/seattlerb/call_array_arg.txt index 95d2f4859d..cec613bc58 100644 --- a/test/prism/snapshots/seattlerb/call_array_arg.txt +++ b/test/prism/snapshots/seattlerb/call_array_arg.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,13)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,13)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,13)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :== @@ -18,16 +20,16 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ ArrayNode (location: (1,5)-(1,13)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ SymbolNode (location: (1,6)-(1,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (1,6)-(1,7) = ":" │ │ │ ├── value_loc: (1,7)-(1,8) = "b" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "b" │ │ └── @ SymbolNode (location: (1,10)-(1,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,10)-(1,11) = ":" │ │ ├── value_loc: (1,11)-(1,12) = "c" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/call_array_block_call.txt b/test/prism/snapshots/seattlerb/call_array_block_call.txt index e02740e7f5..4a044924e9 100644 --- a/test/prism/snapshots/seattlerb/call_array_block_call.txt +++ b/test/prism/snapshots/seattlerb/call_array_block_call.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,19)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,19)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,19)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -18,6 +20,7 @@ │ ├── flags: ∅ │ ├── elements: (length: 2) │ │ ├── @ NilNode (location: (1,4)-(1,7)) + │ │ │ └── flags: static_literal │ │ └── @ CallNode (location: (1,9)-(1,17)) │ │ ├── flags: ignore_visibility │ │ ├── receiver: ∅ @@ -29,6 +32,7 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (1,11)-(1,17)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: ∅ diff --git a/test/prism/snapshots/seattlerb/call_array_lambda_block_call.txt b/test/prism/snapshots/seattlerb/call_array_lambda_block_call.txt index c6aa722812..dca64e5f7b 100644 --- a/test/prism/snapshots/seattlerb/call_array_lambda_block_call.txt +++ b/test/prism/snapshots/seattlerb/call_array_lambda_block_call.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(2,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(2,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(2,3)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -18,12 +20,14 @@ │ ├── flags: ∅ │ ├── elements: (length: 1) │ │ └── @ LambdaNode (location: (1,3)-(1,10)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── operator_loc: (1,3)-(1,5) = "->" │ │ ├── opening_loc: (1,8)-(1,9) = "{" │ │ ├── closing_loc: (1,9)-(1,10) = "}" │ │ ├── parameters: │ │ │ @ BlockParametersNode (location: (1,5)-(1,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── parameters: ∅ │ │ │ ├── locals: (length: 0) │ │ │ ├── opening_loc: (1,5)-(1,6) = "(" @@ -34,6 +38,7 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,12)-(2,3)) + ├── flags: ∅ ├── locals: [] ├── parameters: ∅ ├── body: ∅ diff --git a/test/prism/snapshots/seattlerb/call_array_lit_inline_hash.txt b/test/prism/snapshots/seattlerb/call_array_lit_inline_hash.txt index 091e21c00a..f83c7a55e5 100644 --- a/test/prism/snapshots/seattlerb/call_array_lit_inline_hash.txt +++ b/test/prism/snapshots/seattlerb/call_array_lit_inline_hash.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,16)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,16)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,16)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ ├── elements: (length: 2) │ │ ├── @ SymbolNode (location: (1,3)-(1,5)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (1,3)-(1,4) = ":" │ │ │ ├── value_loc: (1,4)-(1,5) = "b" │ │ │ ├── closing_loc: ∅ @@ -27,16 +29,17 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (1,7)-(1,14)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (1,7)-(1,9)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (1,7)-(1,8) = ":" │ │ │ ├── value_loc: (1,8)-(1,9) = "c" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "c" │ │ ├── value: │ │ │ @ IntegerNode (location: (1,13)-(1,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── operator_loc: (1,10)-(1,12) = "=>" │ ├── opening_loc: (1,2)-(1,3) = "[" diff --git a/test/prism/snapshots/seattlerb/call_assoc.txt b/test/prism/snapshots/seattlerb/call_assoc.txt index 60784e6095..a4e4512a08 100644 --- a/test/prism/snapshots/seattlerb/call_assoc.txt +++ b/test/prism/snapshots/seattlerb/call_assoc.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,7)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,7)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -18,13 +20,14 @@ │ ├── flags: ∅ │ └── elements: (length: 1) │ └── @ AssocNode (location: (1,2)-(1,6)) + │ ├── flags: static_literal │ ├── key: │ │ @ IntegerNode (location: (1,2)-(1,3)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── value: │ │ @ IntegerNode (location: (1,5)-(1,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ └── operator_loc: (1,3)-(1,5) = "=>" ├── closing_loc: (1,6)-(1,7) = ")" diff --git a/test/prism/snapshots/seattlerb/call_assoc_new.txt b/test/prism/snapshots/seattlerb/call_assoc_new.txt index dc25fb2493..6cbc942a6b 100644 --- a/test/prism/snapshots/seattlerb/call_assoc_new.txt +++ b/test/prism/snapshots/seattlerb/call_assoc_new.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,6)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -18,16 +20,17 @@ │ ├── flags: symbol_keys │ └── elements: (length: 1) │ └── @ AssocNode (location: (1,2)-(1,5)) + │ ├── flags: static_literal │ ├── key: │ │ @ SymbolNode (location: (1,2)-(1,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (1,2)-(1,3) = "a" │ │ ├── closing_loc: (1,3)-(1,4) = ":" │ │ └── unescaped: "a" │ ├── value: │ │ @ IntegerNode (location: (1,4)-(1,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ └── operator_loc: ∅ ├── closing_loc: (1,5)-(1,6) = ")" diff --git a/test/prism/snapshots/seattlerb/call_assoc_new_if_multiline.txt b/test/prism/snapshots/seattlerb/call_assoc_new_if_multiline.txt index b3d652e879..e0236f3974 100644 --- a/test/prism/snapshots/seattlerb/call_assoc_new_if_multiline.txt +++ b/test/prism/snapshots/seattlerb/call_assoc_new_if_multiline.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(5,4)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(5,4)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(5,4)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -18,19 +20,21 @@ │ ├── flags: symbol_keys │ └── elements: (length: 1) │ └── @ AssocNode (location: (1,2)-(5,3)) + │ ├── flags: ∅ │ ├── key: │ │ @ SymbolNode (location: (1,2)-(1,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (1,2)-(1,3) = "b" │ │ ├── closing_loc: (1,3)-(1,4) = ":" │ │ └── unescaped: "b" │ ├── value: │ │ @ IfNode (location: (1,5)-(5,3)) + │ │ ├── flags: newline │ │ ├── if_keyword_loc: (1,5)-(1,7) = "if" │ │ ├── predicate: │ │ │ @ SymbolNode (location: (1,8)-(1,10)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (1,8)-(1,9) = ":" │ │ │ ├── value_loc: (1,9)-(1,10) = "c" │ │ │ ├── closing_loc: ∅ @@ -38,18 +42,21 @@ │ │ ├── then_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (2,0)-(2,1)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ IntegerNode (location: (2,0)-(2,1)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: newline, static_literal, decimal │ │ │ └── value: 1 │ │ ├── consequent: │ │ │ @ ElseNode (location: (3,0)-(5,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── else_keyword_loc: (3,0)-(3,4) = "else" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (4,0)-(4,1)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (4,0)-(4,1)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── end_keyword_loc: (5,0)-(5,3) = "end" │ │ └── end_keyword_loc: (5,0)-(5,3) = "end" diff --git a/test/prism/snapshots/seattlerb/call_assoc_trailing_comma.txt b/test/prism/snapshots/seattlerb/call_assoc_trailing_comma.txt index b2012f0f75..a240775d69 100644 --- a/test/prism/snapshots/seattlerb/call_assoc_trailing_comma.txt +++ b/test/prism/snapshots/seattlerb/call_assoc_trailing_comma.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,8)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,8)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,8)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -18,13 +20,14 @@ │ ├── flags: ∅ │ └── elements: (length: 1) │ └── @ AssocNode (location: (1,2)-(1,6)) + │ ├── flags: static_literal │ ├── key: │ │ @ IntegerNode (location: (1,2)-(1,3)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── value: │ │ @ IntegerNode (location: (1,5)-(1,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── operator_loc: (1,3)-(1,5) = "=>" ├── closing_loc: (1,7)-(1,8) = ")" diff --git a/test/prism/snapshots/seattlerb/call_bang_command_call.txt b/test/prism/snapshots/seattlerb/call_bang_command_call.txt index 5e4e10d953..e226d65278 100644 --- a/test/prism/snapshots/seattlerb/call_bang_command_call.txt +++ b/test/prism/snapshots/seattlerb/call_bang_command_call.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,7)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,7)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,2)-(1,7)) │ ├── flags: ∅ @@ -28,7 +30,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (1,6)-(1,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── closing_loc: ∅ │ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_bang_squiggle.txt b/test/prism/snapshots/seattlerb/call_bang_squiggle.txt index bf11bc0136..5c10841f73 100644 --- a/test/prism/snapshots/seattlerb/call_bang_squiggle.txt +++ b/test/prism/snapshots/seattlerb/call_bang_squiggle.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,6)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :!~ @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,5)-(1,6)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_begin_call_block_call.txt b/test/prism/snapshots/seattlerb/call_begin_call_block_call.txt index 1aa994c8e6..240a3aaa76 100644 --- a/test/prism/snapshots/seattlerb/call_begin_call_block_call.txt +++ b/test/prism/snapshots/seattlerb/call_begin_call_block_call.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(3,3)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -15,12 +17,14 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ BeginNode (location: (1,2)-(3,3)) + │ ├── flags: ∅ │ ├── begin_keyword_loc: (1,2)-(1,7) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (2,0)-(2,10)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (2,0)-(2,10)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (2,0)-(2,1)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -40,6 +44,7 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (2,4)-(2,10)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: ∅ diff --git a/test/prism/snapshots/seattlerb/call_block_arg_named.txt b/test/prism/snapshots/seattlerb/call_block_arg_named.txt index f87c29cf2e..db6fc7a059 100644 --- a/test/prism/snapshots/seattlerb/call_block_arg_named.txt +++ b/test/prism/snapshots/seattlerb/call_block_arg_named.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,6)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :x @@ -14,6 +16,7 @@ ├── closing_loc: (1,6)-(1,7) = ")" └── block: @ BlockArgumentNode (location: (1,2)-(1,6)) + ├── flags: ∅ ├── expression: │ @ CallNode (location: (1,3)-(1,6)) │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/seattlerb/call_carat.txt b/test/prism/snapshots/seattlerb/call_carat.txt index 856e9a7847..88ed832aca 100644 --- a/test/prism/snapshots/seattlerb/call_carat.txt +++ b/test/prism/snapshots/seattlerb/call_carat.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,5)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,5)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :^ @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,4)-(1,5)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_colon2.txt b/test/prism/snapshots/seattlerb/call_colon2.txt index 98bfc63126..85e39cd363 100644 --- a/test/prism/snapshots/seattlerb/call_colon2.txt +++ b/test/prism/snapshots/seattlerb/call_colon2.txt @@ -1,12 +1,15 @@ @ ProgramNode (location: (1,0)-(1,4)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,4)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,4)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ ConstantReadNode (location: (1,0)-(1,1)) + │ ├── flags: ∅ │ └── name: :A ├── call_operator_loc: (1,1)-(1,3) = "::" ├── name: :b diff --git a/test/prism/snapshots/seattlerb/call_colon_parens.txt b/test/prism/snapshots/seattlerb/call_colon_parens.txt index 6d10171a2b..19141c3413 100644 --- a/test/prism/snapshots/seattlerb/call_colon_parens.txt +++ b/test/prism/snapshots/seattlerb/call_colon_parens.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,5)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,5)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: (1,1)-(1,3) = "::" ├── name: :call diff --git a/test/prism/snapshots/seattlerb/call_div.txt b/test/prism/snapshots/seattlerb/call_div.txt index ba62fb87bd..55a410977c 100644 --- a/test/prism/snapshots/seattlerb/call_div.txt +++ b/test/prism/snapshots/seattlerb/call_div.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,5)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,5)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :/ @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,4)-(1,5)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_dot_parens.txt b/test/prism/snapshots/seattlerb/call_dot_parens.txt index c9b7084699..29b592a960 100644 --- a/test/prism/snapshots/seattlerb/call_dot_parens.txt +++ b/test/prism/snapshots/seattlerb/call_dot_parens.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,4)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,4)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,4)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: (1,1)-(1,2) = "." ├── name: :call diff --git a/test/prism/snapshots/seattlerb/call_env.txt b/test/prism/snapshots/seattlerb/call_env.txt index fd1f95388e..933621594f 100644 --- a/test/prism/snapshots/seattlerb/call_env.txt +++ b/test/prism/snapshots/seattlerb/call_env.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,7)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,7)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(1,1)) │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/seattlerb/call_eq3.txt b/test/prism/snapshots/seattlerb/call_eq3.txt index e636e15725..52e4b00c5c 100644 --- a/test/prism/snapshots/seattlerb/call_eq3.txt +++ b/test/prism/snapshots/seattlerb/call_eq3.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,7)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,7)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :=== @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,6)-(1,7)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_gt.txt b/test/prism/snapshots/seattlerb/call_gt.txt index 90f419a412..b1ee64e57c 100644 --- a/test/prism/snapshots/seattlerb/call_gt.txt +++ b/test/prism/snapshots/seattlerb/call_gt.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,5)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,5)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :> @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,4)-(1,5)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_kwsplat.txt b/test/prism/snapshots/seattlerb/call_kwsplat.txt index e0620dc5f0..17773e7693 100644 --- a/test/prism/snapshots/seattlerb/call_kwsplat.txt +++ b/test/prism/snapshots/seattlerb/call_kwsplat.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,6)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -18,9 +20,10 @@ │ ├── flags: ∅ │ └── elements: (length: 1) │ └── @ AssocSplatNode (location: (1,2)-(1,5)) + │ ├── flags: ∅ │ ├── value: │ │ @ IntegerNode (location: (1,4)-(1,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (1,2)-(1,4) = "**" ├── closing_loc: (1,5)-(1,6) = ")" diff --git a/test/prism/snapshots/seattlerb/call_leading_dots.txt b/test/prism/snapshots/seattlerb/call_leading_dots.txt index e8435d7e7a..5562afcd70 100644 --- a/test/prism/snapshots/seattlerb/call_leading_dots.txt +++ b/test/prism/snapshots/seattlerb/call_leading_dots.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(3,2)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,2)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(3,2)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(2,2)) │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/call_leading_dots_comment.txt b/test/prism/snapshots/seattlerb/call_leading_dots_comment.txt index e5dfb72372..f285e42cbf 100644 --- a/test/prism/snapshots/seattlerb/call_leading_dots_comment.txt +++ b/test/prism/snapshots/seattlerb/call_leading_dots_comment.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(4,2)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,2)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(4,2)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(2,2)) │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/call_lt.txt b/test/prism/snapshots/seattlerb/call_lt.txt index 0020494e57..6c5b5f2213 100644 --- a/test/prism/snapshots/seattlerb/call_lt.txt +++ b/test/prism/snapshots/seattlerb/call_lt.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,5)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,5)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :< @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,4)-(1,5)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_lte.txt b/test/prism/snapshots/seattlerb/call_lte.txt index e6630a7f28..9fadb1f981 100644 --- a/test/prism/snapshots/seattlerb/call_lte.txt +++ b/test/prism/snapshots/seattlerb/call_lte.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,6)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :<= @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,5)-(1,6)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_not.txt b/test/prism/snapshots/seattlerb/call_not.txt index 86c6892303..e9df80fb9f 100644 --- a/test/prism/snapshots/seattlerb/call_not.txt +++ b/test/prism/snapshots/seattlerb/call_not.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,6)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,4)-(1,6)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 42 ├── call_operator_loc: ∅ ├── name: :! diff --git a/test/prism/snapshots/seattlerb/call_pipe.txt b/test/prism/snapshots/seattlerb/call_pipe.txt index 855e986ef6..8cf68211a9 100644 --- a/test/prism/snapshots/seattlerb/call_pipe.txt +++ b/test/prism/snapshots/seattlerb/call_pipe.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,5)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,5)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :| @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,4)-(1,5)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_rshift.txt b/test/prism/snapshots/seattlerb/call_rshift.txt index 26e593db18..28948a044f 100644 --- a/test/prism/snapshots/seattlerb/call_rshift.txt +++ b/test/prism/snapshots/seattlerb/call_rshift.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,6)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :>> @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,5)-(1,6)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_self_brackets.txt b/test/prism/snapshots/seattlerb/call_self_brackets.txt index 16ca69b5c2..e4f5e2c413 100644 --- a/test/prism/snapshots/seattlerb/call_self_brackets.txt +++ b/test/prism/snapshots/seattlerb/call_self_brackets.txt @@ -1,12 +1,15 @@ @ ProgramNode (location: (1,0)-(1,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,7)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,7)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: │ @ SelfNode (location: (1,0)-(1,4)) + │ └── flags: ∅ ├── call_operator_loc: ∅ ├── name: :[] ├── message_loc: (1,4)-(1,7) = "[1]" @@ -16,7 +19,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,5)-(1,6)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── closing_loc: (1,6)-(1,7) = "]" └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_spaceship.txt b/test/prism/snapshots/seattlerb/call_spaceship.txt index 8d43c3f971..4ea67f2e00 100644 --- a/test/prism/snapshots/seattlerb/call_spaceship.txt +++ b/test/prism/snapshots/seattlerb/call_spaceship.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,7)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,7)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :<=> @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,6)-(1,7)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_stabby_do_end_with_block.txt b/test/prism/snapshots/seattlerb/call_stabby_do_end_with_block.txt index 242db9e9cb..0e83d334ca 100644 --- a/test/prism/snapshots/seattlerb/call_stabby_do_end_with_block.txt +++ b/test/prism/snapshots/seattlerb/call_stabby_do_end_with_block.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,22)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,22)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,22)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -15,6 +17,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ LambdaNode (location: (1,2)-(1,13)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── operator_loc: (1,2)-(1,4) = "->" │ ├── opening_loc: (1,5)-(1,7) = "do" @@ -22,20 +25,23 @@ │ ├── parameters: ∅ │ └── body: │ @ StatementsNode (location: (1,8)-(1,9)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ IntegerNode (location: (1,8)-(1,9)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 1 ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,14)-(1,22)) + ├── flags: ∅ ├── locals: [] ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (1,17)-(1,18)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ IntegerNode (location: (1,17)-(1,18)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 2 ├── opening_loc: (1,14)-(1,16) = "do" └── closing_loc: (1,19)-(1,22) = "end" diff --git a/test/prism/snapshots/seattlerb/call_stabby_with_braces_block.txt b/test/prism/snapshots/seattlerb/call_stabby_with_braces_block.txt index 7c3ab8dad8..705f8b8d02 100644 --- a/test/prism/snapshots/seattlerb/call_stabby_with_braces_block.txt +++ b/test/prism/snapshots/seattlerb/call_stabby_with_braces_block.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,19)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,19)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,19)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -15,6 +17,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ LambdaNode (location: (1,2)-(1,10)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── operator_loc: (1,2)-(1,4) = "->" │ ├── opening_loc: (1,5)-(1,6) = "{" @@ -22,20 +25,23 @@ │ ├── parameters: ∅ │ └── body: │ @ StatementsNode (location: (1,7)-(1,8)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ IntegerNode (location: (1,7)-(1,8)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 1 ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,11)-(1,19)) + ├── flags: ∅ ├── locals: [] ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (1,14)-(1,15)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ IntegerNode (location: (1,14)-(1,15)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 2 ├── opening_loc: (1,11)-(1,13) = "do" └── closing_loc: (1,16)-(1,19) = "end" diff --git a/test/prism/snapshots/seattlerb/call_star.txt b/test/prism/snapshots/seattlerb/call_star.txt index 49aee1672c..06bee81f30 100644 --- a/test/prism/snapshots/seattlerb/call_star.txt +++ b/test/prism/snapshots/seattlerb/call_star.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,5)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,5)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :* @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,4)-(1,5)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_star2.txt b/test/prism/snapshots/seattlerb/call_star2.txt index cc2532cc7c..bd367d2e75 100644 --- a/test/prism/snapshots/seattlerb/call_star2.txt +++ b/test/prism/snapshots/seattlerb/call_star2.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,6)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,6)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :** @@ -18,7 +20,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,5)-(1,6)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── closing_loc: ∅ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_trailing_comma.txt b/test/prism/snapshots/seattlerb/call_trailing_comma.txt index fe28a3ad3e..01cb77a25a 100644 --- a/test/prism/snapshots/seattlerb/call_trailing_comma.txt +++ b/test/prism/snapshots/seattlerb/call_trailing_comma.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,5)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,5)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -15,7 +17,7 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ IntegerNode (location: (1,2)-(1,3)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── closing_loc: (1,4)-(1,5) = ")" └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/call_trailing_dots.txt b/test/prism/snapshots/seattlerb/call_trailing_dots.txt index b0e23eb27b..73ffd855ad 100644 --- a/test/prism/snapshots/seattlerb/call_trailing_dots.txt +++ b/test/prism/snapshots/seattlerb/call_trailing_dots.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(3,1)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,1)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(3,1)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(2,1)) │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/call_unary_bang.txt b/test/prism/snapshots/seattlerb/call_unary_bang.txt index 782cc83b10..b08f070693 100644 --- a/test/prism/snapshots/seattlerb/call_unary_bang.txt +++ b/test/prism/snapshots/seattlerb/call_unary_bang.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(1,2)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,2)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,2)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ IntegerNode (location: (1,1)-(1,2)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── call_operator_loc: ∅ ├── name: :! diff --git a/test/prism/snapshots/seattlerb/case_in.txt b/test/prism/snapshots/seattlerb/case_in.txt index 950d66647e..6df3b407a6 100644 --- a/test/prism/snapshots/seattlerb/case_in.txt +++ b/test/prism/snapshots/seattlerb/case_in.txt @@ -1,34 +1,42 @@ @ ProgramNode (location: (1,0)-(111,3)) +├── flags: ∅ ├── locals: [:b, :_, :lhs, :x, :rhs, :c, :e] └── statements: @ StatementsNode (location: (1,0)-(111,3)) + ├── flags: ∅ └── body: (length: 28) ├── @ CaseMatchNode (location: (1,0)-(3,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (1,5)-(1,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,5)-(1,6) = ":" │ │ ├── value_loc: (1,6)-(1,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (2,0)-(2,8)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ HashPatternNode (location: (2,4)-(2,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── elements: (length: 1) │ │ │ │ └── @ AssocNode (location: (2,4)-(2,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (2,4)-(2,8)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: (2,4)-(2,5) = "\"" │ │ │ │ │ ├── value_loc: (2,5)-(2,6) = "b" │ │ │ │ │ ├── closing_loc: (2,6)-(2,8) = "\":" │ │ │ │ │ └── unescaped: "b" │ │ │ │ ├── value: │ │ │ │ │ @ ImplicitNode (location: (2,5)-(2,6)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── value: │ │ │ │ │ @ LocalVariableTargetNode (location: (2,5)-(2,6)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :b │ │ │ │ │ └── depth: 0 │ │ │ │ └── operator_loc: ∅ @@ -42,27 +50,29 @@ │ ├── case_keyword_loc: (1,0)-(1,4) = "case" │ └── end_keyword_loc: (3,0)-(3,3) = "end" ├── @ CaseMatchNode (location: (5,0)-(7,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (5,5)-(5,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (5,5)-(5,6) = ":" │ │ ├── value_loc: (5,6)-(5,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (6,0)-(6,10)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayNode (location: (6,3)-(6,10)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 2) │ │ │ │ ├── @ SymbolNode (location: (6,6)-(6,7)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (6,6)-(6,7) = "a" │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── unescaped: "a" │ │ │ │ └── @ SymbolNode (location: (6,8)-(6,9)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (6,8)-(6,9) = "b" │ │ │ │ ├── closing_loc: ∅ @@ -76,15 +86,17 @@ │ ├── case_keyword_loc: (5,0)-(5,4) = "case" │ └── end_keyword_loc: (7,0)-(7,3) = "end" ├── @ CaseMatchNode (location: (9,0)-(11,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (9,5)-(9,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (9,5)-(9,6) = ":" │ │ ├── value_loc: (9,6)-(9,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (10,0)-(10,10)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayNode (location: (10,3)-(10,10)) │ │ │ ├── flags: ∅ @@ -110,27 +122,29 @@ │ ├── case_keyword_loc: (9,0)-(9,4) = "case" │ └── end_keyword_loc: (11,0)-(11,3) = "end" ├── @ CaseMatchNode (location: (13,0)-(15,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (13,5)-(13,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (13,5)-(13,6) = ":" │ │ ├── value_loc: (13,6)-(13,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (14,0)-(14,10)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayNode (location: (14,3)-(14,10)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── elements: (length: 2) │ │ │ │ ├── @ SymbolNode (location: (14,6)-(14,7)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (14,6)-(14,7) = "a" │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── unescaped: "a" │ │ │ │ └── @ SymbolNode (location: (14,8)-(14,9)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (14,8)-(14,9) = "b" │ │ │ │ ├── closing_loc: ∅ @@ -144,15 +158,17 @@ │ ├── case_keyword_loc: (13,0)-(13,4) = "case" │ └── end_keyword_loc: (15,0)-(15,3) = "end" ├── @ CaseMatchNode (location: (17,0)-(19,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (17,5)-(17,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (17,5)-(17,6) = ":" │ │ ├── value_loc: (17,6)-(17,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (18,0)-(18,10)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayNode (location: (18,3)-(18,10)) │ │ │ ├── flags: ∅ @@ -178,24 +194,27 @@ │ ├── case_keyword_loc: (17,0)-(17,4) = "case" │ └── end_keyword_loc: (19,0)-(19,3) = "end" ├── @ CaseMatchNode (location: (21,0)-(23,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (21,5)-(21,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (21,5)-(21,6) = ":" │ │ ├── value_loc: (21,6)-(21,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (22,0)-(22,10)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ParenthesesNode (location: (22,3)-(22,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ RangeNode (location: (22,4)-(22,9)) - │ │ │ │ ├── flags: exclude_end + │ │ │ │ ├── flags: static_literal, exclude_end │ │ │ │ ├── left: ∅ │ │ │ │ ├── right: │ │ │ │ │ @ IntegerNode (location: (22,7)-(22,9)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 10 │ │ │ │ └── operator_loc: (22,4)-(22,7) = "..." │ │ │ ├── opening_loc: (22,3)-(22,4) = "(" @@ -207,24 +226,27 @@ │ ├── case_keyword_loc: (21,0)-(21,4) = "case" │ └── end_keyword_loc: (23,0)-(23,3) = "end" ├── @ CaseMatchNode (location: (25,0)-(27,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (25,5)-(25,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (25,5)-(25,6) = ":" │ │ ├── value_loc: (25,6)-(25,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (26,0)-(26,9)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ParenthesesNode (location: (26,3)-(26,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ RangeNode (location: (26,4)-(26,8)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: static_literal │ │ │ │ ├── left: ∅ │ │ │ │ ├── right: │ │ │ │ │ @ IntegerNode (location: (26,6)-(26,8)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 10 │ │ │ │ └── operator_loc: (26,4)-(26,6) = ".." │ │ │ ├── opening_loc: (26,3)-(26,4) = "(" @@ -236,23 +258,26 @@ │ ├── case_keyword_loc: (25,0)-(25,4) = "case" │ └── end_keyword_loc: (27,0)-(27,3) = "end" ├── @ CaseMatchNode (location: (29,0)-(31,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (29,5)-(29,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (29,5)-(29,6) = ":" │ │ ├── value_loc: (29,6)-(29,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (30,0)-(30,9)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ParenthesesNode (location: (30,3)-(30,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ RangeNode (location: (30,4)-(30,8)) - │ │ │ │ ├── flags: exclude_end + │ │ │ │ ├── flags: static_literal, exclude_end │ │ │ │ ├── left: │ │ │ │ │ @ IntegerNode (location: (30,4)-(30,5)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── right: ∅ │ │ │ │ └── operator_loc: (30,5)-(30,8) = "..." @@ -265,27 +290,30 @@ │ ├── case_keyword_loc: (29,0)-(29,4) = "case" │ └── end_keyword_loc: (31,0)-(31,3) = "end" ├── @ CaseMatchNode (location: (33,0)-(35,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (33,5)-(33,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (33,5)-(33,6) = ":" │ │ ├── value_loc: (33,6)-(33,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (34,0)-(34,10)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ParenthesesNode (location: (34,3)-(34,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ RangeNode (location: (34,4)-(34,9)) - │ │ │ │ ├── flags: exclude_end + │ │ │ │ ├── flags: static_literal, exclude_end │ │ │ │ ├── left: │ │ │ │ │ @ IntegerNode (location: (34,4)-(34,5)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── right: │ │ │ │ │ @ IntegerNode (location: (34,8)-(34,9)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 3 │ │ │ │ └── operator_loc: (34,5)-(34,8) = "..." │ │ │ ├── opening_loc: (34,3)-(34,4) = "(" @@ -297,20 +325,23 @@ │ ├── case_keyword_loc: (33,0)-(33,4) = "case" │ └── end_keyword_loc: (35,0)-(35,3) = "end" ├── @ CaseMatchNode (location: (37,0)-(39,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (37,5)-(37,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (37,5)-(37,6) = ":" │ │ ├── value_loc: (37,6)-(37,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (38,0)-(38,7)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ParenthesesNode (location: (38,3)-(38,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ IntegerNode (location: (38,4)-(38,6)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 42 │ │ │ ├── opening_loc: (38,3)-(38,4) = "(" │ │ │ └── closing_loc: (38,6)-(38,7) = ")" @@ -321,21 +352,25 @@ │ ├── case_keyword_loc: (37,0)-(37,4) = "case" │ └── end_keyword_loc: (39,0)-(39,3) = "end" ├── @ CaseMatchNode (location: (41,0)-(43,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (41,5)-(41,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (41,5)-(41,6) = ":" │ │ ├── value_loc: (41,6)-(41,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (42,0)-(42,8)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ HashPatternNode (location: (42,3)-(42,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── elements: (length: 0) │ │ │ ├── rest: │ │ │ │ @ NoKeywordsParameterNode (location: (42,3)-(42,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (42,3)-(42,5) = "**" │ │ │ │ └── keyword_loc: (42,5)-(42,8) = "nil" │ │ │ ├── opening_loc: ∅ @@ -347,18 +382,20 @@ │ ├── case_keyword_loc: (41,0)-(41,4) = "case" │ └── end_keyword_loc: (43,0)-(43,3) = "end" ├── @ CaseMatchNode (location: (45,0)-(47,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (45,5)-(45,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (45,5)-(45,6) = ":" │ │ ├── value_loc: (45,6)-(45,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (46,0)-(46,11)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ RegularExpressionNode (location: (46,3)-(46,11)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (46,3)-(46,4) = "/" │ │ │ ├── content_loc: (46,4)-(46,10) = "regexp" │ │ │ ├── closing_loc: (46,10)-(46,11) = "/" @@ -370,35 +407,40 @@ │ ├── case_keyword_loc: (45,0)-(45,4) = "case" │ └── end_keyword_loc: (47,0)-(47,3) = "end" ├── @ CaseMatchNode (location: (49,0)-(51,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (49,5)-(49,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (49,5)-(49,6) = ":" │ │ ├── value_loc: (49,6)-(49,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (50,0)-(50,13)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (50,3)-(50,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ SymbolNode (location: (50,3)-(50,5)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (50,3)-(50,4) = ":" │ │ │ │ ├── value_loc: (50,4)-(50,5) = "b" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "b" │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (50,7)-(50,9)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (50,7)-(50,8) = "*" │ │ │ │ └── expression: │ │ │ │ @ LocalVariableTargetNode (location: (50,8)-(50,9)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :_ │ │ │ │ └── depth: 0 │ │ │ ├── posts: (length: 1) │ │ │ │ └── @ SymbolNode (location: (50,11)-(50,13)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (50,11)-(50,12) = ":" │ │ │ │ ├── value_loc: (50,12)-(50,13) = "c" │ │ │ │ ├── closing_loc: ∅ @@ -412,30 +454,34 @@ │ ├── case_keyword_loc: (49,0)-(49,4) = "case" │ └── end_keyword_loc: (51,0)-(51,3) = "end" ├── @ CaseMatchNode (location: (53,0)-(55,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (53,5)-(53,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (53,5)-(53,6) = ":" │ │ ├── value_loc: (53,6)-(53,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (54,0)-(54,11)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (54,3)-(54,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── requireds: (length: 2) │ │ │ │ ├── @ SymbolNode (location: (54,3)-(54,5)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: (54,3)-(54,4) = ":" │ │ │ │ │ ├── value_loc: (54,4)-(54,5) = "b" │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── unescaped: "b" │ │ │ │ └── @ ArrayPatternNode (location: (54,7)-(54,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ └── @ SymbolNode (location: (54,8)-(54,10)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: (54,8)-(54,9) = ":" │ │ │ │ │ ├── value_loc: (54,9)-(54,10) = "c" │ │ │ │ │ ├── closing_loc: ∅ @@ -455,19 +501,23 @@ │ ├── case_keyword_loc: (53,0)-(53,4) = "case" │ └── end_keyword_loc: (55,0)-(55,3) = "end" ├── @ CaseMatchNode (location: (57,0)-(59,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (57,5)-(57,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (57,5)-(57,6) = ":" │ │ ├── value_loc: (57,6)-(57,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (58,0)-(58,11)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (58,3)-(58,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: │ │ │ │ @ ConstantReadNode (location: (58,3)-(58,9)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :Symbol │ │ │ ├── requireds: (length: 0) │ │ │ ├── rest: ∅ @@ -481,36 +531,45 @@ │ ├── case_keyword_loc: (57,0)-(57,4) = "case" │ └── end_keyword_loc: (59,0)-(59,3) = "end" ├── @ CaseMatchNode (location: (61,0)-(63,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (61,5)-(61,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (61,5)-(61,6) = ":" │ │ ├── value_loc: (61,6)-(61,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (62,0)-(62,24)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ FindPatternNode (location: (62,3)-(62,24)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: │ │ │ │ @ ConstantReadNode (location: (62,3)-(62,9)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :Symbol │ │ │ ├── left: │ │ │ │ @ SplatNode (location: (62,10)-(62,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (62,10)-(62,11) = "*" │ │ │ │ └── expression: │ │ │ │ @ LocalVariableTargetNode (location: (62,11)-(62,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :lhs │ │ │ │ └── depth: 0 │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ LocalVariableTargetNode (location: (62,16)-(62,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :x │ │ │ │ └── depth: 0 │ │ │ ├── right: │ │ │ │ @ SplatNode (location: (62,19)-(62,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (62,19)-(62,20) = "*" │ │ │ │ └── expression: │ │ │ │ @ LocalVariableTargetNode (location: (62,20)-(62,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :rhs │ │ │ │ └── depth: 0 │ │ │ ├── opening_loc: (62,9)-(62,10) = "(" @@ -522,36 +581,45 @@ │ ├── case_keyword_loc: (61,0)-(61,4) = "case" │ └── end_keyword_loc: (63,0)-(63,3) = "end" ├── @ CaseMatchNode (location: (65,0)-(67,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (65,5)-(65,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (65,5)-(65,6) = ":" │ │ ├── value_loc: (65,6)-(65,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (66,0)-(66,24)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ FindPatternNode (location: (66,3)-(66,24)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: │ │ │ │ @ ConstantReadNode (location: (66,3)-(66,9)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :Symbol │ │ │ ├── left: │ │ │ │ @ SplatNode (location: (66,10)-(66,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (66,10)-(66,11) = "*" │ │ │ │ └── expression: │ │ │ │ @ LocalVariableTargetNode (location: (66,11)-(66,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :lhs │ │ │ │ └── depth: 0 │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ LocalVariableTargetNode (location: (66,16)-(66,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :x │ │ │ │ └── depth: 0 │ │ │ ├── right: │ │ │ │ @ SplatNode (location: (66,19)-(66,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (66,19)-(66,20) = "*" │ │ │ │ └── expression: │ │ │ │ @ LocalVariableTargetNode (location: (66,20)-(66,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :rhs │ │ │ │ └── depth: 0 │ │ │ ├── opening_loc: (66,9)-(66,10) = "[" @@ -563,28 +631,34 @@ │ ├── case_keyword_loc: (65,0)-(65,4) = "case" │ └── end_keyword_loc: (67,0)-(67,3) = "end" ├── @ CaseMatchNode (location: (69,0)-(71,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (69,5)-(69,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (69,5)-(69,6) = ":" │ │ ├── value_loc: (69,6)-(69,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (70,0)-(70,22)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (70,3)-(70,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── requireds: (length: 2) │ │ │ │ ├── @ LambdaNode (location: (70,4)-(70,18)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── locals: [:b] │ │ │ │ │ ├── operator_loc: (70,4)-(70,6) = "->" │ │ │ │ │ ├── opening_loc: (70,10)-(70,11) = "{" │ │ │ │ │ ├── closing_loc: (70,17)-(70,18) = "}" │ │ │ │ │ ├── parameters: │ │ │ │ │ │ @ BlockParametersNode (location: (70,6)-(70,9)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── parameters: │ │ │ │ │ │ │ @ ParametersNode (location: (70,7)-(70,8)) + │ │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ │ │ │ └── @ RequiredParameterNode (location: (70,7)-(70,8)) │ │ │ │ │ │ │ │ ├── flags: ∅ @@ -600,9 +674,12 @@ │ │ │ │ │ │ └── closing_loc: (70,8)-(70,9) = ")" │ │ │ │ │ └── body: │ │ │ │ │ @ StatementsNode (location: (70,12)-(70,16)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ TrueNode (location: (70,12)-(70,16)) + │ │ │ │ │ └── flags: newline, static_literal │ │ │ │ └── @ LocalVariableTargetNode (location: (70,20)-(70,21)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :c │ │ │ │ └── depth: 0 │ │ │ ├── rest: ∅ @@ -616,49 +693,58 @@ │ ├── case_keyword_loc: (69,0)-(69,4) = "case" │ └── end_keyword_loc: (71,0)-(71,3) = "end" ├── @ CaseMatchNode (location: (73,0)-(75,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (73,5)-(73,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (73,5)-(73,6) = ":" │ │ ├── value_loc: (73,6)-(73,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (74,0)-(74,28)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (74,3)-(74,28)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── requireds: (length: 4) │ │ │ │ ├── @ SymbolNode (location: (74,4)-(74,6)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: (74,4)-(74,5) = ":" │ │ │ │ │ ├── value_loc: (74,5)-(74,6) = "a" │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── unescaped: "a" │ │ │ │ ├── @ LocalVariableTargetNode (location: (74,8)-(74,9)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :b │ │ │ │ │ └── depth: 0 │ │ │ │ ├── @ LocalVariableTargetNode (location: (74,11)-(74,12)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :c │ │ │ │ │ └── depth: 0 │ │ │ │ └── @ ArrayPatternNode (location: (74,14)-(74,27)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ └── @ SymbolNode (location: (74,15)-(74,17)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: (74,15)-(74,16) = ":" │ │ │ │ │ ├── value_loc: (74,16)-(74,17) = "d" │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── unescaped: "d" │ │ │ │ ├── rest: │ │ │ │ │ @ SplatNode (location: (74,19)-(74,21)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── operator_loc: (74,19)-(74,20) = "*" │ │ │ │ │ └── expression: │ │ │ │ │ @ LocalVariableTargetNode (location: (74,20)-(74,21)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :e │ │ │ │ │ └── depth: 0 │ │ │ │ ├── posts: (length: 1) │ │ │ │ │ └── @ NilNode (location: (74,23)-(74,26)) + │ │ │ │ │ └── flags: static_literal │ │ │ │ ├── opening_loc: (74,14)-(74,15) = "[" │ │ │ │ └── closing_loc: (74,26)-(74,27) = "]" │ │ │ ├── rest: ∅ @@ -672,27 +758,33 @@ │ ├── case_keyword_loc: (73,0)-(73,4) = "case" │ └── end_keyword_loc: (75,0)-(75,3) = "end" ├── @ CaseMatchNode (location: (77,0)-(79,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (77,5)-(77,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (77,5)-(77,6) = ":" │ │ ├── value_loc: (77,6)-(77,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (78,0)-(78,12)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (78,3)-(78,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ ConstantReadNode (location: (78,4)-(78,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :A │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (78,7)-(78,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (78,7)-(78,8) = "*" │ │ │ │ └── expression: ∅ │ │ │ ├── posts: (length: 1) │ │ │ │ └── @ ConstantReadNode (location: (78,10)-(78,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :B │ │ │ ├── opening_loc: (78,3)-(78,4) = "[" │ │ │ └── closing_loc: (78,11)-(78,12) = "]" @@ -703,29 +795,34 @@ │ ├── case_keyword_loc: (77,0)-(77,4) = "case" │ └── end_keyword_loc: (79,0)-(79,3) = "end" ├── @ CaseMatchNode (location: (81,0)-(83,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (81,5)-(81,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (81,5)-(81,6) = ":" │ │ ├── value_loc: (81,6)-(81,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (82,0)-(82,22)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (82,3)-(82,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── requireds: (length: 2) │ │ │ │ ├── @ ArrayPatternNode (location: (82,4)-(82,11)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── constant: ∅ │ │ │ │ │ ├── requireds: (length: 2) │ │ │ │ │ │ ├── @ SymbolNode (location: (82,5)-(82,7)) - │ │ │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ │ │ ├── opening_loc: (82,5)-(82,6) = ":" │ │ │ │ │ │ │ ├── value_loc: (82,6)-(82,7) = "b" │ │ │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ │ │ └── unescaped: "b" │ │ │ │ │ │ └── @ LocalVariableTargetNode (location: (82,9)-(82,10)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── name: :c │ │ │ │ │ │ └── depth: 0 │ │ │ │ │ ├── rest: ∅ @@ -733,17 +830,20 @@ │ │ │ │ │ ├── opening_loc: (82,4)-(82,5) = "[" │ │ │ │ │ └── closing_loc: (82,10)-(82,11) = "]" │ │ │ │ └── @ ArrayPatternNode (location: (82,13)-(82,21)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── requireds: (length: 2) │ │ │ │ │ ├── @ SymbolNode (location: (82,14)-(82,16)) - │ │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ │ ├── opening_loc: (82,14)-(82,15) = ":" │ │ │ │ │ │ ├── value_loc: (82,15)-(82,16) = "d" │ │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ │ └── unescaped: "d" │ │ │ │ │ └── @ PinnedVariableNode (location: (82,18)-(82,20)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── variable: │ │ │ │ │ │ @ LocalVariableReadNode (location: (82,19)-(82,20)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── name: :e │ │ │ │ │ │ └── depth: 0 │ │ │ │ │ └── operator_loc: (82,18)-(82,19) = "^" @@ -762,17 +862,20 @@ │ ├── case_keyword_loc: (81,0)-(81,4) = "case" │ └── end_keyword_loc: (83,0)-(83,3) = "end" ├── @ CaseMatchNode (location: (85,0)-(87,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (85,5)-(85,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (85,5)-(85,6) = ":" │ │ ├── value_loc: (85,6)-(85,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (86,0)-(86,5)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (86,3)-(86,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── requireds: (length: 0) │ │ │ ├── rest: ∅ @@ -786,20 +889,24 @@ │ ├── case_keyword_loc: (85,0)-(85,4) = "case" │ └── end_keyword_loc: (87,0)-(87,3) = "end" ├── @ CaseMatchNode (location: (89,0)-(91,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (89,5)-(89,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (89,5)-(89,6) = ":" │ │ ├── value_loc: (89,6)-(89,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (90,0)-(90,9)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (90,3)-(90,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ PinnedExpressionNode (location: (90,4)-(90,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── expression: │ │ │ │ │ @ CallNode (location: (90,6)-(90,7)) │ │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -825,32 +932,41 @@ │ ├── case_keyword_loc: (89,0)-(89,4) = "case" │ └── end_keyword_loc: (91,0)-(91,3) = "end" ├── @ CaseMatchNode (location: (93,0)-(95,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (93,5)-(93,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (93,5)-(93,6) = ":" │ │ ├── value_loc: (93,6)-(93,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (94,0)-(94,19)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (94,3)-(94,19)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── requireds: (length: 3) │ │ │ │ ├── @ PinnedVariableNode (location: (94,4)-(94,7)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── variable: │ │ │ │ │ │ @ InstanceVariableReadNode (location: (94,5)-(94,7)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── name: :@a │ │ │ │ │ └── operator_loc: (94,4)-(94,5) = "^" │ │ │ │ ├── @ PinnedVariableNode (location: (94,9)-(94,12)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── variable: │ │ │ │ │ │ @ GlobalVariableReadNode (location: (94,10)-(94,12)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── name: :$b │ │ │ │ │ └── operator_loc: (94,9)-(94,10) = "^" │ │ │ │ └── @ PinnedVariableNode (location: (94,14)-(94,18)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── variable: │ │ │ │ │ @ ClassVariableReadNode (location: (94,15)-(94,18)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── name: :@@c │ │ │ │ └── operator_loc: (94,14)-(94,15) = "^" │ │ │ ├── rest: ∅ @@ -864,15 +980,17 @@ │ ├── case_keyword_loc: (93,0)-(93,4) = "case" │ └── end_keyword_loc: (95,0)-(95,3) = "end" ├── @ CaseMatchNode (location: (97,0)-(99,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (97,5)-(97,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (97,5)-(97,6) = ":" │ │ ├── value_loc: (97,6)-(97,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (98,0)-(98,12)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ XStringNode (location: (98,3)-(98,12)) │ │ │ ├── flags: ∅ @@ -887,22 +1005,28 @@ │ ├── case_keyword_loc: (97,0)-(97,4) = "case" │ └── end_keyword_loc: (99,0)-(99,3) = "end" ├── @ CaseMatchNode (location: (101,0)-(103,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (101,5)-(101,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (101,5)-(101,6) = ":" │ │ ├── value_loc: (101,6)-(101,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (102,0)-(102,16)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (102,3)-(102,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── requireds: (length: 3) │ │ │ │ ├── @ NilNode (location: (102,3)-(102,6)) + │ │ │ │ │ └── flags: static_literal │ │ │ │ ├── @ NilNode (location: (102,8)-(102,11)) + │ │ │ │ │ └── flags: static_literal │ │ │ │ └── @ NilNode (location: (102,13)-(102,16)) + │ │ │ │ └── flags: static_literal │ │ │ ├── rest: ∅ │ │ │ ├── posts: (length: 0) │ │ │ ├── opening_loc: ∅ @@ -914,31 +1038,37 @@ │ ├── case_keyword_loc: (101,0)-(101,4) = "case" │ └── end_keyword_loc: (103,0)-(103,3) = "end" ├── @ CaseMatchNode (location: (105,0)-(107,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ SymbolNode (location: (105,5)-(105,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (105,5)-(105,6) = ":" │ │ ├── value_loc: (105,6)-(105,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (106,0)-(106,11)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ HashPatternNode (location: (106,3)-(106,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: ∅ │ │ │ ├── elements: (length: 1) │ │ │ │ └── @ AssocNode (location: (106,5)-(106,9)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (106,5)-(106,9)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: (106,5)-(106,6) = "\"" │ │ │ │ │ ├── value_loc: (106,6)-(106,7) = "b" │ │ │ │ │ ├── closing_loc: (106,7)-(106,9) = "\":" │ │ │ │ │ └── unescaped: "b" │ │ │ │ ├── value: │ │ │ │ │ @ ImplicitNode (location: (106,6)-(106,7)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── value: │ │ │ │ │ @ LocalVariableTargetNode (location: (106,6)-(106,7)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :b │ │ │ │ │ └── depth: 0 │ │ │ │ └── operator_loc: ∅ @@ -952,17 +1082,20 @@ │ ├── case_keyword_loc: (105,0)-(105,4) = "case" │ └── end_keyword_loc: (107,0)-(107,3) = "end" └── @ CaseMatchNode (location: (109,0)-(111,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (109,5)-(109,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (109,5)-(109,6) = ":" │ ├── value_loc: (109,6)-(109,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (110,0)-(110,5)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ HashPatternNode (location: (110,3)-(110,5)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── elements: (length: 0) │ │ ├── rest: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_31.txt b/test/prism/snapshots/seattlerb/case_in_31.txt index fdf5ce2a29..f2bb9dac28 100644 --- a/test/prism/snapshots/seattlerb/case_in_31.txt +++ b/test/prism/snapshots/seattlerb/case_in_31.txt @@ -1,33 +1,40 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [:c] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(4,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (2,3)-(2,11)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ SymbolNode (location: (2,4)-(2,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (2,4)-(2,5) = ":" │ │ │ ├── value_loc: (2,5)-(2,6) = "b" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "b" │ │ ├── rest: │ │ │ @ SplatNode (location: (2,8)-(2,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (2,8)-(2,9) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (2,9)-(2,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :c │ │ │ └── depth: 0 │ │ ├── posts: (length: 0) @@ -35,9 +42,10 @@ │ │ └── closing_loc: (2,10)-(2,11) = "]" │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ ├── value_loc: (3,3)-(3,4) = "d" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_37.txt b/test/prism/snapshots/seattlerb/case_in_37.txt index 1a1d887b4f..9083ac2d41 100644 --- a/test/prism/snapshots/seattlerb/case_in_37.txt +++ b/test/prism/snapshots/seattlerb/case_in_37.txt @@ -1,38 +1,47 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(4,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ HashPatternNode (location: (2,3)-(2,19)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── elements: (length: 1) │ │ │ └── @ AssocNode (location: (2,5)-(2,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (2,5)-(2,7)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (2,5)-(2,6) = "b" │ │ │ │ ├── closing_loc: (2,6)-(2,7) = ":" │ │ │ │ └── unescaped: "b" │ │ │ ├── value: │ │ │ │ @ ArrayPatternNode (location: (2,8)-(2,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ └── @ ConstantReadNode (location: (2,9)-(2,13)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── name: :Hash │ │ │ │ ├── rest: │ │ │ │ │ @ SplatNode (location: (2,15)-(2,16)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── operator_loc: (2,15)-(2,16) = "*" │ │ │ │ │ └── expression: ∅ │ │ │ │ ├── posts: (length: 0) @@ -44,9 +53,10 @@ │ │ └── closing_loc: (2,18)-(2,19) = "}" │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ ├── value_loc: (3,3)-(3,4) = "c" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_42.txt b/test/prism/snapshots/seattlerb/case_in_42.txt index f985d6bc8d..a498fa63b0 100644 --- a/test/prism/snapshots/seattlerb/case_in_42.txt +++ b/test/prism/snapshots/seattlerb/case_in_42.txt @@ -1,33 +1,40 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [:_] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(3,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(2,18)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (2,3)-(2,9)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ SymbolNode (location: (2,3)-(2,5)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (2,3)-(2,4) = ":" │ │ │ ├── value_loc: (2,4)-(2,5) = "b" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "b" │ │ ├── rest: │ │ │ @ SplatNode (location: (2,7)-(2,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (2,7)-(2,8) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (2,8)-(2,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :_ │ │ │ └── depth: 0 │ │ ├── posts: (length: 0) @@ -35,8 +42,10 @@ │ │ └── closing_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (2,15)-(2,18)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NilNode (location: (2,15)-(2,18)) + │ │ └── flags: newline, static_literal │ ├── in_loc: (2,0)-(2,2) = "in" │ └── then_loc: (2,10)-(2,14) = "then" ├── consequent: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_42_2.txt b/test/prism/snapshots/seattlerb/case_in_42_2.txt index c399ba1bfa..909874bc0c 100644 --- a/test/prism/snapshots/seattlerb/case_in_42_2.txt +++ b/test/prism/snapshots/seattlerb/case_in_42_2.txt @@ -1,29 +1,37 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [:list] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(3,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(2,20)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (2,3)-(2,11)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (2,3)-(2,4)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── requireds: (length: 0) │ │ ├── rest: │ │ │ @ SplatNode (location: (2,5)-(2,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (2,5)-(2,6) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (2,6)-(2,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :list │ │ │ └── depth: 0 │ │ ├── posts: (length: 0) @@ -31,8 +39,10 @@ │ │ └── closing_loc: (2,10)-(2,11) = ")" │ ├── statements: │ │ @ StatementsNode (location: (2,17)-(2,20)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NilNode (location: (2,17)-(2,20)) + │ │ └── flags: newline, static_literal │ ├── in_loc: (2,0)-(2,2) = "in" │ └── then_loc: (2,12)-(2,16) = "then" ├── consequent: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_47.txt b/test/prism/snapshots/seattlerb/case_in_47.txt index 99baebce05..fdc31f3bba 100644 --- a/test/prism/snapshots/seattlerb/case_in_47.txt +++ b/test/prism/snapshots/seattlerb/case_in_47.txt @@ -1,35 +1,41 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(4,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (2,3)-(2,14)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 0) │ │ ├── rest: │ │ │ @ SplatNode (location: (2,4)-(2,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (2,4)-(2,5) = "*" │ │ │ └── expression: ∅ │ │ ├── posts: (length: 2) │ │ │ ├── @ SymbolNode (location: (2,7)-(2,9)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (2,7)-(2,8) = ":" │ │ │ │ ├── value_loc: (2,8)-(2,9) = "b" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "b" │ │ │ └── @ SymbolNode (location: (2,11)-(2,13)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (2,11)-(2,12) = ":" │ │ │ ├── value_loc: (2,12)-(2,13) = "c" │ │ │ ├── closing_loc: ∅ @@ -38,9 +44,10 @@ │ │ └── closing_loc: (2,13)-(2,14) = "]" │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ ├── value_loc: (3,3)-(3,4) = "d" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_67.txt b/test/prism/snapshots/seattlerb/case_in_67.txt index 4bab417d57..372b8fe221 100644 --- a/test/prism/snapshots/seattlerb/case_in_67.txt +++ b/test/prism/snapshots/seattlerb/case_in_67.txt @@ -1,31 +1,37 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(3,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(2,15)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ RangeNode (location: (2,3)-(2,6)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (2,3)-(2,4)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (2,4)-(2,6) = ".." │ ├── statements: │ │ @ StatementsNode (location: (2,12)-(2,15)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NilNode (location: (2,12)-(2,15)) + │ │ └── flags: newline, static_literal │ ├── in_loc: (2,0)-(2,2) = "in" │ └── then_loc: (2,7)-(2,11) = "then" ├── consequent: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_86.txt b/test/prism/snapshots/seattlerb/case_in_86.txt index 082aa74eca..2cb5dd6867 100644 --- a/test/prism/snapshots/seattlerb/case_in_86.txt +++ b/test/prism/snapshots/seattlerb/case_in_86.txt @@ -1,21 +1,24 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(3,3)) + ├── flags: newline ├── predicate: │ @ ArrayNode (location: (1,5)-(1,13)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ SymbolNode (location: (1,6)-(1,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (1,6)-(1,7) = ":" │ │ │ ├── value_loc: (1,7)-(1,8) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ └── @ SymbolNode (location: (1,10)-(1,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,10)-(1,11) = ":" │ │ ├── value_loc: (1,11)-(1,12) = "b" │ │ ├── closing_loc: ∅ @@ -24,17 +27,21 @@ │ └── closing_loc: (1,12)-(1,13) = "]" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(2,25)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (2,3)-(2,16)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ ConstantPathNode (location: (2,3)-(2,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── parent: ∅ │ │ │ ├── name: :NilClass │ │ │ ├── delimiter_loc: (2,3)-(2,5) = "::" │ │ │ └── name_loc: (2,5)-(2,13) = "NilClass" │ │ ├── rest: │ │ │ @ SplatNode (location: (2,15)-(2,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (2,15)-(2,16) = "*" │ │ │ └── expression: ∅ │ │ ├── posts: (length: 0) @@ -42,8 +49,10 @@ │ │ └── closing_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (2,22)-(2,25)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NilNode (location: (2,22)-(2,25)) + │ │ └── flags: newline, static_literal │ ├── in_loc: (2,0)-(2,2) = "in" │ └── then_loc: (2,17)-(2,21) = "then" ├── consequent: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_86_2.txt b/test/prism/snapshots/seattlerb/case_in_86_2.txt index 346264f907..f02387c52d 100644 --- a/test/prism/snapshots/seattlerb/case_in_86_2.txt +++ b/test/prism/snapshots/seattlerb/case_in_86_2.txt @@ -1,21 +1,24 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(3,3)) + ├── flags: newline ├── predicate: │ @ ArrayNode (location: (1,5)-(1,13)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ SymbolNode (location: (1,6)-(1,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (1,6)-(1,7) = ":" │ │ │ ├── value_loc: (1,7)-(1,8) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ └── @ SymbolNode (location: (1,10)-(1,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,10)-(1,11) = ":" │ │ ├── value_loc: (1,11)-(1,12) = "b" │ │ ├── closing_loc: ∅ @@ -24,16 +27,20 @@ │ └── closing_loc: (1,12)-(1,13) = "]" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(2,25)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (2,3)-(2,16)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 0) │ │ ├── rest: │ │ │ @ SplatNode (location: (2,3)-(2,4)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (2,3)-(2,4) = "*" │ │ │ └── expression: ∅ │ │ ├── posts: (length: 1) │ │ │ └── @ ConstantPathNode (location: (2,6)-(2,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── parent: ∅ │ │ │ ├── name: :NilClass │ │ │ ├── delimiter_loc: (2,6)-(2,8) = "::" @@ -42,8 +49,10 @@ │ │ └── closing_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (2,22)-(2,25)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NilNode (location: (2,22)-(2,25)) + │ │ └── flags: newline, static_literal │ ├── in_loc: (2,0)-(2,2) = "in" │ └── then_loc: (2,17)-(2,21) = "then" ├── consequent: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_array_pat_const.txt b/test/prism/snapshots/seattlerb/case_in_array_pat_const.txt index f361e8d458..64684df203 100644 --- a/test/prism/snapshots/seattlerb/case_in_array_pat_const.txt +++ b/test/prism/snapshots/seattlerb/case_in_array_pat_const.txt @@ -1,25 +1,32 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [:c] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(4,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (2,3)-(2,7)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (2,3)-(2,4)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :B │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (2,5)-(2,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :c │ │ │ └── depth: 0 │ │ ├── rest: ∅ @@ -28,9 +35,10 @@ │ │ └── closing_loc: (2,6)-(2,7) = "]" │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ ├── value_loc: (3,3)-(3,4) = "d" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_array_pat_const2.txt b/test/prism/snapshots/seattlerb/case_in_array_pat_const2.txt index d6fb80ef90..6a14e0271a 100644 --- a/test/prism/snapshots/seattlerb/case_in_array_pat_const2.txt +++ b/test/prism/snapshots/seattlerb/case_in_array_pat_const2.txt @@ -1,30 +1,38 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [:d] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(4,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (2,3)-(2,10)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantPathNode (location: (2,3)-(2,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── parent: │ │ │ │ @ ConstantReadNode (location: (2,3)-(2,4)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :B │ │ │ ├── name: :C │ │ │ ├── delimiter_loc: (2,4)-(2,6) = "::" │ │ │ └── name_loc: (2,6)-(2,7) = "C" │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (2,8)-(2,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :d │ │ │ └── depth: 0 │ │ ├── rest: ∅ @@ -33,9 +41,10 @@ │ │ └── closing_loc: (2,9)-(2,10) = "]" │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ ├── value_loc: (3,3)-(3,4) = "e" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_array_pat_paren_assign.txt b/test/prism/snapshots/seattlerb/case_in_array_pat_paren_assign.txt index 8d185b250a..9d617078fd 100644 --- a/test/prism/snapshots/seattlerb/case_in_array_pat_paren_assign.txt +++ b/test/prism/snapshots/seattlerb/case_in_array_pat_paren_assign.txt @@ -1,30 +1,39 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [:d] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(4,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ ArrayPatternNode (location: (2,3)-(2,12)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (2,3)-(2,4)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :B │ │ ├── requireds: (length: 1) │ │ │ └── @ CapturePatternNode (location: (2,5)-(2,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── value: │ │ │ │ @ ConstantReadNode (location: (2,5)-(2,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :C │ │ │ ├── target: │ │ │ │ @ LocalVariableTargetNode (location: (2,10)-(2,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :d │ │ │ │ └── depth: 0 │ │ │ └── operator_loc: (2,7)-(2,9) = "=>" @@ -34,9 +43,10 @@ │ │ └── closing_loc: (2,11)-(2,12) = ")" │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ ├── value_loc: (3,3)-(3,4) = "d" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_const.txt b/test/prism/snapshots/seattlerb/case_in_const.txt index c4b838aa1d..73f681c7dc 100644 --- a/test/prism/snapshots/seattlerb/case_in_const.txt +++ b/test/prism/snapshots/seattlerb/case_in_const.txt @@ -1,22 +1,29 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(4,3)) + ├── flags: newline ├── predicate: │ @ ConstantReadNode (location: (1,5)-(1,10)) + │ ├── flags: ∅ │ └── name: :Array ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ ConstantReadNode (location: (2,3)-(2,8)) + │ │ ├── flags: ∅ │ │ └── name: :Class │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ ├── value_loc: (3,3)-(3,4) = "b" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_else.txt b/test/prism/snapshots/seattlerb/case_in_else.txt index 5eae7fc1ea..0ad3935ce8 100644 --- a/test/prism/snapshots/seattlerb/case_in_else.txt +++ b/test/prism/snapshots/seattlerb/case_in_else.txt @@ -1,22 +1,29 @@ @ ProgramNode (location: (1,0)-(6,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(6,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(6,3)) + ├── flags: newline ├── predicate: │ @ ConstantReadNode (location: (1,5)-(1,10)) + │ ├── flags: ∅ │ └── name: :Array ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ ConstantReadNode (location: (2,3)-(2,8)) + │ │ ├── flags: ∅ │ │ └── name: :Class │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ ├── value_loc: (3,3)-(3,4) = "b" │ │ ├── closing_loc: ∅ @@ -25,12 +32,14 @@ │ └── then_loc: ∅ ├── consequent: │ @ ElseNode (location: (4,0)-(6,3)) + │ ├── flags: ∅ │ ├── else_keyword_loc: (4,0)-(4,4) = "else" │ ├── statements: │ │ @ StatementsNode (location: (5,2)-(5,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (5,2)-(5,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (5,2)-(5,3) = ":" │ │ ├── value_loc: (5,3)-(5,4) = "c" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_find.txt b/test/prism/snapshots/seattlerb/case_in_find.txt index f84c4c30d0..79d737afa7 100644 --- a/test/prism/snapshots/seattlerb/case_in_find.txt +++ b/test/prism/snapshots/seattlerb/case_in_find.txt @@ -1,40 +1,49 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [:a, :b] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(3,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,2)-(2,15)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ FindPatternNode (location: (2,5)-(2,15)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── left: │ │ │ @ SplatNode (location: (2,5)-(2,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (2,5)-(2,6) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (2,6)-(2,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ ├── requireds: (length: 1) │ │ │ └── @ SymbolNode (location: (2,9)-(2,11)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (2,9)-(2,10) = ":" │ │ │ ├── value_loc: (2,10)-(2,11) = "+" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "+" │ │ ├── right: │ │ │ @ SplatNode (location: (2,13)-(2,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (2,13)-(2,14) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (2,14)-(2,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :b │ │ │ └── depth: 0 │ │ ├── opening_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_find_array.txt b/test/prism/snapshots/seattlerb/case_in_find_array.txt index a757f80346..b874867062 100644 --- a/test/prism/snapshots/seattlerb/case_in_find_array.txt +++ b/test/prism/snapshots/seattlerb/case_in_find_array.txt @@ -1,37 +1,45 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [:c] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(3,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(2,16)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ FindPatternNode (location: (2,3)-(2,16)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── left: │ │ │ @ SplatNode (location: (2,4)-(2,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (2,4)-(2,5) = "*" │ │ │ └── expression: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ SymbolNode (location: (2,7)-(2,9)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (2,7)-(2,8) = ":" │ │ │ │ ├── value_loc: (2,8)-(2,9) = "b" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "b" │ │ │ └── @ LocalVariableTargetNode (location: (2,11)-(2,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :c │ │ │ └── depth: 0 │ │ ├── right: │ │ │ @ SplatNode (location: (2,14)-(2,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (2,14)-(2,15) = "*" │ │ │ └── expression: ∅ │ │ ├── opening_loc: (2,3)-(2,4) = "[" diff --git a/test/prism/snapshots/seattlerb/case_in_hash_pat.txt b/test/prism/snapshots/seattlerb/case_in_hash_pat.txt index e813efa9ee..3a106e973a 100644 --- a/test/prism/snapshots/seattlerb/case_in_hash_pat.txt +++ b/test/prism/snapshots/seattlerb/case_in_hash_pat.txt @@ -1,26 +1,32 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(4,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ HashPatternNode (location: (2,3)-(2,21)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── elements: (length: 2) │ │ │ ├── @ AssocNode (location: (2,5)-(2,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (2,5)-(2,7)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (2,5)-(2,6) = "b" │ │ │ │ │ ├── closing_loc: (2,6)-(2,7) = ":" @@ -34,9 +40,10 @@ │ │ │ │ │ └── unescaped: "c" │ │ │ │ └── operator_loc: ∅ │ │ │ └── @ AssocNode (location: (2,13)-(2,19)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (2,13)-(2,15)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (2,13)-(2,14) = "d" │ │ │ │ ├── closing_loc: (2,14)-(2,15) = ":" @@ -54,9 +61,10 @@ │ │ └── closing_loc: (2,20)-(2,21) = "}" │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ ├── value_loc: (3,3)-(3,4) = "f" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_hash_pat_assign.txt b/test/prism/snapshots/seattlerb/case_in_hash_pat_assign.txt index 790d9d63ff..8494b71025 100644 --- a/test/prism/snapshots/seattlerb/case_in_hash_pat_assign.txt +++ b/test/prism/snapshots/seattlerb/case_in_hash_pat_assign.txt @@ -1,45 +1,55 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [:x, :f] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(4,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ HashPatternNode (location: (2,3)-(2,34)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── elements: (length: 3) │ │ │ ├── @ AssocNode (location: (2,5)-(2,20)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (2,5)-(2,7)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (2,5)-(2,6) = "b" │ │ │ │ │ ├── closing_loc: (2,6)-(2,7) = ":" │ │ │ │ │ └── unescaped: "b" │ │ │ │ ├── value: │ │ │ │ │ @ CapturePatternNode (location: (2,8)-(2,20)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── value: │ │ │ │ │ │ @ ConstantReadNode (location: (2,8)-(2,15)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── name: :Integer │ │ │ │ │ ├── target: │ │ │ │ │ │ @ LocalVariableTargetNode (location: (2,19)-(2,20)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── name: :x │ │ │ │ │ │ └── depth: 0 │ │ │ │ │ └── operator_loc: (2,16)-(2,18) = "=>" │ │ │ │ └── operator_loc: ∅ │ │ │ ├── @ AssocNode (location: (2,22)-(2,28)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (2,22)-(2,24)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (2,22)-(2,23) = "d" │ │ │ │ │ ├── closing_loc: (2,23)-(2,24) = ":" @@ -53,17 +63,20 @@ │ │ │ │ │ └── unescaped: "e" │ │ │ │ └── operator_loc: ∅ │ │ │ └── @ AssocNode (location: (2,30)-(2,32)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (2,30)-(2,32)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (2,30)-(2,31) = "f" │ │ │ │ ├── closing_loc: (2,31)-(2,32) = ":" │ │ │ │ └── unescaped: "f" │ │ │ ├── value: │ │ │ │ @ ImplicitNode (location: (2,30)-(2,31)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── value: │ │ │ │ @ LocalVariableTargetNode (location: (2,30)-(2,31)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :f │ │ │ │ └── depth: 0 │ │ │ └── operator_loc: ∅ @@ -72,9 +85,10 @@ │ │ └── closing_loc: (2,33)-(2,34) = "}" │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ ├── value_loc: (3,3)-(3,4) = "g" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt b/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt index 4c8cfd0e54..c2995013dd 100644 --- a/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt +++ b/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt @@ -1,35 +1,42 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(4,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ HashPatternNode (location: (2,3)-(2,11)) + │ │ ├── flags: ∅ │ │ ├── constant: │ │ │ @ ConstantReadNode (location: (2,3)-(2,4)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :B │ │ ├── elements: (length: 1) │ │ │ └── @ AssocNode (location: (2,5)-(2,10)) + │ │ │ ├── flags: static_literal │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (2,5)-(2,7)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (2,5)-(2,6) = "a" │ │ │ │ ├── closing_loc: (2,6)-(2,7) = ":" │ │ │ │ └── unescaped: "a" │ │ │ ├── value: │ │ │ │ @ IntegerNode (location: (2,8)-(2,10)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 42 │ │ │ └── operator_loc: ∅ │ │ ├── rest: ∅ @@ -37,9 +44,10 @@ │ │ └── closing_loc: (2,10)-(2,11) = ")" │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ ├── value_loc: (3,3)-(3,4) = "d" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_true.txt b/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_true.txt index 8ff95a161f..07f1d54339 100644 --- a/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_true.txt +++ b/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_true.txt @@ -1,41 +1,49 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(4,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ HashPatternNode (location: (2,3)-(2,10)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── elements: (length: 1) │ │ │ └── @ AssocNode (location: (2,3)-(2,10)) + │ │ │ ├── flags: static_literal │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (2,3)-(2,5)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (2,3)-(2,4) = "b" │ │ │ │ ├── closing_loc: (2,4)-(2,5) = ":" │ │ │ │ └── unescaped: "b" │ │ │ ├── value: │ │ │ │ @ TrueNode (location: (2,6)-(2,10)) + │ │ │ │ └── flags: static_literal │ │ │ └── operator_loc: ∅ │ │ ├── rest: ∅ │ │ ├── opening_loc: ∅ │ │ └── closing_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ ├── value_loc: (3,3)-(3,4) = "c" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_hash_pat_rest.txt b/test/prism/snapshots/seattlerb/case_in_hash_pat_rest.txt index b93b889ec5..42e6b3f2a5 100644 --- a/test/prism/snapshots/seattlerb/case_in_hash_pat_rest.txt +++ b/test/prism/snapshots/seattlerb/case_in_hash_pat_rest.txt @@ -1,39 +1,48 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [:c, :rest] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(3,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(2,23)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ HashPatternNode (location: (2,3)-(2,15)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── elements: (length: 1) │ │ │ └── @ AssocNode (location: (2,3)-(2,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (2,3)-(2,5)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (2,3)-(2,4) = "b" │ │ │ │ ├── closing_loc: (2,4)-(2,5) = ":" │ │ │ │ └── unescaped: "b" │ │ │ ├── value: │ │ │ │ @ LocalVariableTargetNode (location: (2,6)-(2,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :c │ │ │ │ └── depth: 0 │ │ │ └── operator_loc: ∅ │ │ ├── rest: │ │ │ @ AssocSplatNode (location: (2,9)-(2,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── value: │ │ │ │ @ LocalVariableTargetNode (location: (2,11)-(2,15)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :rest │ │ │ │ └── depth: 0 │ │ │ └── operator_loc: (2,9)-(2,11) = "**" @@ -41,9 +50,10 @@ │ │ └── closing_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (2,21)-(2,23)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (2,21)-(2,23)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (2,21)-(2,22) = ":" │ │ ├── value_loc: (2,22)-(2,23) = "d" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt b/test/prism/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt index 956e93faa0..d69ff63b9d 100644 --- a/test/prism/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt +++ b/test/prism/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt @@ -1,26 +1,33 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [:rest] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(3,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(2,17)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ HashPatternNode (location: (2,3)-(2,9)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── elements: (length: 0) │ │ ├── rest: │ │ │ @ AssocSplatNode (location: (2,3)-(2,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── value: │ │ │ │ @ LocalVariableTargetNode (location: (2,5)-(2,9)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :rest │ │ │ │ └── depth: 0 │ │ │ └── operator_loc: (2,3)-(2,5) = "**" @@ -28,9 +35,10 @@ │ │ └── closing_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (2,15)-(2,17)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (2,15)-(2,17)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (2,15)-(2,16) = ":" │ │ ├── value_loc: (2,16)-(2,17) = "d" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_if_unless_post_mod.txt b/test/prism/snapshots/seattlerb/case_in_if_unless_post_mod.txt index a21d3e15dd..14ac026790 100644 --- a/test/prism/snapshots/seattlerb/case_in_if_unless_post_mod.txt +++ b/test/prism/snapshots/seattlerb/case_in_if_unless_post_mod.txt @@ -1,36 +1,45 @@ @ ProgramNode (location: (1,0)-(6,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(6,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(6,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 2) │ ├── @ InNode (location: (2,0)-(3,4)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IfNode (location: (2,3)-(2,12)) + │ │ │ ├── flags: newline │ │ │ ├── if_keyword_loc: (2,5)-(2,7) = "if" │ │ │ ├── predicate: │ │ │ │ @ TrueNode (location: (2,8)-(2,12)) + │ │ │ │ └── flags: static_literal │ │ │ ├── then_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (2,3)-(2,4)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ ConstantReadNode (location: (2,3)-(2,4)) + │ │ │ │ ├── flags: newline │ │ │ │ └── name: :A │ │ │ ├── consequent: ∅ │ │ │ └── end_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ │ ├── value_loc: (3,3)-(3,4) = "C" │ │ │ ├── closing_loc: ∅ @@ -38,24 +47,30 @@ │ │ ├── in_loc: (2,0)-(2,2) = "in" │ │ └── then_loc: ∅ │ └── @ InNode (location: (4,0)-(5,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ UnlessNode (location: (4,3)-(4,17)) + │ │ ├── flags: newline │ │ ├── keyword_loc: (4,5)-(4,11) = "unless" │ │ ├── predicate: │ │ │ @ FalseNode (location: (4,12)-(4,17)) + │ │ │ └── flags: static_literal │ │ ├── then_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (4,3)-(4,4)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ ConstantReadNode (location: (4,3)-(4,4)) + │ │ │ ├── flags: newline │ │ │ └── name: :D │ │ ├── consequent: ∅ │ │ └── end_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (5,2)-(5,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (5,2)-(5,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (5,2)-(5,3) = ":" │ │ ├── value_loc: (5,3)-(5,4) = "E" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_multiple.txt b/test/prism/snapshots/seattlerb/case_in_multiple.txt index eba0084f96..d0d790bdb5 100644 --- a/test/prism/snapshots/seattlerb/case_in_multiple.txt +++ b/test/prism/snapshots/seattlerb/case_in_multiple.txt @@ -1,31 +1,38 @@ @ ProgramNode (location: (1,0)-(6,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(6,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(6,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 2) │ ├── @ InNode (location: (2,0)-(3,4)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ConstantPathNode (location: (2,3)-(2,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── parent: │ │ │ │ @ ConstantReadNode (location: (2,3)-(2,4)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :A │ │ │ ├── name: :B │ │ │ ├── delimiter_loc: (2,4)-(2,6) = "::" │ │ │ └── name_loc: (2,6)-(2,7) = "B" │ │ ├── statements: │ │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ │ ├── value_loc: (3,3)-(3,4) = "C" │ │ │ ├── closing_loc: ∅ @@ -33,19 +40,23 @@ │ │ ├── in_loc: (2,0)-(2,2) = "in" │ │ └── then_loc: ∅ │ └── @ InNode (location: (4,0)-(5,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ ConstantPathNode (location: (4,3)-(4,7)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantReadNode (location: (4,3)-(4,4)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :D │ │ ├── name: :E │ │ ├── delimiter_loc: (4,4)-(4,6) = "::" │ │ └── name_loc: (4,6)-(4,7) = "E" │ ├── statements: │ │ @ StatementsNode (location: (5,2)-(5,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (5,2)-(5,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (5,2)-(5,3) = ":" │ │ ├── value_loc: (5,3)-(5,4) = "F" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/case_in_or.txt b/test/prism/snapshots/seattlerb/case_in_or.txt index 7ac6617608..9787f5c1ed 100644 --- a/test/prism/snapshots/seattlerb/case_in_or.txt +++ b/test/prism/snapshots/seattlerb/case_in_or.txt @@ -1,32 +1,40 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 1) └── @ CaseMatchNode (location: (1,0)-(4,3)) + ├── flags: newline ├── predicate: │ @ SymbolNode (location: (1,5)-(1,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (1,5)-(1,6) = ":" │ ├── value_loc: (1,6)-(1,7) = "a" │ ├── closing_loc: ∅ │ └── unescaped: "a" ├── conditions: (length: 1) │ └── @ InNode (location: (2,0)-(3,4)) + │ ├── flags: ∅ │ ├── pattern: │ │ @ AlternationPatternNode (location: (2,3)-(2,8)) + │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ ConstantReadNode (location: (2,3)-(2,4)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :B │ │ ├── right: │ │ │ @ ConstantReadNode (location: (2,7)-(2,8)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :C │ │ └── operator_loc: (2,5)-(2,6) = "|" │ ├── statements: │ │ @ StatementsNode (location: (3,2)-(3,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (3,2)-(3,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,2)-(3,3) = ":" │ │ ├── value_loc: (3,3)-(3,4) = "d" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/class_comments.txt b/test/prism/snapshots/seattlerb/class_comments.txt index 5ac05b6be6..75350722a1 100644 --- a/test/prism/snapshots/seattlerb/class_comments.txt +++ b/test/prism/snapshots/seattlerb/class_comments.txt @@ -1,20 +1,26 @@ @ ProgramNode (location: (4,0)-(9,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (4,0)-(9,3)) + ├── flags: ∅ └── body: (length: 1) └── @ ClassNode (location: (4,0)-(9,3)) + ├── flags: newline ├── locals: [] ├── class_keyword_loc: (4,0)-(4,5) = "class" ├── constant_path: │ @ ConstantReadNode (location: (4,6)-(4,7)) + │ ├── flags: ∅ │ └── name: :X ├── inheritance_operator_loc: ∅ ├── superclass: ∅ ├── body: │ @ StatementsNode (location: (6,2)-(8,5)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ DefNode (location: (6,2)-(8,5)) + │ ├── flags: newline │ ├── name: :blah │ ├── name_loc: (6,6)-(6,10) = "blah" │ ├── receiver: ∅ diff --git a/test/prism/snapshots/seattlerb/cond_unary_minus.txt b/test/prism/snapshots/seattlerb/cond_unary_minus.txt index b6e12dfb15..bf82ac4696 100644 --- a/test/prism/snapshots/seattlerb/cond_unary_minus.txt +++ b/test/prism/snapshots/seattlerb/cond_unary_minus.txt @@ -1,13 +1,16 @@ @ ProgramNode (location: (1,0)-(1,10)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,10)) + ├── flags: ∅ └── body: (length: 1) └── @ IfNode (location: (1,0)-(1,10)) + ├── flags: newline ├── if_keyword_loc: (1,0)-(1,2) = "if" ├── predicate: │ @ IntegerNode (location: (1,3)-(1,5)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: -1 ├── then_keyword_loc: ∅ ├── statements: ∅ diff --git a/test/prism/snapshots/seattlerb/const_2_op_asgn_or2.txt b/test/prism/snapshots/seattlerb/const_2_op_asgn_or2.txt index e09eed7d2f..25d77dac2d 100644 --- a/test/prism/snapshots/seattlerb/const_2_op_asgn_or2.txt +++ b/test/prism/snapshots/seattlerb/const_2_op_asgn_or2.txt @@ -1,13 +1,18 @@ @ ProgramNode (location: (1,0)-(1,12)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,12)) + ├── flags: ∅ └── body: (length: 1) └── @ ConstantPathOrWriteNode (location: (1,0)-(1,12)) + ├── flags: newline ├── target: │ @ ConstantPathNode (location: (1,0)-(1,6)) + │ ├── flags: ∅ │ ├── parent: │ │ @ ConstantPathNode (location: (1,0)-(1,3)) + │ │ ├── flags: ∅ │ │ ├── parent: ∅ │ │ ├── name: :X │ │ ├── delimiter_loc: (1,0)-(1,2) = "::" @@ -18,5 +23,5 @@ ├── operator_loc: (1,7)-(1,10) = "||=" └── value: @ IntegerNode (location: (1,11)-(1,12)) - ├── flags: decimal + ├── flags: static_literal, decimal └── value: 1 diff --git a/test/prism/snapshots/seattlerb/const_3_op_asgn_or.txt b/test/prism/snapshots/seattlerb/const_3_op_asgn_or.txt index 398af888a8..dc098bcf23 100644 --- a/test/prism/snapshots/seattlerb/const_3_op_asgn_or.txt +++ b/test/prism/snapshots/seattlerb/const_3_op_asgn_or.txt @@ -1,11 +1,15 @@ @ ProgramNode (location: (1,0)-(1,9)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,9)) + ├── flags: ∅ └── body: (length: 1) └── @ ConstantPathOrWriteNode (location: (1,0)-(1,9)) + ├── flags: newline ├── target: │ @ ConstantPathNode (location: (1,0)-(1,3)) + │ ├── flags: ∅ │ ├── parent: ∅ │ ├── name: :X │ ├── delimiter_loc: (1,0)-(1,2) = "::" @@ -13,5 +17,5 @@ ├── operator_loc: (1,4)-(1,7) = "||=" └── value: @ IntegerNode (location: (1,8)-(1,9)) - ├── flags: decimal + ├── flags: static_literal, decimal └── value: 1 diff --git a/test/prism/snapshots/seattlerb/const_op_asgn_and1.txt b/test/prism/snapshots/seattlerb/const_op_asgn_and1.txt index f9792aebb3..63b8bc190b 100644 --- a/test/prism/snapshots/seattlerb/const_op_asgn_and1.txt +++ b/test/prism/snapshots/seattlerb/const_op_asgn_and1.txt @@ -1,11 +1,15 @@ @ ProgramNode (location: (1,0)-(1,8)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,8)) + ├── flags: ∅ └── body: (length: 1) └── @ ConstantPathOperatorWriteNode (location: (1,0)-(1,8)) + ├── flags: newline ├── target: │ @ ConstantPathNode (location: (1,0)-(1,3)) + │ ├── flags: ∅ │ ├── parent: ∅ │ ├── name: :X │ ├── delimiter_loc: (1,0)-(1,2) = "::" @@ -13,6 +17,6 @@ ├── binary_operator_loc: (1,4)-(1,6) = "&=" ├── value: │ @ IntegerNode (location: (1,7)-(1,8)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 └── binary_operator: :& diff --git a/test/prism/snapshots/seattlerb/const_op_asgn_and2.txt b/test/prism/snapshots/seattlerb/const_op_asgn_and2.txt index 146455d327..c1ac2bcf52 100644 --- a/test/prism/snapshots/seattlerb/const_op_asgn_and2.txt +++ b/test/prism/snapshots/seattlerb/const_op_asgn_and2.txt @@ -1,11 +1,15 @@ @ ProgramNode (location: (1,0)-(1,9)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,9)) + ├── flags: ∅ └── body: (length: 1) └── @ ConstantPathAndWriteNode (location: (1,0)-(1,9)) + ├── flags: newline ├── target: │ @ ConstantPathNode (location: (1,0)-(1,3)) + │ ├── flags: ∅ │ ├── parent: ∅ │ ├── name: :X │ ├── delimiter_loc: (1,0)-(1,2) = "::" @@ -13,5 +17,5 @@ ├── operator_loc: (1,4)-(1,7) = "&&=" └── value: @ IntegerNode (location: (1,8)-(1,9)) - ├── flags: decimal + ├── flags: static_literal, decimal └── value: 1 diff --git a/test/prism/snapshots/seattlerb/const_op_asgn_or.txt b/test/prism/snapshots/seattlerb/const_op_asgn_or.txt index 5e9dd39604..0a53593d12 100644 --- a/test/prism/snapshots/seattlerb/const_op_asgn_or.txt +++ b/test/prism/snapshots/seattlerb/const_op_asgn_or.txt @@ -1,13 +1,18 @@ @ ProgramNode (location: (1,0)-(1,10)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,10)) + ├── flags: ∅ └── body: (length: 1) └── @ ConstantPathOrWriteNode (location: (1,0)-(1,10)) + ├── flags: newline ├── target: │ @ ConstantPathNode (location: (1,0)-(1,4)) + │ ├── flags: ∅ │ ├── parent: │ │ @ ConstantReadNode (location: (1,0)-(1,1)) + │ │ ├── flags: ∅ │ │ └── name: :X │ ├── name: :Y │ ├── delimiter_loc: (1,1)-(1,3) = "::" @@ -15,5 +20,5 @@ ├── operator_loc: (1,5)-(1,8) = "||=" └── value: @ IntegerNode (location: (1,9)-(1,10)) - ├── flags: decimal + ├── flags: static_literal, decimal └── value: 1 diff --git a/test/prism/snapshots/seattlerb/defined_eh_parens.txt b/test/prism/snapshots/seattlerb/defined_eh_parens.txt index 49b577fcd1..7e18a24787 100644 --- a/test/prism/snapshots/seattlerb/defined_eh_parens.txt +++ b/test/prism/snapshots/seattlerb/defined_eh_parens.txt @@ -1,13 +1,16 @@ @ ProgramNode (location: (1,0)-(1,12)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,12)) + ├── flags: ∅ └── body: (length: 1) └── @ DefinedNode (location: (1,0)-(1,12)) + ├── flags: newline ├── lparen_loc: (1,8)-(1,9) = "(" ├── value: │ @ IntegerNode (location: (1,9)-(1,11)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 42 ├── rparen_loc: (1,11)-(1,12) = ")" └── keyword_loc: (1,0)-(1,8) = "defined?" diff --git a/test/prism/snapshots/seattlerb/defn_arg_asplat_arg.txt b/test/prism/snapshots/seattlerb/defn_arg_asplat_arg.txt index 3f2bdf44a4..312b0214d6 100644 --- a/test/prism/snapshots/seattlerb/defn_arg_asplat_arg.txt +++ b/test/prism/snapshots/seattlerb/defn_arg_asplat_arg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,29)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,29)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,29)) + ├── flags: newline ├── name: :call ├── name_loc: (1,4)-(1,8) = "call" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,9)-(1,24)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (1,9)-(1,15)) │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/defn_arg_forward_args.txt b/test/prism/snapshots/seattlerb/defn_arg_forward_args.txt index 4121770c5c..905978bc2f 100644 --- a/test/prism/snapshots/seattlerb/defn_arg_forward_args.txt +++ b/test/prism/snapshots/seattlerb/defn_arg_forward_args.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,29)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,29)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,29)) + ├── flags: newline ├── name: :a ├── name_loc: (1,4)-(1,5) = "a" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,12)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (1,6)-(1,7)) │ │ ├── flags: ∅ @@ -19,12 +23,14 @@ │ ├── keywords: (length: 0) │ ├── keyword_rest: │ │ @ ForwardingParameterNode (location: (1,9)-(1,12)) + │ │ └── flags: ∅ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,15)-(1,24)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,15)-(1,24)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :b @@ -35,9 +41,11 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ LocalVariableReadNode (location: (1,17)-(1,18)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :x │ │ │ └── depth: 0 │ │ └── @ ForwardingArgumentsNode (location: (1,20)-(1,23)) + │ │ └── flags: ∅ │ ├── closing_loc: (1,23)-(1,24) = ")" │ └── block: ∅ ├── locals: [:x] diff --git a/test/prism/snapshots/seattlerb/defn_args_forward_args.txt b/test/prism/snapshots/seattlerb/defn_args_forward_args.txt index 178b6ccde7..ca03f79d57 100644 --- a/test/prism/snapshots/seattlerb/defn_args_forward_args.txt +++ b/test/prism/snapshots/seattlerb/defn_args_forward_args.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,41)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,41)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,41)) + ├── flags: newline ├── name: :a ├── name_loc: (1,4)-(1,5) = "a" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,18)) + │ ├── flags: ∅ │ ├── requireds: (length: 3) │ │ ├── @ RequiredParameterNode (location: (1,6)-(1,7)) │ │ │ ├── flags: ∅ @@ -25,12 +29,14 @@ │ ├── keywords: (length: 0) │ ├── keyword_rest: │ │ @ ForwardingParameterNode (location: (1,15)-(1,18)) + │ │ └── flags: ∅ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,21)-(1,36)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,21)-(1,36)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :b @@ -41,15 +47,17 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 3) │ │ ├── @ SymbolNode (location: (1,23)-(1,27)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (1,23)-(1,24) = ":" │ │ │ ├── value_loc: (1,24)-(1,27) = "get" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "get" │ │ ├── @ LocalVariableReadNode (location: (1,29)-(1,30)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :z │ │ │ └── depth: 0 │ │ └── @ ForwardingArgumentsNode (location: (1,32)-(1,35)) + │ │ └── flags: ∅ │ ├── closing_loc: (1,35)-(1,36) = ")" │ └── block: ∅ ├── locals: [:x, :y, :z] diff --git a/test/prism/snapshots/seattlerb/defn_comments.txt b/test/prism/snapshots/seattlerb/defn_comments.txt index 585aa65c9a..8ea66b7760 100644 --- a/test/prism/snapshots/seattlerb/defn_comments.txt +++ b/test/prism/snapshots/seattlerb/defn_comments.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (4,0)-(5,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (4,0)-(5,3)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (4,0)-(5,3)) + ├── flags: newline ├── name: :blah ├── name_loc: (4,4)-(4,8) = "blah" ├── receiver: ∅ diff --git a/test/prism/snapshots/seattlerb/defn_endless_command.txt b/test/prism/snapshots/seattlerb/defn_endless_command.txt index c3ea59282a..e951ee2e45 100644 --- a/test/prism/snapshots/seattlerb/defn_endless_command.txt +++ b/test/prism/snapshots/seattlerb/defn_endless_command.txt @@ -1,18 +1,22 @@ @ ProgramNode (location: (1,0)-(1,33)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,33)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,33)) + ├── flags: newline ├── name: :some_method ├── name_loc: (1,4)-(1,15) = "some_method" ├── receiver: ∅ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (1,18)-(1,33)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,18)-(1,33)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :other_method @@ -23,7 +27,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (1,31)-(1,33)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 42 │ ├── closing_loc: ∅ │ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/defn_endless_command_rescue.txt b/test/prism/snapshots/seattlerb/defn_endless_command_rescue.txt index dfd1d01ba8..7efd02cd06 100644 --- a/test/prism/snapshots/seattlerb/defn_endless_command_rescue.txt +++ b/test/prism/snapshots/seattlerb/defn_endless_command_rescue.txt @@ -1,17 +1,22 @@ @ ProgramNode (location: (1,0)-(1,43)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,43)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,43)) + ├── flags: newline ├── name: :some_method ├── name_loc: (1,4)-(1,15) = "some_method" ├── receiver: ∅ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (1,18)-(1,43)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ RescueModifierNode (location: (1,18)-(1,43)) + │ ├── flags: newline │ ├── expression: │ │ @ CallNode (location: (1,18)-(1,33)) │ │ ├── flags: ignore_visibility @@ -25,14 +30,14 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (1,31)-(1,33)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 42 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── keyword_loc: (1,34)-(1,40) = "rescue" │ └── rescue_expression: │ @ IntegerNode (location: (1,41)-(1,43)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 24 ├── locals: [] ├── def_keyword_loc: (1,0)-(1,3) = "def" diff --git a/test/prism/snapshots/seattlerb/defn_forward_args.txt b/test/prism/snapshots/seattlerb/defn_forward_args.txt index 71a984c811..50fc32c047 100644 --- a/test/prism/snapshots/seattlerb/defn_forward_args.txt +++ b/test/prism/snapshots/seattlerb/defn_forward_args.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,23)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,23)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,23)) + ├── flags: newline ├── name: :a ├── name_loc: (1,4)-(1,5) = "a" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,9)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -16,12 +20,14 @@ │ ├── keywords: (length: 0) │ ├── keyword_rest: │ │ @ ForwardingParameterNode (location: (1,6)-(1,9)) + │ │ └── flags: ∅ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,12)-(1,18)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,12)-(1,18)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :b @@ -32,6 +38,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ForwardingArgumentsNode (location: (1,14)-(1,17)) + │ │ └── flags: ∅ │ ├── closing_loc: (1,17)-(1,18) = ")" │ └── block: ∅ ├── locals: [] diff --git a/test/prism/snapshots/seattlerb/defn_forward_args__no_parens.txt b/test/prism/snapshots/seattlerb/defn_forward_args__no_parens.txt index 4a4d69e4d0..8926f2cdf1 100644 --- a/test/prism/snapshots/seattlerb/defn_forward_args__no_parens.txt +++ b/test/prism/snapshots/seattlerb/defn_forward_args__no_parens.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(3,3)) + ├── flags: newline ├── name: :f ├── name_loc: (1,4)-(1,5) = "f" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,9)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -16,12 +20,14 @@ │ ├── keywords: (length: 0) │ ├── keyword_rest: │ │ @ ForwardingParameterNode (location: (1,6)-(1,9)) + │ │ └── flags: ∅ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (2,2)-(2,8)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (2,2)-(2,8)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :m @@ -32,6 +38,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ForwardingArgumentsNode (location: (2,4)-(2,7)) + │ │ └── flags: ∅ │ ├── closing_loc: (2,7)-(2,8) = ")" │ └── block: ∅ ├── locals: [] diff --git a/test/prism/snapshots/seattlerb/defn_kwarg_env.txt b/test/prism/snapshots/seattlerb/defn_kwarg_env.txt index 2aadedd964..0df82b5dc2 100644 --- a/test/prism/snapshots/seattlerb/defn_kwarg_env.txt +++ b/test/prism/snapshots/seattlerb/defn_kwarg_env.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,45)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,45)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,45)) + ├── flags: newline ├── name: :test ├── name_loc: (1,4)-(1,8) = "test" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,9)-(1,18)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -23,9 +27,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,20)-(1,41)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,20)-(1,41)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :test_splat @@ -39,8 +44,10 @@ │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocSplatNode (location: (1,31)-(1,40)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ LocalVariableReadNode (location: (1,33)-(1,40)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :testing │ │ │ └── depth: 0 │ │ └── operator_loc: (1,31)-(1,33) = "**" diff --git a/test/prism/snapshots/seattlerb/defn_kwarg_kwarg.txt b/test/prism/snapshots/seattlerb/defn_kwarg_kwarg.txt index 8a5022ff37..ead1437a86 100644 --- a/test/prism/snapshots/seattlerb/defn_kwarg_kwarg.txt +++ b/test/prism/snapshots/seattlerb/defn_kwarg_kwarg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,24)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,24)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,24)) + ├── flags: newline ├── name: :f ├── name_loc: (1,4)-(1,5) = "f" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,19)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (1,6)-(1,7)) │ │ ├── flags: ∅ @@ -23,7 +27,7 @@ │ │ │ ├── name_loc: (1,9)-(1,11) = "b:" │ │ │ └── value: │ │ │ @ IntegerNode (location: (1,12)-(1,13)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ OptionalKeywordParameterNode (location: (1,15)-(1,19)) │ │ ├── flags: ∅ @@ -31,7 +35,7 @@ │ │ ├── name_loc: (1,15)-(1,17) = "c:" │ │ └── value: │ │ @ IntegerNode (location: (1,18)-(1,19)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── keyword_rest: ∅ │ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/defn_kwarg_kwsplat.txt b/test/prism/snapshots/seattlerb/defn_kwarg_kwsplat.txt index 4c980bc27f..2b22833460 100644 --- a/test/prism/snapshots/seattlerb/defn_kwarg_kwsplat.txt +++ b/test/prism/snapshots/seattlerb/defn_kwarg_kwsplat.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,20)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,20)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,20)) + ├── flags: newline ├── name: :a ├── name_loc: (1,4)-(1,5) = "a" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,15)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -20,7 +24,7 @@ │ │ ├── name_loc: (1,6)-(1,8) = "b:" │ │ └── value: │ │ @ IntegerNode (location: (1,9)-(1,10)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── keyword_rest: │ │ @ KeywordRestParameterNode (location: (1,12)-(1,15)) diff --git a/test/prism/snapshots/seattlerb/defn_kwarg_kwsplat_anon.txt b/test/prism/snapshots/seattlerb/defn_kwarg_kwsplat_anon.txt index 40afacc2a7..1e0e1f132e 100644 --- a/test/prism/snapshots/seattlerb/defn_kwarg_kwsplat_anon.txt +++ b/test/prism/snapshots/seattlerb/defn_kwarg_kwsplat_anon.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,19)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,19)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,19)) + ├── flags: newline ├── name: :a ├── name_loc: (1,4)-(1,5) = "a" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,14)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -20,7 +24,7 @@ │ │ ├── name_loc: (1,6)-(1,8) = "b:" │ │ └── value: │ │ @ IntegerNode (location: (1,9)-(1,10)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── keyword_rest: │ │ @ KeywordRestParameterNode (location: (1,12)-(1,14)) diff --git a/test/prism/snapshots/seattlerb/defn_kwarg_lvar.txt b/test/prism/snapshots/seattlerb/defn_kwarg_lvar.txt index 0eae56924c..0835d3987d 100644 --- a/test/prism/snapshots/seattlerb/defn_kwarg_lvar.txt +++ b/test/prism/snapshots/seattlerb/defn_kwarg_lvar.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,26)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,26)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,26)) + ├── flags: newline ├── name: :fun ├── name_loc: (1,4)-(1,7) = "fun" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,8)-(1,16)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -20,7 +24,7 @@ │ │ ├── name_loc: (1,8)-(1,11) = "kw:" │ │ └── value: │ │ @ SymbolNode (location: (1,12)-(1,16)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,12)-(1,13) = ":" │ │ ├── value_loc: (1,13)-(1,16) = "val" │ │ ├── closing_loc: ∅ @@ -29,8 +33,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,19)-(1,21)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ LocalVariableReadNode (location: (1,19)-(1,21)) + │ ├── flags: newline │ ├── name: :kw │ └── depth: 0 ├── locals: [:kw] diff --git a/test/prism/snapshots/seattlerb/defn_kwarg_no_parens.txt b/test/prism/snapshots/seattlerb/defn_kwarg_no_parens.txt index bc5747ad02..3f6af5e0ee 100644 --- a/test/prism/snapshots/seattlerb/defn_kwarg_no_parens.txt +++ b/test/prism/snapshots/seattlerb/defn_kwarg_no_parens.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(2,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(2,3)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(2,3)) + ├── flags: newline ├── name: :f ├── name_loc: (1,4)-(1,5) = "f" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,10)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -20,7 +24,7 @@ │ │ ├── name_loc: (1,6)-(1,8) = "a:" │ │ └── value: │ │ @ IntegerNode (location: (1,9)-(1,10)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── keyword_rest: ∅ │ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/defn_kwarg_val.txt b/test/prism/snapshots/seattlerb/defn_kwarg_val.txt index 82527f7875..38cb995c09 100644 --- a/test/prism/snapshots/seattlerb/defn_kwarg_val.txt +++ b/test/prism/snapshots/seattlerb/defn_kwarg_val.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,17)) + ├── flags: newline ├── name: :f ├── name_loc: (1,4)-(1,5) = "f" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,12)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (1,6)-(1,7)) │ │ ├── flags: ∅ @@ -23,7 +27,7 @@ │ │ ├── name_loc: (1,9)-(1,11) = "b:" │ │ └── value: │ │ @ IntegerNode (location: (1,11)-(1,12)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── keyword_rest: ∅ │ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/defn_no_kwargs.txt b/test/prism/snapshots/seattlerb/defn_no_kwargs.txt index 0ef0634a53..778b300a4b 100644 --- a/test/prism/snapshots/seattlerb/defn_no_kwargs.txt +++ b/test/prism/snapshots/seattlerb/defn_no_kwargs.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,17)) + ├── flags: newline ├── name: :x ├── name_loc: (1,4)-(1,5) = "x" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,11)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -16,6 +20,7 @@ │ ├── keywords: (length: 0) │ ├── keyword_rest: │ │ @ NoKeywordsParameterNode (location: (1,6)-(1,11)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (1,6)-(1,8) = "**" │ │ └── keyword_loc: (1,8)-(1,11) = "nil" │ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/defn_oneliner.txt b/test/prism/snapshots/seattlerb/defn_oneliner.txt index e700499809..efa53f09d5 100644 --- a/test/prism/snapshots/seattlerb/defn_oneliner.txt +++ b/test/prism/snapshots/seattlerb/defn_oneliner.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,27)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,27)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,27)) + ├── flags: newline ├── name: :exec ├── name_loc: (1,4)-(1,8) = "exec" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,9)-(1,12)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (1,9)-(1,12)) │ │ ├── flags: ∅ @@ -21,9 +25,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,16)-(1,27)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,16)-(1,27)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :system @@ -34,6 +39,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ LocalVariableReadNode (location: (1,23)-(1,26)) + │ │ ├── flags: ∅ │ │ ├── name: :cmd │ │ └── depth: 0 │ ├── closing_loc: (1,26)-(1,27) = ")" diff --git a/test/prism/snapshots/seattlerb/defn_oneliner_eq2.txt b/test/prism/snapshots/seattlerb/defn_oneliner_eq2.txt index 2708351ede..8d9f6a2267 100644 --- a/test/prism/snapshots/seattlerb/defn_oneliner_eq2.txt +++ b/test/prism/snapshots/seattlerb/defn_oneliner_eq2.txt @@ -1,25 +1,32 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ ClassNode (location: (1,0)-(3,3)) + ├── flags: newline ├── locals: [] ├── class_keyword_loc: (1,0)-(1,5) = "class" ├── constant_path: │ @ ConstantReadNode (location: (1,6)-(1,7)) + │ ├── flags: ∅ │ └── name: :X ├── inheritance_operator_loc: ∅ ├── superclass: ∅ ├── body: │ @ StatementsNode (location: (2,2)-(2,16)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ DefNode (location: (2,2)-(2,16)) + │ ├── flags: newline │ ├── name: :== │ ├── name_loc: (2,6)-(2,8) = "==" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (2,9)-(2,10)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (2,9)-(2,10)) │ │ │ ├── flags: ∅ @@ -32,9 +39,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (2,14)-(2,16)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (2,14)-(2,16)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 42 │ ├── locals: [:o] │ ├── def_keyword_loc: (2,2)-(2,5) = "def" diff --git a/test/prism/snapshots/seattlerb/defn_oneliner_noargs.txt b/test/prism/snapshots/seattlerb/defn_oneliner_noargs.txt index 54555b1a23..a7bc11ae6b 100644 --- a/test/prism/snapshots/seattlerb/defn_oneliner_noargs.txt +++ b/test/prism/snapshots/seattlerb/defn_oneliner_noargs.txt @@ -1,18 +1,22 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,17)) + ├── flags: newline ├── name: :exec ├── name_loc: (1,4)-(1,8) = "exec" ├── receiver: ∅ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (1,11)-(1,17)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,11)-(1,17)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :system diff --git a/test/prism/snapshots/seattlerb/defn_oneliner_noargs_parentheses.txt b/test/prism/snapshots/seattlerb/defn_oneliner_noargs_parentheses.txt index e0fc4636f1..174c49d1e1 100644 --- a/test/prism/snapshots/seattlerb/defn_oneliner_noargs_parentheses.txt +++ b/test/prism/snapshots/seattlerb/defn_oneliner_noargs_parentheses.txt @@ -1,18 +1,22 @@ @ ProgramNode (location: (1,0)-(1,19)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,19)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,19)) + ├── flags: newline ├── name: :exec ├── name_loc: (1,4)-(1,8) = "exec" ├── receiver: ∅ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (1,13)-(1,19)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,13)-(1,19)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :system diff --git a/test/prism/snapshots/seattlerb/defn_oneliner_rescue.txt b/test/prism/snapshots/seattlerb/defn_oneliner_rescue.txt index b5b5dbe6ac..5e9c7ccef7 100644 --- a/test/prism/snapshots/seattlerb/defn_oneliner_rescue.txt +++ b/test/prism/snapshots/seattlerb/defn_oneliner_rescue.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(13,38)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(13,38)) + ├── flags: ∅ └── body: (length: 3) ├── @ DefNode (location: (1,0)-(5,3)) + │ ├── flags: newline │ ├── name: :exec │ ├── name_loc: (1,4)-(1,8) = "exec" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,9)-(1,12)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,9)-(1,12)) │ │ │ ├── flags: ∅ @@ -21,12 +25,14 @@ │ │ └── block: ∅ │ ├── body: │ │ @ BeginNode (location: (1,0)-(5,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (2,2)-(2,13)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (2,2)-(2,13)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :system @@ -37,20 +43,24 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ LocalVariableReadNode (location: (2,9)-(2,12)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :cmd │ │ │ │ └── depth: 0 │ │ │ ├── closing_loc: (2,12)-(2,13) = ")" │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (3,0)-(4,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (3,0)-(3,6) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ │ │ │ ├── reference: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (4,2)-(4,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ NilNode (location: (4,2)-(4,5)) + │ │ │ │ └── flags: newline, static_literal │ │ │ └── consequent: ∅ │ │ ├── else_clause: ∅ │ │ ├── ensure_clause: ∅ @@ -63,11 +73,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (5,0)-(5,3) = "end" ├── @ DefNode (location: (8,0)-(10,3)) + │ ├── flags: newline │ ├── name: :exec │ ├── name_loc: (8,4)-(8,8) = "exec" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (8,9)-(8,12)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (8,9)-(8,12)) │ │ │ ├── flags: ∅ @@ -80,8 +92,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (9,2)-(9,24)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RescueModifierNode (location: (9,2)-(9,24)) + │ │ ├── flags: newline │ │ ├── expression: │ │ │ @ CallNode (location: (9,2)-(9,13)) │ │ │ ├── flags: ignore_visibility @@ -95,6 +109,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ LocalVariableReadNode (location: (9,9)-(9,12)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :cmd │ │ │ │ └── depth: 0 │ │ │ ├── closing_loc: (9,12)-(9,13) = ")" @@ -102,6 +117,7 @@ │ │ ├── keyword_loc: (9,14)-(9,20) = "rescue" │ │ └── rescue_expression: │ │ @ NilNode (location: (9,21)-(9,24)) + │ │ └── flags: static_literal │ ├── locals: [:cmd] │ ├── def_keyword_loc: (8,0)-(8,3) = "def" │ ├── operator_loc: ∅ @@ -110,11 +126,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (10,0)-(10,3) = "end" └── @ DefNode (location: (13,0)-(13,38)) + ├── flags: newline ├── name: :exec ├── name_loc: (13,4)-(13,8) = "exec" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (13,9)-(13,12)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (13,9)-(13,12)) │ │ ├── flags: ∅ @@ -127,8 +145,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (13,16)-(13,38)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ RescueModifierNode (location: (13,16)-(13,38)) + │ ├── flags: newline │ ├── expression: │ │ @ CallNode (location: (13,16)-(13,27)) │ │ ├── flags: ignore_visibility @@ -142,6 +162,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ LocalVariableReadNode (location: (13,23)-(13,26)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :cmd │ │ │ └── depth: 0 │ │ ├── closing_loc: (13,26)-(13,27) = ")" @@ -149,6 +170,7 @@ │ ├── keyword_loc: (13,28)-(13,34) = "rescue" │ └── rescue_expression: │ @ NilNode (location: (13,35)-(13,38)) + │ └── flags: static_literal ├── locals: [:cmd] ├── def_keyword_loc: (13,0)-(13,3) = "def" ├── operator_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/defn_opt_last_arg.txt b/test/prism/snapshots/seattlerb/defn_opt_last_arg.txt index 569bc23078..f7c37e3d45 100644 --- a/test/prism/snapshots/seattlerb/defn_opt_last_arg.txt +++ b/test/prism/snapshots/seattlerb/defn_opt_last_arg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(2,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(2,3)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(2,3)) + ├── flags: newline ├── name: :m ├── name_loc: (1,4)-(1,5) = "m" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,17)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 1) │ │ └── @ OptionalParameterNode (location: (1,6)-(1,17)) @@ -18,6 +22,7 @@ │ │ ├── operator_loc: (1,10)-(1,11) = "=" │ │ └── value: │ │ @ FalseNode (location: (1,12)-(1,17)) + │ │ └── flags: static_literal │ ├── rest: ∅ │ ├── posts: (length: 0) │ ├── keywords: (length: 0) diff --git a/test/prism/snapshots/seattlerb/defn_opt_reg.txt b/test/prism/snapshots/seattlerb/defn_opt_reg.txt index f86168513a..9bdd143905 100644 --- a/test/prism/snapshots/seattlerb/defn_opt_reg.txt +++ b/test/prism/snapshots/seattlerb/defn_opt_reg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,19)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,19)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,19)) + ├── flags: newline ├── name: :f ├── name_loc: (1,4)-(1,5) = "f" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,14)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 1) │ │ └── @ OptionalParameterNode (location: (1,6)-(1,11)) @@ -18,6 +22,7 @@ │ │ ├── operator_loc: (1,7)-(1,8) = "=" │ │ └── value: │ │ @ NilNode (location: (1,8)-(1,11)) + │ │ └── flags: static_literal │ ├── rest: ∅ │ ├── posts: (length: 1) │ │ └── @ RequiredParameterNode (location: (1,13)-(1,14)) diff --git a/test/prism/snapshots/seattlerb/defn_opt_splat_arg.txt b/test/prism/snapshots/seattlerb/defn_opt_splat_arg.txt index 3019e9b73e..d90fddc653 100644 --- a/test/prism/snapshots/seattlerb/defn_opt_splat_arg.txt +++ b/test/prism/snapshots/seattlerb/defn_opt_splat_arg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,24)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,24)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,24)) + ├── flags: newline ├── name: :f ├── name_loc: (1,4)-(1,5) = "f" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,7)-(1,19)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 1) │ │ └── @ OptionalParameterNode (location: (1,7)-(1,12)) @@ -18,7 +22,7 @@ │ │ ├── operator_loc: (1,9)-(1,10) = "=" │ │ └── value: │ │ @ IntegerNode (location: (1,11)-(1,12)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── rest: │ │ @ RestParameterNode (location: (1,14)-(1,16)) diff --git a/test/prism/snapshots/seattlerb/defn_powarg.txt b/test/prism/snapshots/seattlerb/defn_powarg.txt index bce131ad18..8d4ff4283a 100644 --- a/test/prism/snapshots/seattlerb/defn_powarg.txt +++ b/test/prism/snapshots/seattlerb/defn_powarg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,17)) + ├── flags: newline ├── name: :f ├── name_loc: (1,4)-(1,5) = "f" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,12)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ diff --git a/test/prism/snapshots/seattlerb/defn_reg_opt_reg.txt b/test/prism/snapshots/seattlerb/defn_reg_opt_reg.txt index d079e1b5f3..0cd1435e8f 100644 --- a/test/prism/snapshots/seattlerb/defn_reg_opt_reg.txt +++ b/test/prism/snapshots/seattlerb/defn_reg_opt_reg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,23)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,23)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,23)) + ├── flags: newline ├── name: :f ├── name_loc: (1,4)-(1,5) = "f" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,18)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (1,6)-(1,7)) │ │ ├── flags: ∅ @@ -21,7 +25,7 @@ │ │ ├── operator_loc: (1,11)-(1,12) = "=" │ │ └── value: │ │ @ SymbolNode (location: (1,13)-(1,15)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,13)-(1,14) = ":" │ │ ├── value_loc: (1,14)-(1,15) = "c" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/defn_splat_arg.txt b/test/prism/snapshots/seattlerb/defn_splat_arg.txt index 109fac495a..c137e263c4 100644 --- a/test/prism/snapshots/seattlerb/defn_splat_arg.txt +++ b/test/prism/snapshots/seattlerb/defn_splat_arg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,15)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,15)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,15)) + ├── flags: newline ├── name: :f ├── name_loc: (1,4)-(1,5) = "f" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,10)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: diff --git a/test/prism/snapshots/seattlerb/defn_unary_not.txt b/test/prism/snapshots/seattlerb/defn_unary_not.txt index 231a3c0da9..0722d3cdca 100644 --- a/test/prism/snapshots/seattlerb/defn_unary_not.txt +++ b/test/prism/snapshots/seattlerb/defn_unary_not.txt @@ -1,17 +1,22 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,17)) + ├── flags: newline ├── name: :! ├── name_loc: (1,4)-(1,6) = "!@" ├── receiver: ∅ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (1,8)-(1,12)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ TrueNode (location: (1,8)-(1,12)) + │ └── flags: newline, static_literal ├── locals: [] ├── def_keyword_loc: (1,0)-(1,3) = "def" ├── operator_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/defns_reserved.txt b/test/prism/snapshots/seattlerb/defns_reserved.txt index 96860b49ce..10361184ac 100644 --- a/test/prism/snapshots/seattlerb/defns_reserved.txt +++ b/test/prism/snapshots/seattlerb/defns_reserved.txt @@ -1,13 +1,17 @@ @ ProgramNode (location: (1,0)-(1,20)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,20)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,20)) + ├── flags: newline ├── name: :return ├── name_loc: (1,9)-(1,15) = "return" ├── receiver: │ @ SelfNode (location: (1,4)-(1,8)) + │ └── flags: ∅ ├── parameters: ∅ ├── body: ∅ ├── locals: [] diff --git a/test/prism/snapshots/seattlerb/defs_as_arg_with_do_block_inside.txt b/test/prism/snapshots/seattlerb/defs_as_arg_with_do_block_inside.txt index 24bb14f8e1..f9479eb11b 100644 --- a/test/prism/snapshots/seattlerb/defs_as_arg_with_do_block_inside.txt +++ b/test/prism/snapshots/seattlerb/defs_as_arg_with_do_block_inside.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,30)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,30)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,30)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :p @@ -15,16 +17,19 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ DefNode (location: (1,2)-(1,30)) + │ ├── flags: ∅ │ ├── name: :b │ ├── name_loc: (1,11)-(1,12) = "b" │ ├── receiver: │ │ @ SelfNode (location: (1,6)-(1,10)) + │ │ └── flags: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,14)-(1,25)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,14)-(1,25)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (1,14)-(1,15)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -44,6 +49,7 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (1,18)-(1,25)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: ∅ diff --git a/test/prism/snapshots/seattlerb/defs_comments.txt b/test/prism/snapshots/seattlerb/defs_comments.txt index a2976e7ee2..7f94497978 100644 --- a/test/prism/snapshots/seattlerb/defs_comments.txt +++ b/test/prism/snapshots/seattlerb/defs_comments.txt @@ -1,13 +1,17 @@ @ ProgramNode (location: (4,0)-(5,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (4,0)-(5,3)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (4,0)-(5,3)) + ├── flags: newline ├── name: :blah ├── name_loc: (4,9)-(4,13) = "blah" ├── receiver: │ @ SelfNode (location: (4,4)-(4,8)) + │ └── flags: ∅ ├── parameters: ∅ ├── body: ∅ ├── locals: [] diff --git a/test/prism/snapshots/seattlerb/defs_endless_command.txt b/test/prism/snapshots/seattlerb/defs_endless_command.txt index f3c4e79417..b1b542296c 100644 --- a/test/prism/snapshots/seattlerb/defs_endless_command.txt +++ b/test/prism/snapshots/seattlerb/defs_endless_command.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(1,35)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,35)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,35)) + ├── flags: newline ├── name: :some_method ├── name_loc: (1,6)-(1,17) = "some_method" ├── receiver: @@ -20,9 +23,10 @@ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (1,20)-(1,35)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,20)-(1,35)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :other_method @@ -33,7 +37,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (1,33)-(1,35)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 42 │ ├── closing_loc: ∅ │ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/defs_endless_command_rescue.txt b/test/prism/snapshots/seattlerb/defs_endless_command_rescue.txt index b0cd34a9c8..e8a7703de3 100644 --- a/test/prism/snapshots/seattlerb/defs_endless_command_rescue.txt +++ b/test/prism/snapshots/seattlerb/defs_endless_command_rescue.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(1,45)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,45)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,45)) + ├── flags: newline ├── name: :some_method ├── name_loc: (1,6)-(1,17) = "some_method" ├── receiver: @@ -20,8 +23,10 @@ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (1,20)-(1,45)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ RescueModifierNode (location: (1,20)-(1,45)) + │ ├── flags: newline │ ├── expression: │ │ @ CallNode (location: (1,20)-(1,35)) │ │ ├── flags: ignore_visibility @@ -35,14 +40,14 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (1,33)-(1,35)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 42 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── keyword_loc: (1,36)-(1,42) = "rescue" │ └── rescue_expression: │ @ IntegerNode (location: (1,43)-(1,45)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 24 ├── locals: [] ├── def_keyword_loc: (1,0)-(1,3) = "def" diff --git a/test/prism/snapshots/seattlerb/defs_kwarg.txt b/test/prism/snapshots/seattlerb/defs_kwarg.txt index 53235c9bb8..86a2d562e3 100644 --- a/test/prism/snapshots/seattlerb/defs_kwarg.txt +++ b/test/prism/snapshots/seattlerb/defs_kwarg.txt @@ -1,15 +1,20 @@ @ ProgramNode (location: (1,0)-(2,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(2,3)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(2,3)) + ├── flags: newline ├── name: :a ├── name_loc: (1,9)-(1,10) = "a" ├── receiver: │ @ SelfNode (location: (1,4)-(1,8)) + │ └── flags: ∅ ├── parameters: │ @ ParametersNode (location: (1,11)-(1,15)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -21,7 +26,7 @@ │ │ ├── name_loc: (1,11)-(1,13) = "b:" │ │ └── value: │ │ @ IntegerNode (location: (1,14)-(1,15)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── keyword_rest: ∅ │ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/defs_oneliner.txt b/test/prism/snapshots/seattlerb/defs_oneliner.txt index d32975354d..4ddde4309d 100644 --- a/test/prism/snapshots/seattlerb/defs_oneliner.txt +++ b/test/prism/snapshots/seattlerb/defs_oneliner.txt @@ -1,15 +1,20 @@ @ ProgramNode (location: (1,0)-(1,32)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,32)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,32)) + ├── flags: newline ├── name: :exec ├── name_loc: (1,9)-(1,13) = "exec" ├── receiver: │ @ SelfNode (location: (1,4)-(1,8)) + │ └── flags: ∅ ├── parameters: │ @ ParametersNode (location: (1,14)-(1,17)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (1,14)-(1,17)) │ │ ├── flags: ∅ @@ -22,9 +27,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,21)-(1,32)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,21)-(1,32)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :system @@ -35,6 +41,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ LocalVariableReadNode (location: (1,28)-(1,31)) + │ │ ├── flags: ∅ │ │ ├── name: :cmd │ │ └── depth: 0 │ ├── closing_loc: (1,31)-(1,32) = ")" diff --git a/test/prism/snapshots/seattlerb/defs_oneliner_eq2.txt b/test/prism/snapshots/seattlerb/defs_oneliner_eq2.txt index fcc5c63cf0..f51a58e37e 100644 --- a/test/prism/snapshots/seattlerb/defs_oneliner_eq2.txt +++ b/test/prism/snapshots/seattlerb/defs_oneliner_eq2.txt @@ -1,26 +1,34 @@ @ ProgramNode (location: (1,0)-(3,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,3)) + ├── flags: ∅ └── body: (length: 1) └── @ ClassNode (location: (1,0)-(3,3)) + ├── flags: newline ├── locals: [] ├── class_keyword_loc: (1,0)-(1,5) = "class" ├── constant_path: │ @ ConstantReadNode (location: (1,6)-(1,7)) + │ ├── flags: ∅ │ └── name: :X ├── inheritance_operator_loc: ∅ ├── superclass: ∅ ├── body: │ @ StatementsNode (location: (2,2)-(2,21)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ DefNode (location: (2,2)-(2,21)) + │ ├── flags: newline │ ├── name: :== │ ├── name_loc: (2,11)-(2,13) = "==" │ ├── receiver: │ │ @ SelfNode (location: (2,6)-(2,10)) + │ │ └── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (2,14)-(2,15)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (2,14)-(2,15)) │ │ │ ├── flags: ∅ @@ -33,9 +41,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (2,19)-(2,21)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (2,19)-(2,21)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 42 │ ├── locals: [:o] │ ├── def_keyword_loc: (2,2)-(2,5) = "def" diff --git a/test/prism/snapshots/seattlerb/defs_oneliner_rescue.txt b/test/prism/snapshots/seattlerb/defs_oneliner_rescue.txt index f776210768..13b9159894 100644 --- a/test/prism/snapshots/seattlerb/defs_oneliner_rescue.txt +++ b/test/prism/snapshots/seattlerb/defs_oneliner_rescue.txt @@ -1,15 +1,20 @@ @ ProgramNode (location: (1,0)-(13,43)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(13,43)) + ├── flags: ∅ └── body: (length: 3) ├── @ DefNode (location: (1,0)-(5,3)) + │ ├── flags: newline │ ├── name: :exec │ ├── name_loc: (1,9)-(1,13) = "exec" │ ├── receiver: │ │ @ SelfNode (location: (1,4)-(1,8)) + │ │ └── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,14)-(1,17)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,14)-(1,17)) │ │ │ ├── flags: ∅ @@ -22,12 +27,14 @@ │ │ └── block: ∅ │ ├── body: │ │ @ BeginNode (location: (1,0)-(5,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (2,2)-(2,13)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (2,2)-(2,13)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :system @@ -38,20 +45,24 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ LocalVariableReadNode (location: (2,9)-(2,12)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :cmd │ │ │ │ └── depth: 0 │ │ │ ├── closing_loc: (2,12)-(2,13) = ")" │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (3,0)-(4,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (3,0)-(3,6) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ │ │ │ ├── reference: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (4,2)-(4,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ NilNode (location: (4,2)-(4,5)) + │ │ │ │ └── flags: newline, static_literal │ │ │ └── consequent: ∅ │ │ ├── else_clause: ∅ │ │ ├── ensure_clause: ∅ @@ -64,12 +75,15 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (5,0)-(5,3) = "end" ├── @ DefNode (location: (8,0)-(10,3)) + │ ├── flags: newline │ ├── name: :exec │ ├── name_loc: (8,9)-(8,13) = "exec" │ ├── receiver: │ │ @ SelfNode (location: (8,4)-(8,8)) + │ │ └── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (8,14)-(8,17)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (8,14)-(8,17)) │ │ │ ├── flags: ∅ @@ -82,8 +96,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (9,2)-(9,24)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RescueModifierNode (location: (9,2)-(9,24)) + │ │ ├── flags: newline │ │ ├── expression: │ │ │ @ CallNode (location: (9,2)-(9,13)) │ │ │ ├── flags: ignore_visibility @@ -97,6 +113,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ LocalVariableReadNode (location: (9,9)-(9,12)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :cmd │ │ │ │ └── depth: 0 │ │ │ ├── closing_loc: (9,12)-(9,13) = ")" @@ -104,6 +121,7 @@ │ │ ├── keyword_loc: (9,14)-(9,20) = "rescue" │ │ └── rescue_expression: │ │ @ NilNode (location: (9,21)-(9,24)) + │ │ └── flags: static_literal │ ├── locals: [:cmd] │ ├── def_keyword_loc: (8,0)-(8,3) = "def" │ ├── operator_loc: (8,8)-(8,9) = "." @@ -112,12 +130,15 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (10,0)-(10,3) = "end" └── @ DefNode (location: (13,0)-(13,43)) + ├── flags: newline ├── name: :exec ├── name_loc: (13,9)-(13,13) = "exec" ├── receiver: │ @ SelfNode (location: (13,4)-(13,8)) + │ └── flags: ∅ ├── parameters: │ @ ParametersNode (location: (13,14)-(13,17)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (13,14)-(13,17)) │ │ ├── flags: ∅ @@ -130,8 +151,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (13,21)-(13,43)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ RescueModifierNode (location: (13,21)-(13,43)) + │ ├── flags: newline │ ├── expression: │ │ @ CallNode (location: (13,21)-(13,32)) │ │ ├── flags: ignore_visibility @@ -145,6 +168,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ LocalVariableReadNode (location: (13,28)-(13,31)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :cmd │ │ │ └── depth: 0 │ │ ├── closing_loc: (13,31)-(13,32) = ")" @@ -152,6 +176,7 @@ │ ├── keyword_loc: (13,33)-(13,39) = "rescue" │ └── rescue_expression: │ @ NilNode (location: (13,40)-(13,43)) + │ └── flags: static_literal ├── locals: [:cmd] ├── def_keyword_loc: (13,0)-(13,3) = "def" ├── operator_loc: (13,8)-(13,9) = "." diff --git a/test/prism/snapshots/seattlerb/difficult0_.txt b/test/prism/snapshots/seattlerb/difficult0_.txt index 8ba30ccf85..233440b101 100644 --- a/test/prism/snapshots/seattlerb/difficult0_.txt +++ b/test/prism/snapshots/seattlerb/difficult0_.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(4,8)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,8)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(4,8)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :p @@ -35,17 +37,17 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ InterpolatedStringNode (location: (1,9)-(4,4)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── opening_loc: (1,9)-(1,10) = "'" │ │ │ ├── parts: (length: 2) │ │ │ │ ├── @ StringNode (location: (1,10)-(2,0)) - │ │ │ │ │ ├── flags: frozen + │ │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── content_loc: (1,10)-(2,0) = "b\n" │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── unescaped: "b\n" │ │ │ │ └── @ StringNode (location: (4,0)-(4,3)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (4,0)-(4,3) = " c" │ │ │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/difficult1_line_numbers.txt b/test/prism/snapshots/seattlerb/difficult1_line_numbers.txt index da2306312c..daf2f413bf 100644 --- a/test/prism/snapshots/seattlerb/difficult1_line_numbers.txt +++ b/test/prism/snapshots/seattlerb/difficult1_line_numbers.txt @@ -1,18 +1,23 @@ @ ProgramNode (location: (1,0)-(12,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(12,3)) + ├── flags: ∅ └── body: (length: 1) └── @ IfNode (location: (1,0)-(12,3)) + ├── flags: newline ├── if_keyword_loc: (1,0)-(1,2) = "if" ├── predicate: │ @ TrueNode (location: (1,3)-(1,7)) + │ └── flags: static_literal ├── then_keyword_loc: ∅ ├── statements: │ @ StatementsNode (location: (2,2)-(11,11)) + │ ├── flags: ∅ │ └── body: (length: 10) │ ├── @ CallNode (location: (2,2)-(2,5)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :p @@ -23,12 +28,12 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (2,4)-(2,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── @ CallNode (location: (3,2)-(3,7)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (3,2)-(3,3)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -49,12 +54,12 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (3,6)-(3,7)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── @ CallNode (location: (4,2)-(4,10)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (4,2)-(4,3)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -75,15 +80,15 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 2) │ │ │ ├── @ IntegerNode (location: (4,6)-(4,7)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 3 │ │ │ └── @ IntegerNode (location: (4,9)-(4,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 4 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── @ CallNode (location: (5,2)-(5,7)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (5,2)-(5,3)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -104,12 +109,12 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (5,6)-(5,7)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 5 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── @ CallNode (location: (6,2)-(6,10)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (6,2)-(6,3)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -130,15 +135,15 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 2) │ │ │ ├── @ IntegerNode (location: (6,6)-(6,7)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 6 │ │ │ └── @ IntegerNode (location: (6,9)-(6,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 7 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ ├── @ CallNode (location: (7,2)-(7,6)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :p @@ -149,12 +154,12 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (7,4)-(7,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: (7,5)-(7,6) = ")" │ │ └── block: ∅ │ ├── @ CallNode (location: (8,2)-(8,8)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (8,2)-(8,3)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -175,12 +180,12 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (8,6)-(8,7)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── closing_loc: (8,7)-(8,8) = ")" │ │ └── block: ∅ │ ├── @ CallNode (location: (9,2)-(9,11)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (9,2)-(9,3)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -201,15 +206,15 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 2) │ │ │ ├── @ IntegerNode (location: (9,6)-(9,7)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 3 │ │ │ └── @ IntegerNode (location: (9,9)-(9,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 4 │ │ ├── closing_loc: (9,10)-(9,11) = ")" │ │ └── block: ∅ │ ├── @ CallNode (location: (10,2)-(10,8)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ CallNode (location: (10,2)-(10,3)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -230,12 +235,12 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (10,6)-(10,7)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 5 │ │ ├── closing_loc: (10,7)-(10,8) = ")" │ │ └── block: ∅ │ └── @ CallNode (location: (11,2)-(11,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (11,2)-(11,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -256,10 +261,10 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ IntegerNode (location: (11,6)-(11,7)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 6 │ │ └── @ IntegerNode (location: (11,9)-(11,10)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 7 │ ├── closing_loc: (11,10)-(11,11) = ")" │ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/difficult1_line_numbers2.txt b/test/prism/snapshots/seattlerb/difficult1_line_numbers2.txt index f586634c59..480e51c259 100644 --- a/test/prism/snapshots/seattlerb/difficult1_line_numbers2.txt +++ b/test/prism/snapshots/seattlerb/difficult1_line_numbers2.txt @@ -1,18 +1,23 @@ @ ProgramNode (location: (1,0)-(7,1)) +├── flags: ∅ ├── locals: [:b, :c] └── statements: @ StatementsNode (location: (1,0)-(7,1)) + ├── flags: ∅ └── body: (length: 2) ├── @ IfNode (location: (1,0)-(6,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (1,0)-(1,2) = "if" │ ├── predicate: │ │ @ TrueNode (location: (1,3)-(1,7)) + │ │ └── flags: static_literal │ ├── then_keyword_loc: (1,8)-(1,12) = "then" │ ├── statements: │ │ @ StatementsNode (location: (2,2)-(5,6)) + │ │ ├── flags: ∅ │ │ └── body: (length: 4) │ │ ├── @ CallNode (location: (2,2)-(2,8)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :p @@ -31,16 +36,17 @@ │ │ │ ├── closing_loc: (2,7)-(2,8) = ")" │ │ │ └── block: ∅ │ │ ├── @ LocalVariableWriteNode (location: (3,2)-(3,7)) + │ │ │ ├── flags: newline │ │ │ ├── name: :b │ │ │ ├── depth: 0 │ │ │ ├── name_loc: (3,2)-(3,3) = "b" │ │ │ ├── value: │ │ │ │ @ IntegerNode (location: (3,6)-(3,7)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── operator_loc: (3,4)-(3,5) = "=" │ │ ├── @ CallNode (location: (4,2)-(4,5)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :p @@ -51,23 +57,25 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ LocalVariableReadNode (location: (4,4)-(4,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :b │ │ │ │ └── depth: 0 │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ LocalVariableWriteNode (location: (5,2)-(5,6)) + │ │ ├── flags: newline │ │ ├── name: :c │ │ ├── depth: 0 │ │ ├── name_loc: (5,2)-(5,3) = "c" │ │ ├── value: │ │ │ @ IntegerNode (location: (5,5)-(5,6)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── operator_loc: (5,4)-(5,5) = "=" │ ├── consequent: ∅ │ └── end_keyword_loc: (6,0)-(6,3) = "end" └── @ CallNode (location: (7,0)-(7,1)) - ├── flags: variable_call, ignore_visibility + ├── flags: newline, variable_call, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a diff --git a/test/prism/snapshots/seattlerb/difficult2_.txt b/test/prism/snapshots/seattlerb/difficult2_.txt index b53d4cad3f..2ffeda1526 100644 --- a/test/prism/snapshots/seattlerb/difficult2_.txt +++ b/test/prism/snapshots/seattlerb/difficult2_.txt @@ -1,20 +1,24 @@ @ ProgramNode (location: (1,0)-(2,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(2,6)) + ├── flags: ∅ └── body: (length: 2) ├── @ IfNode (location: (1,0)-(1,13)) + │ ├── flags: newline │ ├── if_keyword_loc: ∅ │ ├── predicate: │ │ @ IntegerNode (location: (1,0)-(1,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── then_keyword_loc: (1,2)-(1,3) = "?" │ ├── statements: │ │ @ StatementsNode (location: (1,4)-(1,9)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,4)-(1,9)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :b @@ -34,17 +38,19 @@ │ │ └── block: ∅ │ ├── consequent: │ │ @ ElseNode (location: (1,10)-(1,13)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (1,10)-(1,11) = ":" │ │ ├── statements: │ │ │ @ StatementsNode (location: (1,12)-(1,13)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ IntegerNode (location: (1,12)-(1,13)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: newline, static_literal, decimal │ │ │ └── value: 2 │ │ └── end_keyword_loc: ∅ │ └── end_keyword_loc: ∅ └── @ CallNode (location: (2,0)-(2,6)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :a @@ -58,16 +64,17 @@ │ ├── flags: symbol_keys │ └── elements: (length: 1) │ └── @ AssocNode (location: (2,2)-(2,6)) + │ ├── flags: static_literal │ ├── key: │ │ @ SymbolNode (location: (2,2)-(2,4)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (2,2)-(2,3) = "d" │ │ ├── closing_loc: (2,3)-(2,4) = ":" │ │ └── unescaped: "d" │ ├── value: │ │ @ IntegerNode (location: (2,5)-(2,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ └── operator_loc: ∅ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/difficult3_.txt b/test/prism/snapshots/seattlerb/difficult3_.txt index f074c49a9f..313cfa4cf2 100644 --- a/test/prism/snapshots/seattlerb/difficult3_.txt +++ b/test/prism/snapshots/seattlerb/difficult3_.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,18)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,18)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,18)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,22 +16,27 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,18)) + ├── flags: ∅ ├── locals: [:a, :b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,16)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,15)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :a │ │ │ └── @ MultiTargetNode (location: (1,8)-(1,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (1,9)-(1,10)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :b │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (1,12)-(1,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (1,12)-(1,13) = "*" │ │ │ │ └── expression: │ │ │ │ @ RequiredParameterNode (location: (1,13)-(1,14)) diff --git a/test/prism/snapshots/seattlerb/difficult3_2.txt b/test/prism/snapshots/seattlerb/difficult3_2.txt index af1a649171..e1eed78c79 100644 --- a/test/prism/snapshots/seattlerb/difficult3_2.txt +++ b/test/prism/snapshots/seattlerb/difficult3_2.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,13)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,13)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,13)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,13)) + ├── flags: ∅ ├── locals: [:a, :b] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,11)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,10)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: diff --git a/test/prism/snapshots/seattlerb/difficult3_3.txt b/test/prism/snapshots/seattlerb/difficult3_3.txt index e49bbcd55a..5dcd71d651 100644 --- a/test/prism/snapshots/seattlerb/difficult3_3.txt +++ b/test/prism/snapshots/seattlerb/difficult3_3.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,17)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,11 +16,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,17)) + ├── flags: ∅ ├── locals: [:a, :b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,15)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: diff --git a/test/prism/snapshots/seattlerb/difficult3_4.txt b/test/prism/snapshots/seattlerb/difficult3_4.txt index 73afffb4cb..8d84f2d4c3 100644 --- a/test/prism/snapshots/seattlerb/difficult3_4.txt +++ b/test/prism/snapshots/seattlerb/difficult3_4.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [:a] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ LocalVariableWriteNode (location: (1,0)-(1,17)) + ├── flags: newline ├── name: :a ├── depth: 0 ├── name_loc: (1,0)-(1,1) = "a" ├── value: │ @ IfNode (location: (1,2)-(1,17)) + │ ├── flags: newline │ ├── if_keyword_loc: ∅ │ ├── predicate: │ │ @ CallNode (location: (1,2)-(1,3)) @@ -24,15 +28,20 @@ │ ├── then_keyword_loc: (1,4)-(1,5) = "?" │ ├── statements: │ │ @ StatementsNode (location: (1,6)-(1,10)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ TrueNode (location: (1,6)-(1,10)) + │ │ └── flags: newline, static_literal │ ├── consequent: │ │ @ ElseNode (location: (1,10)-(1,17)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (1,10)-(1,11) = ":" │ │ ├── statements: │ │ │ @ StatementsNode (location: (1,12)-(1,17)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ FalseNode (location: (1,12)-(1,17)) + │ │ │ └── flags: newline, static_literal │ │ └── end_keyword_loc: ∅ │ └── end_keyword_loc: ∅ └── operator_loc: (1,1)-(1,2) = "=" diff --git a/test/prism/snapshots/seattlerb/difficult3_5.txt b/test/prism/snapshots/seattlerb/difficult3_5.txt index 793c3f1e11..b8bbbdc03e 100644 --- a/test/prism/snapshots/seattlerb/difficult3_5.txt +++ b/test/prism/snapshots/seattlerb/difficult3_5.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,19)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,19)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,19)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -15,21 +17,24 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ LambdaNode (location: (1,2)-(1,19)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── operator_loc: (1,2)-(1,4) = "->" │ ├── opening_loc: (1,7)-(1,8) = "{" │ ├── closing_loc: (1,18)-(1,19) = "}" │ ├── parameters: │ │ @ BlockParametersNode (location: (1,4)-(1,6)) + │ │ ├── flags: ∅ │ │ ├── parameters: ∅ │ │ ├── locals: (length: 0) │ │ ├── opening_loc: (1,4)-(1,5) = "(" │ │ └── closing_loc: (1,5)-(1,6) = ")" │ └── body: │ @ StatementsNode (location: (1,9)-(1,17)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,9)-(1,17)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :g @@ -39,6 +44,7 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,11)-(1,17)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ diff --git a/test/prism/snapshots/seattlerb/difficult3__10.txt b/test/prism/snapshots/seattlerb/difficult3__10.txt index 0131e44d44..a5ce0762f1 100644 --- a/test/prism/snapshots/seattlerb/difficult3__10.txt +++ b/test/prism/snapshots/seattlerb/difficult3__10.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,18)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,18)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,18)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,19 +16,24 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,18)) + ├── flags: ∅ ├── locals: [:a, :b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,16)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,15)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :a │ │ │ └── @ MultiTargetNode (location: (1,8)-(1,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 0) │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (1,9)-(1,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (1,9)-(1,10) = "*" │ │ │ │ └── expression: │ │ │ │ @ RequiredParameterNode (location: (1,10)-(1,11)) diff --git a/test/prism/snapshots/seattlerb/difficult3__11.txt b/test/prism/snapshots/seattlerb/difficult3__11.txt index a658b091c2..c1017885d8 100644 --- a/test/prism/snapshots/seattlerb/difficult3__11.txt +++ b/test/prism/snapshots/seattlerb/difficult3__11.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,14)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,14)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,14)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,19 +16,24 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,14)) + ├── flags: ∅ ├── locals: [:a] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,12)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :a │ │ │ └── @ MultiTargetNode (location: (1,8)-(1,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 0) │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (1,9)-(1,10)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (1,9)-(1,10) = "*" │ │ │ │ └── expression: ∅ │ │ │ ├── rights: (length: 0) diff --git a/test/prism/snapshots/seattlerb/difficult3__12.txt b/test/prism/snapshots/seattlerb/difficult3__12.txt index 5aa252fe6a..bbcfad48b4 100644 --- a/test/prism/snapshots/seattlerb/difficult3__12.txt +++ b/test/prism/snapshots/seattlerb/difficult3__12.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,17)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,19 +16,24 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,17)) + ├── flags: ∅ ├── locals: [:a, :b] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,15)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :a │ │ │ └── @ MultiTargetNode (location: (1,8)-(1,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 0) │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (1,9)-(1,10)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (1,9)-(1,10) = "*" │ │ │ │ └── expression: ∅ │ │ │ ├── rights: (length: 1) diff --git a/test/prism/snapshots/seattlerb/difficult3__6.txt b/test/prism/snapshots/seattlerb/difficult3__6.txt index a42a625be7..95d1ac39b5 100644 --- a/test/prism/snapshots/seattlerb/difficult3__6.txt +++ b/test/prism/snapshots/seattlerb/difficult3__6.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,21)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,21)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,21)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,22 +16,27 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,21)) + ├── flags: ∅ ├── locals: [:a, :b, :c, :d] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,19)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,18)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :a │ │ │ └── @ MultiTargetNode (location: (1,8)-(1,18)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (1,9)-(1,10)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :b │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (1,12)-(1,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (1,12)-(1,13) = "*" │ │ │ │ └── expression: │ │ │ │ @ RequiredParameterNode (location: (1,13)-(1,14)) diff --git a/test/prism/snapshots/seattlerb/difficult3__7.txt b/test/prism/snapshots/seattlerb/difficult3__7.txt index b08025804c..4640cfdb53 100644 --- a/test/prism/snapshots/seattlerb/difficult3__7.txt +++ b/test/prism/snapshots/seattlerb/difficult3__7.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,17)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,22 +16,27 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,17)) + ├── flags: ∅ ├── locals: [:a, :b] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,15)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :a │ │ │ └── @ MultiTargetNode (location: (1,8)-(1,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (1,9)-(1,10)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :b │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (1,12)-(1,13)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (1,12)-(1,13) = "*" │ │ │ │ └── expression: ∅ │ │ │ ├── rights: (length: 0) diff --git a/test/prism/snapshots/seattlerb/difficult3__8.txt b/test/prism/snapshots/seattlerb/difficult3__8.txt index b2b118faef..e19cbfc279 100644 --- a/test/prism/snapshots/seattlerb/difficult3__8.txt +++ b/test/prism/snapshots/seattlerb/difficult3__8.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,20)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,20)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,20)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,22 +16,27 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,20)) + ├── flags: ∅ ├── locals: [:a, :b, :c] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,18)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,17)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :a │ │ │ └── @ MultiTargetNode (location: (1,8)-(1,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (1,9)-(1,10)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :b │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (1,12)-(1,13)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (1,12)-(1,13) = "*" │ │ │ │ └── expression: ∅ │ │ │ ├── rights: (length: 1) diff --git a/test/prism/snapshots/seattlerb/difficult3__9.txt b/test/prism/snapshots/seattlerb/difficult3__9.txt index 85c10a4432..2259351b41 100644 --- a/test/prism/snapshots/seattlerb/difficult3__9.txt +++ b/test/prism/snapshots/seattlerb/difficult3__9.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,15)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,15)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,15)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :f @@ -14,19 +16,24 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,2)-(1,15)) + ├── flags: ∅ ├── locals: [:a, :b] ├── parameters: │ @ BlockParametersNode (location: (1,4)-(1,13)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,5)-(1,12)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ RequiredParameterNode (location: (1,5)-(1,6)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :a │ │ │ └── @ MultiTargetNode (location: (1,8)-(1,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 0) │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (1,9)-(1,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (1,9)-(1,10) = "*" │ │ │ │ └── expression: │ │ │ │ @ RequiredParameterNode (location: (1,10)-(1,11)) diff --git a/test/prism/snapshots/seattlerb/difficult4__leading_dots.txt b/test/prism/snapshots/seattlerb/difficult4__leading_dots.txt index 8307c806e6..4201ed00aa 100644 --- a/test/prism/snapshots/seattlerb/difficult4__leading_dots.txt +++ b/test/prism/snapshots/seattlerb/difficult4__leading_dots.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(2,2)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(2,2)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(2,2)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(1,1)) │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/seattlerb/difficult4__leading_dots2.txt b/test/prism/snapshots/seattlerb/difficult4__leading_dots2.txt index ee4370c0f0..8dd122ddd4 100644 --- a/test/prism/snapshots/seattlerb/difficult4__leading_dots2.txt +++ b/test/prism/snapshots/seattlerb/difficult4__leading_dots2.txt @@ -1,16 +1,18 @@ @ ProgramNode (location: (1,0)-(2,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(2,3)) + ├── flags: ∅ └── body: (length: 2) ├── @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 1 └── @ RangeNode (location: (2,0)-(2,3)) - ├── flags: ∅ + ├── flags: newline, static_literal ├── left: ∅ ├── right: │ @ IntegerNode (location: (2,2)-(2,3)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 3 └── operator_loc: (2,0)-(2,2) = ".." diff --git a/test/prism/snapshots/seattlerb/difficult6_.txt b/test/prism/snapshots/seattlerb/difficult6_.txt index bf80034fe9..fc273bda46 100644 --- a/test/prism/snapshots/seattlerb/difficult6_.txt +++ b/test/prism/snapshots/seattlerb/difficult6_.txt @@ -1,17 +1,22 @@ @ ProgramNode (location: (1,0)-(1,25)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,25)) + ├── flags: ∅ └── body: (length: 1) └── @ LambdaNode (location: (1,0)-(1,25)) + ├── flags: newline ├── locals: [:a, :b] ├── operator_loc: (1,0)-(1,2) = "->" ├── opening_loc: (1,13)-(1,14) = "{" ├── closing_loc: (1,24)-(1,25) = "}" ├── parameters: │ @ BlockParametersNode (location: (1,2)-(1,12)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,3)-(1,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,3)-(1,4)) │ │ │ ├── flags: ∅ @@ -24,6 +29,7 @@ │ │ │ ├── operator_loc: (1,7)-(1,8) = "=" │ │ │ └── value: │ │ │ @ NilNode (location: (1,8)-(1,11)) + │ │ │ └── flags: static_literal │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) │ │ ├── keywords: (length: 0) @@ -34,9 +40,10 @@ │ └── closing_loc: (1,11)-(1,12) = ")" └── body: @ StatementsNode (location: (1,15)-(1,23)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,15)-(1,23)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :p @@ -50,9 +57,11 @@ │ ├── flags: ∅ │ ├── elements: (length: 2) │ │ ├── @ LocalVariableReadNode (location: (1,18)-(1,19)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ └── @ LocalVariableReadNode (location: (1,21)-(1,22)) + │ │ ├── flags: ∅ │ │ ├── name: :b │ │ └── depth: 0 │ ├── opening_loc: (1,17)-(1,18) = "[" diff --git a/test/prism/snapshots/seattlerb/difficult6__7.txt b/test/prism/snapshots/seattlerb/difficult6__7.txt index 7fe70c7033..509da6914f 100644 --- a/test/prism/snapshots/seattlerb/difficult6__7.txt +++ b/test/prism/snapshots/seattlerb/difficult6__7.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,11)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,11)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,11)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(1,1)) │ ├── flags: variable_call, ignore_visibility @@ -25,24 +27,28 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ ParenthesesNode (location: (1,4)-(1,7)) + │ ├── flags: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,5)-(1,6)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (1,5)-(1,6)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 1 │ ├── opening_loc: (1,4)-(1,5) = "(" │ └── closing_loc: (1,6)-(1,7) = ")" ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,8)-(1,11)) + ├── flags: ∅ ├── locals: [] ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (1,9)-(1,10)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,9)-(1,10)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :c diff --git a/test/prism/snapshots/seattlerb/difficult6__8.txt b/test/prism/snapshots/seattlerb/difficult6__8.txt index 7f915e283c..c6fece62cb 100644 --- a/test/prism/snapshots/seattlerb/difficult6__8.txt +++ b/test/prism/snapshots/seattlerb/difficult6__8.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,12)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,12)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,12)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,0)-(1,1)) │ ├── flags: variable_call, ignore_visibility @@ -25,24 +27,28 @@ │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ ParenthesesNode (location: (1,5)-(1,8)) + │ ├── flags: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,6)-(1,7)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (1,6)-(1,7)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 1 │ ├── opening_loc: (1,5)-(1,6) = "(" │ └── closing_loc: (1,7)-(1,8) = ")" ├── closing_loc: ∅ └── block: @ BlockNode (location: (1,9)-(1,12)) + ├── flags: ∅ ├── locals: [] ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (1,10)-(1,11)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,10)-(1,11)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :c diff --git a/test/prism/snapshots/seattlerb/difficult7_.txt b/test/prism/snapshots/seattlerb/difficult7_.txt index 40c778cf6c..0635798848 100644 --- a/test/prism/snapshots/seattlerb/difficult7_.txt +++ b/test/prism/snapshots/seattlerb/difficult7_.txt @@ -1,15 +1,19 @@ @ ProgramNode (location: (1,6)-(4,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,6)-(4,7)) + ├── flags: ∅ └── body: (length: 1) └── @ HashNode (location: (1,6)-(4,7)) + ├── flags: newline ├── opening_loc: (1,6)-(1,7) = "{" ├── elements: (length: 2) │ ├── @ AssocNode (location: (2,8)-(2,33)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (2,8)-(2,10)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (2,8)-(2,9) = "a" │ │ │ ├── closing_loc: (2,9)-(2,10) = ":" @@ -26,12 +30,15 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: │ │ │ @ BlockNode (location: (2,18)-(2,33)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [] │ │ │ ├── parameters: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (2,20)-(2,31)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IfNode (location: (2,20)-(2,31)) + │ │ │ │ ├── flags: newline │ │ │ │ ├── if_keyword_loc: ∅ │ │ │ │ ├── predicate: │ │ │ │ │ @ CallNode (location: (2,20)-(2,21)) @@ -47,9 +54,10 @@ │ │ │ │ ├── then_keyword_loc: (2,22)-(2,23) = "?" │ │ │ │ ├── statements: │ │ │ │ │ @ StatementsNode (location: (2,24)-(2,27)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ CallNode (location: (2,24)-(2,27)) - │ │ │ │ │ ├── flags: ignore_visibility + │ │ │ │ │ ├── flags: newline, ignore_visibility │ │ │ │ │ ├── receiver: ∅ │ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ │ ├── name: :c @@ -60,12 +68,14 @@ │ │ │ │ │ └── block: ∅ │ │ │ │ ├── consequent: │ │ │ │ │ @ ElseNode (location: (2,28)-(2,31)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── else_keyword_loc: (2,28)-(2,29) = ":" │ │ │ │ │ ├── statements: │ │ │ │ │ │ @ StatementsNode (location: (2,30)-(2,31)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ │ └── @ CallNode (location: (2,30)-(2,31)) - │ │ │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ │ │ ├── receiver: ∅ │ │ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ │ │ ├── name: :d @@ -80,14 +90,16 @@ │ │ │ └── closing_loc: (2,32)-(2,33) = "}" │ │ └── operator_loc: ∅ │ └── @ AssocNode (location: (3,8)-(3,14)) + │ ├── flags: static_literal │ ├── key: │ │ @ SymbolNode (location: (3,8)-(3,10)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (3,8)-(3,9) = "e" │ │ ├── closing_loc: (3,9)-(3,10) = ":" │ │ └── unescaped: "e" │ ├── value: │ │ @ NilNode (location: (3,11)-(3,14)) + │ │ └── flags: static_literal │ └── operator_loc: ∅ └── closing_loc: (4,6)-(4,7) = "}" diff --git a/test/prism/snapshots/seattlerb/do_bug.txt b/test/prism/snapshots/seattlerb/do_bug.txt index 5877b18d68..8d1a0b786c 100644 --- a/test/prism/snapshots/seattlerb/do_bug.txt +++ b/test/prism/snapshots/seattlerb/do_bug.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(4,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,3)) + ├── flags: ∅ └── body: (length: 2) ├── @ CallNode (location: (1,0)-(1,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a @@ -15,12 +17,12 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (1,2)-(1,3)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── closing_loc: ∅ │ └── block: ∅ └── @ CallNode (location: (2,0)-(4,3)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (2,0)-(2,1)) │ ├── flags: variable_call, ignore_visibility @@ -40,11 +42,14 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (2,4)-(4,3)) + ├── flags: ∅ ├── locals: [:c] ├── parameters: │ @ BlockParametersNode (location: (2,7)-(2,10)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (2,8)-(2,9)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (2,8)-(2,9)) │ │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/do_lambda.txt b/test/prism/snapshots/seattlerb/do_lambda.txt index 4713fb3e4b..76383b0ada 100644 --- a/test/prism/snapshots/seattlerb/do_lambda.txt +++ b/test/prism/snapshots/seattlerb/do_lambda.txt @@ -1,15 +1,19 @@ @ ProgramNode (location: (1,0)-(1,11)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,11)) + ├── flags: ∅ └── body: (length: 1) └── @ LambdaNode (location: (1,0)-(1,11)) + ├── flags: newline ├── locals: [] ├── operator_loc: (1,0)-(1,2) = "->" ├── opening_loc: (1,5)-(1,7) = "do" ├── closing_loc: (1,8)-(1,11) = "end" ├── parameters: │ @ BlockParametersNode (location: (1,2)-(1,4)) + │ ├── flags: ∅ │ ├── parameters: ∅ │ ├── locals: (length: 0) │ ├── opening_loc: (1,2)-(1,3) = "(" diff --git a/test/prism/snapshots/seattlerb/dot2_nil__26.txt b/test/prism/snapshots/seattlerb/dot2_nil__26.txt index 104515ac3a..fc5122055f 100644 --- a/test/prism/snapshots/seattlerb/dot2_nil__26.txt +++ b/test/prism/snapshots/seattlerb/dot2_nil__26.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,3)) + ├── flags: ∅ └── body: (length: 1) └── @ RangeNode (location: (1,0)-(1,3)) - ├── flags: ∅ + ├── flags: newline ├── left: │ @ CallNode (location: (1,0)-(1,1)) │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/seattlerb/dot3_nil__26.txt b/test/prism/snapshots/seattlerb/dot3_nil__26.txt index ec7f57cd96..c2277975db 100644 --- a/test/prism/snapshots/seattlerb/dot3_nil__26.txt +++ b/test/prism/snapshots/seattlerb/dot3_nil__26.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,4)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,4)) + ├── flags: ∅ └── body: (length: 1) └── @ RangeNode (location: (1,0)-(1,4)) - ├── flags: exclude_end + ├── flags: newline, exclude_end ├── left: │ @ CallNode (location: (1,0)-(1,1)) │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/seattlerb/dstr_evstr.txt b/test/prism/snapshots/seattlerb/dstr_evstr.txt index add8ad6f5c..143d8ff584 100644 --- a/test/prism/snapshots/seattlerb/dstr_evstr.txt +++ b/test/prism/snapshots/seattlerb/dstr_evstr.txt @@ -1,28 +1,34 @@ @ ProgramNode (location: (1,0)-(1,12)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,12)) + ├── flags: ∅ └── body: (length: 1) └── @ InterpolatedStringNode (location: (1,0)-(1,12)) - ├── flags: ∅ + ├── flags: newline ├── opening_loc: (1,0)-(1,1) = "\"" ├── parts: (length: 2) │ ├── @ EmbeddedStatementsNode (location: (1,1)-(1,7)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (1,1)-(1,3) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (1,3)-(1,6)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ StringNode (location: (1,3)-(1,6)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: (1,3)-(1,4) = "'" │ │ │ ├── content_loc: (1,4)-(1,5) = "a" │ │ │ ├── closing_loc: (1,5)-(1,6) = "'" │ │ │ └── unescaped: "a" │ │ └── closing_loc: (1,6)-(1,7) = "}" │ └── @ EmbeddedStatementsNode (location: (1,7)-(1,11)) + │ ├── flags: ∅ │ ├── opening_loc: (1,7)-(1,9) = "\#{" │ ├── statements: │ │ @ StatementsNode (location: (1,9)-(1,10)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,9)-(1,10)) │ │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/seattlerb/dstr_evstr_empty_end.txt b/test/prism/snapshots/seattlerb/dstr_evstr_empty_end.txt index 53f97e4b36..8e3ade63c9 100644 --- a/test/prism/snapshots/seattlerb/dstr_evstr_empty_end.txt +++ b/test/prism/snapshots/seattlerb/dstr_evstr_empty_end.txt @@ -1,15 +1,20 @@ @ ProgramNode (location: (1,0)-(1,11)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,11)) + ├── flags: ∅ └── body: (length: 1) └── @ InterpolatedSymbolNode (location: (1,0)-(1,11)) + ├── flags: newline ├── opening_loc: (1,0)-(1,2) = ":\"" ├── parts: (length: 1) │ └── @ EmbeddedStatementsNode (location: (1,2)-(1,10)) + │ ├── flags: ∅ │ ├── opening_loc: (1,2)-(1,4) = "\#{" │ ├── statements: │ │ @ StatementsNode (location: (1,4)-(1,9)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,4)-(1,9)) │ │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/seattlerb/dstr_lex_state.txt b/test/prism/snapshots/seattlerb/dstr_lex_state.txt index c4c0ef0437..2bdeab0834 100644 --- a/test/prism/snapshots/seattlerb/dstr_lex_state.txt +++ b/test/prism/snapshots/seattlerb/dstr_lex_state.txt @@ -1,16 +1,20 @@ @ ProgramNode (location: (1,0)-(1,8)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,8)) + ├── flags: ∅ └── body: (length: 1) └── @ InterpolatedStringNode (location: (1,0)-(1,8)) - ├── flags: ∅ + ├── flags: newline ├── opening_loc: (1,0)-(1,1) = "\"" ├── parts: (length: 1) │ └── @ EmbeddedStatementsNode (location: (1,1)-(1,7)) + │ ├── flags: ∅ │ ├── opening_loc: (1,1)-(1,3) = "\#{" │ ├── statements: │ │ @ StatementsNode (location: (1,3)-(1,6)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,3)-(1,6)) │ │ ├── flags: ignore_visibility @@ -24,7 +28,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ SymbolNode (location: (1,4)-(1,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (1,4)-(1,5) = ":" │ │ │ ├── value_loc: (1,5)-(1,6) = "a" │ │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/dstr_str.txt b/test/prism/snapshots/seattlerb/dstr_str.txt index 6fe0781880..7b3e0e36ad 100644 --- a/test/prism/snapshots/seattlerb/dstr_str.txt +++ b/test/prism/snapshots/seattlerb/dstr_str.txt @@ -1,26 +1,30 @@ @ ProgramNode (location: (1,0)-(1,10)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,10)) + ├── flags: ∅ └── body: (length: 1) └── @ InterpolatedStringNode (location: (1,0)-(1,10)) - ├── flags: mutable + ├── flags: newline, static_literal, mutable ├── opening_loc: (1,0)-(1,1) = "\"" ├── parts: (length: 2) │ ├── @ EmbeddedStatementsNode (location: (1,1)-(1,7)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (1,1)-(1,3) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (1,3)-(1,6)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ StringNode (location: (1,3)-(1,6)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: (1,3)-(1,4) = "'" │ │ │ ├── content_loc: (1,4)-(1,5) = "a" │ │ │ ├── closing_loc: (1,5)-(1,6) = "'" │ │ │ └── unescaped: "a" │ │ └── closing_loc: (1,6)-(1,7) = "}" │ └── @ StringNode (location: (1,7)-(1,9)) - │ ├── flags: frozen + │ ├── flags: static_literal, frozen │ ├── opening_loc: ∅ │ ├── content_loc: (1,7)-(1,9) = " b" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/dsym_esc_to_sym.txt b/test/prism/snapshots/seattlerb/dsym_esc_to_sym.txt index 7b1b68131e..4224e305e9 100644 --- a/test/prism/snapshots/seattlerb/dsym_esc_to_sym.txt +++ b/test/prism/snapshots/seattlerb/dsym_esc_to_sym.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ SymbolNode (location: (1,0)-(1,17)) - ├── flags: forced_utf8_encoding + ├── flags: newline, static_literal, forced_utf8_encoding ├── opening_loc: (1,0)-(1,2) = ":\"" ├── value_loc: (1,2)-(1,16) = "Variet\\303\\240" ├── closing_loc: (1,16)-(1,17) = "\"" diff --git a/test/prism/snapshots/seattlerb/dsym_to_sym.txt b/test/prism/snapshots/seattlerb/dsym_to_sym.txt index eb7e435c63..7c5d2bef87 100644 --- a/test/prism/snapshots/seattlerb/dsym_to_sym.txt +++ b/test/prism/snapshots/seattlerb/dsym_to_sym.txt @@ -1,35 +1,39 @@ @ ProgramNode (location: (1,0)-(3,13)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,13)) + ├── flags: ∅ └── body: (length: 2) ├── @ AliasMethodNode (location: (1,0)-(1,17)) + │ ├── flags: newline │ ├── new_name: │ │ @ SymbolNode (location: (1,6)-(1,11)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,6)-(1,8) = ":\"" │ │ ├── value_loc: (1,8)-(1,10) = "<<" │ │ ├── closing_loc: (1,10)-(1,11) = "\"" │ │ └── unescaped: "<<" │ ├── old_name: │ │ @ SymbolNode (location: (1,12)-(1,17)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,12)-(1,14) = ":\"" │ │ ├── value_loc: (1,14)-(1,16) = ">>" │ │ ├── closing_loc: (1,16)-(1,17) = "\"" │ │ └── unescaped: ">>" │ └── keyword_loc: (1,0)-(1,5) = "alias" └── @ AliasMethodNode (location: (3,0)-(3,13)) + ├── flags: newline ├── new_name: │ @ SymbolNode (location: (3,6)-(3,9)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (3,6)-(3,7) = ":" │ ├── value_loc: (3,7)-(3,9) = "<<" │ ├── closing_loc: ∅ │ └── unescaped: "<<" ├── old_name: │ @ SymbolNode (location: (3,10)-(3,13)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (3,10)-(3,11) = ":" │ ├── value_loc: (3,11)-(3,13) = ">>" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/eq_begin_line_numbers.txt b/test/prism/snapshots/seattlerb/eq_begin_line_numbers.txt index a5fc3951d6..010ee71da0 100644 --- a/test/prism/snapshots/seattlerb/eq_begin_line_numbers.txt +++ b/test/prism/snapshots/seattlerb/eq_begin_line_numbers.txt @@ -1,11 +1,13 @@ @ ProgramNode (location: (1,0)-(6,1)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(6,1)) + ├── flags: ∅ └── body: (length: 2) ├── @ IntegerNode (location: (1,0)-(1,1)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 1 └── @ IntegerNode (location: (6,0)-(6,1)) - ├── flags: decimal + ├── flags: newline, static_literal, decimal └── value: 2 diff --git a/test/prism/snapshots/seattlerb/eq_begin_why_wont_people_use_their_spacebar.txt b/test/prism/snapshots/seattlerb/eq_begin_why_wont_people_use_their_spacebar.txt index 2103bde8cb..5f6a3fe62e 100644 --- a/test/prism/snapshots/seattlerb/eq_begin_why_wont_people_use_their_spacebar.txt +++ b/test/prism/snapshots/seattlerb/eq_begin_why_wont_people_use_their_spacebar.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(3,8)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,8)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(3,8)) - ├── flags: attribute_write + ├── flags: newline, attribute_write ├── receiver: │ @ CallNode (location: (1,0)-(1,1)) │ ├── flags: variable_call, ignore_visibility @@ -35,12 +37,14 @@ │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ └── @ BeginNode (location: (1,5)-(3,8)) + │ ├── flags: ∅ │ ├── begin_keyword_loc: (1,5)-(1,10) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (2,7)-(2,9)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (2,7)-(2,9)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 42 │ ├── rescue_clause: ∅ │ ├── else_clause: ∅ diff --git a/test/prism/snapshots/seattlerb/evstr_evstr.txt b/test/prism/snapshots/seattlerb/evstr_evstr.txt index 9c801299f8..c8dba1c3e5 100644 --- a/test/prism/snapshots/seattlerb/evstr_evstr.txt +++ b/test/prism/snapshots/seattlerb/evstr_evstr.txt @@ -1,16 +1,20 @@ @ ProgramNode (location: (1,0)-(1,10)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,10)) + ├── flags: ∅ └── body: (length: 1) └── @ InterpolatedStringNode (location: (1,0)-(1,10)) - ├── flags: ∅ + ├── flags: newline ├── opening_loc: (1,0)-(1,1) = "\"" ├── parts: (length: 2) │ ├── @ EmbeddedStatementsNode (location: (1,1)-(1,5)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (1,1)-(1,3) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (1,3)-(1,4)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (1,3)-(1,4)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -24,9 +28,11 @@ │ │ │ └── block: ∅ │ │ └── closing_loc: (1,4)-(1,5) = "}" │ └── @ EmbeddedStatementsNode (location: (1,5)-(1,9)) + │ ├── flags: ∅ │ ├── opening_loc: (1,5)-(1,7) = "\#{" │ ├── statements: │ │ @ StatementsNode (location: (1,7)-(1,8)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,7)-(1,8)) │ │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/seattlerb/evstr_str.txt b/test/prism/snapshots/seattlerb/evstr_str.txt index 54319e613c..69a992b19a 100644 --- a/test/prism/snapshots/seattlerb/evstr_str.txt +++ b/test/prism/snapshots/seattlerb/evstr_str.txt @@ -1,16 +1,20 @@ @ ProgramNode (location: (1,0)-(1,8)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,8)) + ├── flags: ∅ └── body: (length: 1) └── @ InterpolatedStringNode (location: (1,0)-(1,8)) - ├── flags: ∅ + ├── flags: newline ├── opening_loc: (1,0)-(1,1) = "\"" ├── parts: (length: 2) │ ├── @ EmbeddedStatementsNode (location: (1,1)-(1,5)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (1,1)-(1,3) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (1,3)-(1,4)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (1,3)-(1,4)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -24,7 +28,7 @@ │ │ │ └── block: ∅ │ │ └── closing_loc: (1,4)-(1,5) = "}" │ └── @ StringNode (location: (1,5)-(1,7)) - │ ├── flags: frozen + │ ├── flags: static_literal, frozen │ ├── opening_loc: ∅ │ ├── content_loc: (1,5)-(1,7) = " b" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/expr_not_bang.txt b/test/prism/snapshots/seattlerb/expr_not_bang.txt index 0a289ab7be..868ef85648 100644 --- a/test/prism/snapshots/seattlerb/expr_not_bang.txt +++ b/test/prism/snapshots/seattlerb/expr_not_bang.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(1,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,5)) + ├── flags: ∅ └── body: (length: 1) └── @ CallNode (location: (1,0)-(1,5)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (1,2)-(1,5)) │ ├── flags: ignore_visibility diff --git a/test/prism/snapshots/seattlerb/f_kw.txt b/test/prism/snapshots/seattlerb/f_kw.txt index 4226137925..e2b82371b8 100644 --- a/test/prism/snapshots/seattlerb/f_kw.txt +++ b/test/prism/snapshots/seattlerb/f_kw.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,15)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,15)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,15)) + ├── flags: newline ├── name: :x ├── name_loc: (1,4)-(1,5) = "x" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,10)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -20,7 +24,7 @@ │ │ ├── name_loc: (1,6)-(1,8) = "k:" │ │ └── value: │ │ @ IntegerNode (location: (1,8)-(1,10)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 42 │ ├── keyword_rest: ∅ │ └── block: ∅ diff --git a/test/prism/snapshots/seattlerb/f_kw__required.txt b/test/prism/snapshots/seattlerb/f_kw__required.txt index f72f43e034..c44dbbf2fc 100644 --- a/test/prism/snapshots/seattlerb/f_kw__required.txt +++ b/test/prism/snapshots/seattlerb/f_kw__required.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,13)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,13)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,13)) + ├── flags: newline ├── name: :x ├── name_loc: (1,4)-(1,5) = "x" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,6)-(1,8)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ diff --git a/test/prism/snapshots/seattlerb/flip2_env_lvar.txt b/test/prism/snapshots/seattlerb/flip2_env_lvar.txt index 5a71ab6cda..8950bbf087 100644 --- a/test/prism/snapshots/seattlerb/flip2_env_lvar.txt +++ b/test/prism/snapshots/seattlerb/flip2_env_lvar.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(1,16)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,16)) + ├── flags: ∅ └── body: (length: 1) └── @ IfNode (location: (1,0)-(1,16)) + ├── flags: newline ├── if_keyword_loc: (1,0)-(1,2) = "if" ├── predicate: │ @ FlipFlopNode (location: (1,3)-(1,7)) diff --git a/test/prism/snapshots/seattlerb/float_with_if_modifier.txt b/test/prism/snapshots/seattlerb/float_with_if_modifier.txt index 9c1da70f24..aab855944c 100644 --- a/test/prism/snapshots/seattlerb/float_with_if_modifier.txt +++ b/test/prism/snapshots/seattlerb/float_with_if_modifier.txt @@ -1,17 +1,23 @@ @ ProgramNode (location: (1,0)-(1,10)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,10)) + ├── flags: ∅ └── body: (length: 1) └── @ IfNode (location: (1,0)-(1,10)) + ├── flags: newline ├── if_keyword_loc: (1,3)-(1,5) = "if" ├── predicate: │ @ TrueNode (location: (1,6)-(1,10)) + │ └── flags: static_literal ├── then_keyword_loc: ∅ ├── statements: │ @ StatementsNode (location: (1,0)-(1,3)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ FloatNode (location: (1,0)-(1,3)) + │ ├── flags: newline, static_literal │ └── value: 1.0 ├── consequent: ∅ └── end_keyword_loc: ∅ diff --git a/test/prism/snapshots/seattlerb/heredoc__backslash_dos_format.txt b/test/prism/snapshots/seattlerb/heredoc__backslash_dos_format.txt index 353e4c6964..7d745587b3 100644 --- a/test/prism/snapshots/seattlerb/heredoc__backslash_dos_format.txt +++ b/test/prism/snapshots/seattlerb/heredoc__backslash_dos_format.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(1,12)) +├── flags: ∅ ├── locals: [:str] └── statements: @ StatementsNode (location: (1,0)-(1,12)) + ├── flags: ∅ └── body: (length: 1) └── @ LocalVariableWriteNode (location: (1,0)-(1,12)) + ├── flags: newline ├── name: :str ├── depth: 0 ├── name_loc: (1,0)-(1,3) = "str" diff --git a/test/prism/snapshots/seattlerb/heredoc_backslash_nl.txt b/test/prism/snapshots/seattlerb/heredoc_backslash_nl.txt index fc4c1784fe..4c34bf6ef6 100644 --- a/test/prism/snapshots/seattlerb/heredoc_backslash_nl.txt +++ b/test/prism/snapshots/seattlerb/heredoc_backslash_nl.txt @@ -1,16 +1,18 @@ @ ProgramNode (location: (1,0)-(5,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(5,7)) + ├── flags: ∅ └── body: (length: 2) ├── @ StringNode (location: (1,0)-(3,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (1,0)-(1,1) = "\"" │ ├── content_loc: (1,1)-(3,0) = " why would someone do this? \\\n blah\n" │ ├── closing_loc: (3,0)-(3,1) = "\"" │ └── unescaped: " why would someone do this? blah\n" └── @ StringNode (location: (5,0)-(5,7)) - ├── flags: ∅ + ├── flags: newline ├── opening_loc: (5,0)-(5,7) = "<<-DESC" ├── content_loc: (6,0)-(8,0) = " why would someone do this? \\\n blah\n" ├── closing_loc: (8,0)-(9,0) = "DESC\n" diff --git a/test/prism/snapshots/seattlerb/heredoc_bad_hex_escape.txt b/test/prism/snapshots/seattlerb/heredoc_bad_hex_escape.txt index 2b1d776404..1c521108c0 100644 --- a/test/prism/snapshots/seattlerb/heredoc_bad_hex_escape.txt +++ b/test/prism/snapshots/seattlerb/heredoc_bad_hex_escape.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(1,9)) +├── flags: ∅ ├── locals: [:s] └── statements: @ StatementsNode (location: (1,0)-(1,9)) + ├── flags: ∅ └── body: (length: 1) └── @ LocalVariableWriteNode (location: (1,0)-(1,9)) + ├── flags: newline ├── name: :s ├── depth: 0 ├── name_loc: (1,0)-(1,1) = "s" diff --git a/test/prism/snapshots/seattlerb/heredoc_bad_oct_escape.txt b/test/prism/snapshots/seattlerb/heredoc_bad_oct_escape.txt index 7a01f8d6d1..9726a71822 100644 --- a/test/prism/snapshots/seattlerb/heredoc_bad_oct_escape.txt +++ b/test/prism/snapshots/seattlerb/heredoc_bad_oct_escape.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(1,10)) +├── flags: ∅ ├── locals: [:s] └── statements: @ StatementsNode (location: (1,0)-(1,10)) + ├── flags: ∅ └── body: (length: 1) └── @ LocalVariableWriteNode (location: (1,0)-(1,10)) + ├── flags: newline ├── name: :s ├── depth: 0 ├── name_loc: (1,0)-(1,1) = "s" diff --git a/test/prism/snapshots/seattlerb/heredoc_comma_arg.txt b/test/prism/snapshots/seattlerb/heredoc_comma_arg.txt index 888ebc809a..0a43298472 100644 --- a/test/prism/snapshots/seattlerb/heredoc_comma_arg.txt +++ b/test/prism/snapshots/seattlerb/heredoc_comma_arg.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(7,1)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(7,1)) + ├── flags: ∅ └── body: (length: 2) ├── @ ArrayNode (location: (1,0)-(2,3)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 1) │ │ └── @ StringNode (location: (1,1)-(2,1)) │ │ ├── flags: ∅ @@ -15,7 +17,7 @@ │ ├── opening_loc: (1,0)-(1,1) = "[" │ └── closing_loc: (2,2)-(2,3) = "]" └── @ ArrayNode (location: (4,0)-(7,1)) - ├── flags: ∅ + ├── flags: newline ├── elements: (length: 1) │ └── @ StringNode (location: (4,1)-(4,8)) │ ├── flags: ∅ diff --git a/test/prism/snapshots/seattlerb/heredoc_lineno.txt b/test/prism/snapshots/seattlerb/heredoc_lineno.txt index a51ce71afe..7dde22912e 100644 --- a/test/prism/snapshots/seattlerb/heredoc_lineno.txt +++ b/test/prism/snapshots/seattlerb/heredoc_lineno.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(7,6)) +├── flags: ∅ ├── locals: [:c, :d] └── statements: @ StatementsNode (location: (1,0)-(7,6)) + ├── flags: ∅ └── body: (length: 2) ├── @ LocalVariableWriteNode (location: (1,0)-(1,11)) + │ ├── flags: newline │ ├── name: :c │ ├── depth: 0 │ ├── name_loc: (1,0)-(1,1) = "c" @@ -16,11 +19,12 @@ │ │ └── unescaped: "line2\nline3\nline4\n" │ └── operator_loc: (1,2)-(1,3) = "=" └── @ LocalVariableWriteNode (location: (7,0)-(7,6)) + ├── flags: newline ├── name: :d ├── depth: 0 ├── name_loc: (7,0)-(7,1) = "d" ├── value: │ @ IntegerNode (location: (7,4)-(7,6)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 42 └── operator_loc: (7,2)-(7,3) = "=" diff --git a/test/prism/snapshots/seattlerb/heredoc_nested.txt b/test/prism/snapshots/seattlerb/heredoc_nested.txt index a2322b9632..4820ef6d4d 100644 --- a/test/prism/snapshots/seattlerb/heredoc_nested.txt +++ b/test/prism/snapshots/seattlerb/heredoc_nested.txt @@ -1,42 +1,46 @@ @ ProgramNode (location: (1,0)-(7,2)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(7,2)) + ├── flags: ∅ └── body: (length: 1) └── @ ArrayNode (location: (1,0)-(7,2)) - ├── flags: ∅ + ├── flags: newline, static_literal ├── elements: (length: 2) │ ├── @ InterpolatedStringNode (location: (1,1)-(1,4)) - │ │ ├── flags: mutable + │ │ ├── flags: static_literal, mutable │ │ ├── opening_loc: (1,1)-(1,4) = "<=" ├── @ SymbolNode (location: (77,0)-(77,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (77,0)-(77,1) = ":" │ ├── value_loc: (77,1)-(77,3) = ">>" │ ├── closing_loc: ∅ │ └── unescaped: ">>" ├── @ SymbolNode (location: (79,0)-(79,2)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (79,0)-(79,1) = ":" │ ├── value_loc: (79,1)-(79,2) = ">" │ ├── closing_loc: ∅ │ └── unescaped: ">" ├── @ SymbolNode (location: (81,0)-(81,4)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (81,0)-(81,1) = ":" │ ├── value_loc: (81,1)-(81,4) = "<=>" │ ├── closing_loc: ∅ │ └── unescaped: "<=>" ├── @ SymbolNode (location: (83,0)-(83,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (83,0)-(83,1) = ":" │ ├── value_loc: (83,1)-(83,3) = "<=" │ ├── closing_loc: ∅ │ └── unescaped: "<=" ├── @ SymbolNode (location: (85,0)-(85,3)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (85,0)-(85,1) = ":" │ ├── value_loc: (85,1)-(85,3) = "<<" │ ├── closing_loc: ∅ │ └── unescaped: "<<" ├── @ SymbolNode (location: (87,0)-(87,2)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (87,0)-(87,1) = ":" │ ├── value_loc: (87,1)-(87,2) = "<" │ ├── closing_loc: ∅ │ └── unescaped: "<" ├── @ SymbolNode (location: (89,0)-(89,9)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (89,0)-(89,1) = ":" │ ├── value_loc: (89,1)-(89,9) = "__LINE__" │ ├── closing_loc: ∅ │ └── unescaped: "__LINE__" ├── @ SymbolNode (location: (91,0)-(91,9)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (91,0)-(91,1) = ":" │ ├── value_loc: (91,1)-(91,9) = "__FILE__" │ ├── closing_loc: ∅ │ └── unescaped: "__FILE__" └── @ SymbolNode (location: (93,0)-(93,13)) - ├── flags: forced_us_ascii_encoding + ├── flags: newline, static_literal, forced_us_ascii_encoding ├── opening_loc: (93,0)-(93,1) = ":" ├── value_loc: (93,1)-(93,13) = "__ENCODING__" ├── closing_loc: ∅ diff --git a/test/prism/snapshots/ternary_operator.txt b/test/prism/snapshots/ternary_operator.txt index 0277ac88f0..76debe3fa7 100644 --- a/test/prism/snapshots/ternary_operator.txt +++ b/test/prism/snapshots/ternary_operator.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(15,12)) +├── flags: ∅ ├── locals: [:_a] └── statements: @ StatementsNode (location: (1,0)-(15,12)) + ├── flags: ∅ └── body: (length: 8) ├── @ IfNode (location: (1,0)-(1,9)) + │ ├── flags: newline │ ├── if_keyword_loc: ∅ │ ├── predicate: │ │ @ CallNode (location: (1,0)-(1,1)) @@ -19,9 +22,10 @@ │ ├── then_keyword_loc: (1,2)-(1,3) = "?" │ ├── statements: │ │ @ StatementsNode (location: (1,4)-(1,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,4)-(1,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :b @@ -32,12 +36,14 @@ │ │ └── block: ∅ │ ├── consequent: │ │ @ ElseNode (location: (1,6)-(1,9)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (1,6)-(1,7) = ":" │ │ ├── statements: │ │ │ @ StatementsNode (location: (1,8)-(1,9)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (1,8)-(1,9)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :c @@ -49,6 +55,7 @@ │ │ └── end_keyword_loc: ∅ │ └── end_keyword_loc: ∅ ├── @ IfNode (location: (3,0)-(3,27)) + │ ├── flags: newline │ ├── if_keyword_loc: ∅ │ ├── predicate: │ │ @ CallNode (location: (3,0)-(3,1)) @@ -64,8 +71,10 @@ │ ├── then_keyword_loc: (3,2)-(3,3) = "?" │ ├── statements: │ │ @ StatementsNode (location: (3,4)-(3,14)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ DefinedNode (location: (3,4)-(3,14)) + │ │ ├── flags: newline │ │ ├── lparen_loc: ∅ │ │ ├── value: │ │ │ @ CallNode (location: (3,13)-(3,14)) @@ -82,11 +91,14 @@ │ │ └── keyword_loc: (3,4)-(3,12) = "defined?" │ ├── consequent: │ │ @ ElseNode (location: (3,15)-(3,27)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (3,15)-(3,16) = ":" │ │ ├── statements: │ │ │ @ StatementsNode (location: (3,17)-(3,27)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ DefinedNode (location: (3,17)-(3,27)) + │ │ │ ├── flags: newline │ │ │ ├── lparen_loc: ∅ │ │ │ ├── value: │ │ │ │ @ CallNode (location: (3,26)-(3,27)) @@ -104,6 +116,7 @@ │ │ └── end_keyword_loc: ∅ │ └── end_keyword_loc: ∅ ├── @ IfNode (location: (5,0)-(5,15)) + │ ├── flags: newline │ ├── if_keyword_loc: ∅ │ ├── predicate: │ │ @ CallNode (location: (5,0)-(5,6)) @@ -119,18 +132,24 @@ │ ├── then_keyword_loc: (5,6)-(5,7) = "?" │ ├── statements: │ │ @ StatementsNode (location: (5,7)-(5,11)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ TrueNode (location: (5,7)-(5,11)) + │ │ └── flags: newline, static_literal │ ├── consequent: │ │ @ ElseNode (location: (5,11)-(5,15)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (5,11)-(5,12) = ":" │ │ ├── statements: │ │ │ @ StatementsNode (location: (5,12)-(5,15)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ NilNode (location: (5,12)-(5,15)) + │ │ │ └── flags: newline, static_literal │ │ └── end_keyword_loc: ∅ │ └── end_keyword_loc: ∅ ├── @ IfNode (location: (7,0)-(7,16)) + │ ├── flags: newline │ ├── if_keyword_loc: ∅ │ ├── predicate: │ │ @ CallNode (location: (7,0)-(7,6)) @@ -146,18 +165,24 @@ │ ├── then_keyword_loc: (7,6)-(7,7) = "?" │ ├── statements: │ │ @ StatementsNode (location: (7,7)-(7,12)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ FalseNode (location: (7,7)-(7,12)) + │ │ └── flags: newline, static_literal │ ├── consequent: │ │ @ ElseNode (location: (7,12)-(7,16)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (7,12)-(7,13) = ":" │ │ ├── statements: │ │ │ @ StatementsNode (location: (7,13)-(7,16)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ NilNode (location: (7,13)-(7,16)) + │ │ │ └── flags: newline, static_literal │ │ └── end_keyword_loc: ∅ │ └── end_keyword_loc: ∅ ├── @ IfNode (location: (9,0)-(9,14)) + │ ├── flags: newline │ ├── if_keyword_loc: ∅ │ ├── predicate: │ │ @ CallNode (location: (9,0)-(9,6)) @@ -173,18 +198,24 @@ │ ├── then_keyword_loc: (9,6)-(9,7) = "?" │ ├── statements: │ │ @ StatementsNode (location: (9,7)-(9,10)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NilNode (location: (9,7)-(9,10)) + │ │ └── flags: newline, static_literal │ ├── consequent: │ │ @ ElseNode (location: (9,10)-(9,14)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (9,10)-(9,11) = ":" │ │ ├── statements: │ │ │ @ StatementsNode (location: (9,11)-(9,14)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ NilNode (location: (9,11)-(9,14)) + │ │ │ └── flags: newline, static_literal │ │ └── end_keyword_loc: ∅ │ └── end_keyword_loc: ∅ ├── @ IfNode (location: (11,0)-(11,10)) + │ ├── flags: newline │ ├── if_keyword_loc: ∅ │ ├── predicate: │ │ @ CallNode (location: (11,0)-(11,2)) @@ -200,18 +231,24 @@ │ ├── then_keyword_loc: (11,2)-(11,3) = "?" │ ├── statements: │ │ @ StatementsNode (location: (11,3)-(11,6)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NilNode (location: (11,3)-(11,6)) + │ │ └── flags: newline, static_literal │ ├── consequent: │ │ @ ElseNode (location: (11,6)-(11,10)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (11,6)-(11,7) = ":" │ │ ├── statements: │ │ │ @ StatementsNode (location: (11,7)-(11,10)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ NilNode (location: (11,7)-(11,10)) + │ │ │ └── flags: newline, static_literal │ │ └── end_keyword_loc: ∅ │ └── end_keyword_loc: ∅ ├── @ IfNode (location: (13,0)-(13,14)) + │ ├── flags: newline │ ├── if_keyword_loc: ∅ │ ├── predicate: │ │ @ CallNode (location: (13,0)-(13,1)) @@ -227,9 +264,10 @@ │ ├── then_keyword_loc: (13,2)-(13,3) = "?" │ ├── statements: │ │ @ StatementsNode (location: (13,3)-(13,7)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (13,3)-(13,7)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :var1 @@ -240,12 +278,14 @@ │ │ └── block: ∅ │ ├── consequent: │ │ @ ElseNode (location: (13,8)-(13,14)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (13,8)-(13,9) = ":" │ │ ├── statements: │ │ │ @ StatementsNode (location: (13,10)-(13,14)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (13,10)-(13,14)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :var2 @@ -257,6 +297,7 @@ │ │ └── end_keyword_loc: ∅ │ └── end_keyword_loc: ∅ └── @ IfNode (location: (15,0)-(15,12)) + ├── flags: newline ├── if_keyword_loc: ∅ ├── predicate: │ @ CallNode (location: (15,0)-(15,4)) @@ -272,24 +313,28 @@ ├── then_keyword_loc: (15,4)-(15,5) = "?" ├── statements: │ @ StatementsNode (location: (15,5)-(15,10)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ LocalVariableWriteNode (location: (15,5)-(15,10)) + │ ├── flags: newline │ ├── name: :_a │ ├── depth: 0 │ ├── name_loc: (15,5)-(15,7) = "_a" │ ├── value: │ │ @ IntegerNode (location: (15,9)-(15,10)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── operator_loc: (15,8)-(15,9) = "=" ├── consequent: │ @ ElseNode (location: (15,10)-(15,12)) + │ ├── flags: ∅ │ ├── else_keyword_loc: (15,10)-(15,11) = ":" │ ├── statements: │ │ @ StatementsNode (location: (15,11)-(15,12)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (15,11)-(15,12)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 1 │ └── end_keyword_loc: ∅ └── end_keyword_loc: ∅ diff --git a/test/prism/snapshots/tilde_heredocs.txt b/test/prism/snapshots/tilde_heredocs.txt index f50f915a64..dc6321ce1a 100644 --- a/test/prism/snapshots/tilde_heredocs.txt +++ b/test/prism/snapshots/tilde_heredocs.txt @@ -1,403 +1,419 @@ @ ProgramNode (location: (1,0)-(94,6)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(94,6)) + ├── flags: ∅ └── body: (length: 19) ├── @ InterpolatedStringNode (location: (1,0)-(1,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (1,0)-(1,6) = "<<~EOF" │ ├── parts: (length: 4) │ │ ├── @ StringNode (location: (2,0)-(3,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (2,0)-(3,0) = " a\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: " a\n" │ │ ├── @ EmbeddedStatementsNode (location: (3,0)-(3,4)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (3,0)-(3,2) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (3,2)-(3,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (3,2)-(3,3)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── closing_loc: (3,3)-(3,4) = "}" │ │ ├── @ StringNode (location: (3,4)-(4,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (3,4)-(4,0) = "\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\n" │ │ └── @ StringNode (location: (4,0)-(5,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (4,0)-(5,0) = " a\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: " a\n" │ └── closing_loc: (5,0)-(6,0) = "EOF\n" ├── @ StringNode (location: (7,0)-(7,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (7,0)-(7,6) = "<<~EOF" │ ├── content_loc: (8,0)-(9,0) = " a\n" │ ├── closing_loc: (9,0)-(10,0) = "EOF\n" │ └── unescaped: "a\n" ├── @ InterpolatedStringNode (location: (11,0)-(11,6)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: (11,0)-(11,6) = "<<~EOF" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (12,0)-(13,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (12,0)-(13,0) = "\ta\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\ta\n" │ │ ├── @ StringNode (location: (13,0)-(14,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (13,0)-(14,0) = " b\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "b\n" │ │ └── @ StringNode (location: (14,0)-(15,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (14,0)-(15,0) = "\t\tc\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "\t\tc\n" │ └── closing_loc: (15,0)-(16,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (17,0)-(17,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (17,0)-(17,6) = "<<~EOF" │ ├── parts: (length: 2) │ │ ├── @ EmbeddedStatementsNode (location: (18,2)-(18,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (18,2)-(18,4) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (18,4)-(18,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (18,4)-(18,5)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── closing_loc: (18,5)-(18,6) = "}" │ │ └── @ StringNode (location: (18,6)-(19,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (18,6)-(19,0) = " a\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: " a\n" │ └── closing_loc: (19,0)-(20,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (21,0)-(21,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (21,0)-(21,6) = "<<~EOF" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (22,0)-(22,4)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (22,0)-(22,4) = " a " │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a " │ │ ├── @ EmbeddedStatementsNode (location: (22,4)-(22,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (22,4)-(22,6) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (22,6)-(22,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (22,6)-(22,7)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── closing_loc: (22,7)-(22,8) = "}" │ │ └── @ StringNode (location: (22,8)-(23,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (22,8)-(23,0) = "\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "\n" │ └── closing_loc: (23,0)-(24,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (25,0)-(25,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (25,0)-(25,6) = "<<~EOF" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (26,0)-(27,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (26,0)-(27,0) = " a\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: " a\n" │ │ ├── @ EmbeddedStatementsNode (location: (27,1)-(27,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (27,1)-(27,3) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (27,3)-(27,4)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (27,3)-(27,4)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── closing_loc: (27,4)-(27,5) = "}" │ │ └── @ StringNode (location: (27,5)-(28,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (27,5)-(28,0) = "\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "\n" │ └── closing_loc: (28,0)-(29,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (30,0)-(30,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (30,0)-(30,6) = "<<~EOF" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (31,0)-(32,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (31,0)-(32,0) = " a\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a\n" │ │ ├── @ EmbeddedStatementsNode (location: (32,2)-(32,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (32,2)-(32,4) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (32,4)-(32,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (32,4)-(32,5)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── closing_loc: (32,5)-(32,6) = "}" │ │ └── @ StringNode (location: (32,6)-(33,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (32,6)-(33,0) = "\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "\n" │ └── closing_loc: (33,0)-(34,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (35,0)-(35,6)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: (35,0)-(35,6) = "<<~EOF" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (36,0)-(37,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (36,0)-(37,0) = " a\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a\n" │ │ └── @ StringNode (location: (37,0)-(38,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (37,0)-(38,0) = " b\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "b\n" │ └── closing_loc: (38,0)-(39,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (40,0)-(40,6)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: (40,0)-(40,6) = "<<~EOF" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (41,0)-(42,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (41,0)-(42,0) = " a\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a\n" │ │ └── @ StringNode (location: (42,0)-(43,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (42,0)-(43,0) = " b\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: " b\n" │ └── closing_loc: (43,0)-(44,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (45,0)-(45,6)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: (45,0)-(45,6) = "<<~EOF" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (46,0)-(47,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (46,0)-(47,0) = "\t\t\ta\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\ta\n" │ │ └── @ StringNode (location: (47,0)-(48,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (47,0)-(48,0) = "\t\tb\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "b\n" │ └── closing_loc: (48,0)-(49,0) = "EOF\n" ├── @ StringNode (location: (50,0)-(50,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (50,0)-(50,8) = "<<~'EOF'" │ ├── content_loc: (51,0)-(52,0) = " a \#{1}\n" │ ├── closing_loc: (52,0)-(53,0) = "EOF\n" │ └── unescaped: "a \#{1}\n" ├── @ InterpolatedStringNode (location: (54,0)-(54,6)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: (54,0)-(54,6) = "<<~EOF" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (55,0)-(56,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (55,0)-(56,0) = "\ta\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a\n" │ │ └── @ StringNode (location: (56,0)-(57,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (56,0)-(57,0) = "\t b\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: " b\n" │ └── closing_loc: (57,0)-(58,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (59,0)-(59,6)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: (59,0)-(59,6) = "<<~EOF" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (60,0)-(61,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (60,0)-(61,0) = "\t a\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: " a\n" │ │ └── @ StringNode (location: (61,0)-(62,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (61,0)-(62,0) = "\tb\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "b\n" │ └── closing_loc: (62,0)-(63,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (64,0)-(64,6)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: (64,0)-(64,6) = "<<~EOF" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (65,0)-(66,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (65,0)-(66,0) = " \ta\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a\n" │ │ └── @ StringNode (location: (66,0)-(67,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (66,0)-(67,0) = " b\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "b\n" │ └── closing_loc: (67,0)-(68,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (69,0)-(69,6)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: (69,0)-(69,6) = "<<~EOF" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (70,0)-(71,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (70,0)-(71,0) = " a\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a\n" │ │ ├── @ StringNode (location: (71,0)-(72,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (71,0)-(72,0) = "\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\n" │ │ └── @ StringNode (location: (72,0)-(73,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (72,0)-(73,0) = " b\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "b\n" │ └── closing_loc: (73,0)-(74,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (75,0)-(75,6)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: (75,0)-(75,6) = "<<~EOF" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (76,0)-(77,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (76,0)-(77,0) = " a\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a\n" │ │ ├── @ StringNode (location: (77,0)-(78,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (77,0)-(78,0) = "\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\n" │ │ └── @ StringNode (location: (78,0)-(79,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (78,0)-(79,0) = " b\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "b\n" │ └── closing_loc: (79,0)-(80,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (81,0)-(81,6)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: (81,0)-(81,6) = "<<~EOF" │ ├── parts: (length: 5) │ │ ├── @ StringNode (location: (82,0)-(83,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (82,0)-(83,0) = " a\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a\n" │ │ ├── @ StringNode (location: (83,0)-(84,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (83,0)-(84,0) = "\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\n" │ │ ├── @ StringNode (location: (84,0)-(85,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (84,0)-(85,0) = "\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\n" │ │ ├── @ StringNode (location: (85,0)-(86,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (85,0)-(86,0) = "\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\n" │ │ └── @ StringNode (location: (86,0)-(87,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (86,0)-(87,0) = " b\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "b\n" │ └── closing_loc: (87,0)-(88,0) = "EOF\n" ├── @ InterpolatedStringNode (location: (89,0)-(89,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (89,0)-(89,6) = "<<~EOF" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (90,0)-(91,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (90,0)-(91,0) = "\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\n" │ │ ├── @ EmbeddedStatementsNode (location: (91,2)-(91,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (91,2)-(91,4) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (91,4)-(91,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (91,4)-(91,5)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── closing_loc: (91,5)-(91,6) = "}" │ │ └── @ StringNode (location: (91,6)-(92,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (91,6)-(92,0) = "a\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a\n" │ └── closing_loc: (92,0)-(93,0) = " EOF\n" └── @ InterpolatedStringNode (location: (94,0)-(94,6)) - ├── flags: ∅ + ├── flags: newline ├── opening_loc: (94,0)-(94,6) = "<<~EOT" ├── parts: (length: 3) │ ├── @ EmbeddedStatementsNode (location: (95,2)-(95,6)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (95,2)-(95,4) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (95,4)-(95,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ IntegerNode (location: (95,4)-(95,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── closing_loc: (95,5)-(95,6) = "}" │ ├── @ StringNode (location: (95,6)-(96,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (95,6)-(96,0) = "\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "\n" │ └── @ StringNode (location: (96,0)-(97,0)) - │ ├── flags: frozen + │ ├── flags: static_literal, frozen │ ├── opening_loc: ∅ │ ├── content_loc: (96,0)-(97,0) = "\tb\n" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/undef.txt b/test/prism/snapshots/undef.txt index e59ace92f5..7491fc4c95 100644 --- a/test/prism/snapshots/undef.txt +++ b/test/prism/snapshots/undef.txt @@ -1,115 +1,129 @@ @ ProgramNode (location: (1,0)-(17,14)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(17,14)) + ├── flags: ∅ └── body: (length: 9) ├── @ UndefNode (location: (1,0)-(1,7)) + │ ├── flags: newline │ ├── names: (length: 1) │ │ └── @ SymbolNode (location: (1,6)-(1,7)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (1,6)-(1,7) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ └── keyword_loc: (1,0)-(1,5) = "undef" ├── @ UndefNode (location: (3,0)-(3,10)) + │ ├── flags: newline │ ├── names: (length: 2) │ │ ├── @ SymbolNode (location: (3,6)-(3,7)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (3,6)-(3,7) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ └── @ SymbolNode (location: (3,9)-(3,10)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (3,9)-(3,10) = "b" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "b" │ └── keyword_loc: (3,0)-(3,5) = "undef" ├── @ UndefNode (location: (5,0)-(5,8)) + │ ├── flags: newline │ ├── names: (length: 1) │ │ └── @ SymbolNode (location: (5,6)-(5,8)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (5,6)-(5,8) = "if" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "if" │ └── keyword_loc: (5,0)-(5,5) = "undef" ├── @ UndefNode (location: (7,0)-(7,9)) + │ ├── flags: newline │ ├── names: (length: 1) │ │ └── @ SymbolNode (location: (7,6)-(7,9)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (7,6)-(7,9) = "<=>" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "<=>" │ └── keyword_loc: (7,0)-(7,5) = "undef" ├── @ UndefNode (location: (9,0)-(9,8)) + │ ├── flags: newline │ ├── names: (length: 1) │ │ └── @ SymbolNode (location: (9,6)-(9,8)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (9,6)-(9,7) = ":" │ │ ├── value_loc: (9,7)-(9,8) = "a" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "a" │ └── keyword_loc: (9,0)-(9,5) = "undef" ├── @ UndefNode (location: (11,0)-(11,16)) + │ ├── flags: newline │ ├── names: (length: 3) │ │ ├── @ SymbolNode (location: (11,6)-(11,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (11,6)-(11,7) = ":" │ │ │ ├── value_loc: (11,7)-(11,8) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ ├── @ SymbolNode (location: (11,10)-(11,12)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (11,10)-(11,11) = ":" │ │ │ ├── value_loc: (11,11)-(11,12) = "b" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "b" │ │ └── @ SymbolNode (location: (11,14)-(11,16)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (11,14)-(11,15) = ":" │ │ ├── value_loc: (11,15)-(11,16) = "c" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "c" │ └── keyword_loc: (11,0)-(11,5) = "undef" ├── @ UndefNode (location: (13,0)-(13,12)) + │ ├── flags: newline │ ├── names: (length: 1) │ │ └── @ SymbolNode (location: (13,6)-(13,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (13,6)-(13,8) = ":'" │ │ ├── value_loc: (13,8)-(13,11) = "abc" │ │ ├── closing_loc: (13,11)-(13,12) = "'" │ │ └── unescaped: "abc" │ └── keyword_loc: (13,0)-(13,5) = "undef" ├── @ UndefNode (location: (15,0)-(15,16)) + │ ├── flags: newline │ ├── names: (length: 1) │ │ └── @ InterpolatedSymbolNode (location: (15,6)-(15,16)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (15,6)-(15,8) = ":\"" │ │ ├── parts: (length: 2) │ │ │ ├── @ StringNode (location: (15,8)-(15,11)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (15,8)-(15,11) = "abc" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "abc" │ │ │ └── @ EmbeddedStatementsNode (location: (15,11)-(15,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (15,11)-(15,13) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (15,13)-(15,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (15,13)-(15,14)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── closing_loc: (15,14)-(15,15) = "}" │ │ └── closing_loc: (15,15)-(15,16) = "\"" │ └── keyword_loc: (15,0)-(15,5) = "undef" └── @ UndefNode (location: (17,0)-(17,14)) + ├── flags: newline ├── names: (length: 1) │ └── @ SymbolNode (location: (17,6)-(17,14)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: ∅ │ ├── value_loc: (17,6)-(17,14) = "Constant" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/unescaping.txt b/test/prism/snapshots/unescaping.txt index 456ef226d0..822fbe7d8f 100644 --- a/test/prism/snapshots/unescaping.txt +++ b/test/prism/snapshots/unescaping.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(7,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(7,7)) + ├── flags: ∅ └── body: (length: 4) ├── @ ArrayNode (location: (1,0)-(1,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 1) │ │ └── @ StringNode (location: (1,1)-(1,9)) │ │ ├── flags: ∅ @@ -15,19 +17,19 @@ │ ├── opening_loc: (1,0)-(1,1) = "[" │ └── closing_loc: (1,9)-(1,10) = "]" ├── @ RegularExpressionNode (location: (3,0)-(3,8)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (3,0)-(3,1) = "/" │ ├── content_loc: (3,1)-(3,7) = "\\c\#{1}" │ ├── closing_loc: (3,7)-(3,8) = "/" │ └── unescaped: "\\x03{1}" ├── @ StringNode (location: (5,0)-(5,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (5,0)-(5,1) = "\"" │ ├── content_loc: (5,1)-(5,7) = "\\c\#{1}" │ ├── closing_loc: (5,7)-(5,8) = "\"" │ └── unescaped: "\u0003{1}" └── @ StringNode (location: (7,0)-(7,7)) - ├── flags: ∅ + ├── flags: newline ├── opening_loc: (7,0)-(7,7) = "<<~HERE" ├── content_loc: (8,0)-(9,0) = " \\c\#{1}\n" ├── closing_loc: (9,0)-(10,0) = "HERE\n" diff --git a/test/prism/snapshots/unless.txt b/test/prism/snapshots/unless.txt index 6c4aaf66a5..130c0bb2b8 100644 --- a/test/prism/snapshots/unless.txt +++ b/test/prism/snapshots/unless.txt @@ -1,58 +1,71 @@ @ ProgramNode (location: (1,0)-(14,22)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(14,22)) + ├── flags: ∅ └── body: (length: 7) ├── @ UnlessNode (location: (1,0)-(1,19)) + │ ├── flags: newline │ ├── keyword_loc: (1,0)-(1,6) = "unless" │ ├── predicate: │ │ @ TrueNode (location: (1,7)-(1,11)) + │ │ └── flags: static_literal │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (1,13)-(1,14)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (1,13)-(1,14)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 1 │ ├── consequent: ∅ │ └── end_keyword_loc: (1,16)-(1,19) = "end" ├── @ UnlessNode (location: (3,0)-(4,12)) + │ ├── flags: newline │ ├── keyword_loc: (3,0)-(3,6) = "unless" │ ├── predicate: │ │ @ TrueNode (location: (3,7)-(3,11)) + │ │ └── flags: static_literal │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (4,0)-(4,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (4,0)-(4,1)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 1 │ ├── consequent: │ │ @ ElseNode (location: (4,2)-(4,12)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (4,2)-(4,6) = "else" │ │ ├── statements: │ │ │ @ StatementsNode (location: (4,7)-(4,8)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ IntegerNode (location: (4,7)-(4,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: newline, static_literal, decimal │ │ │ └── value: 2 │ │ └── end_keyword_loc: (4,9)-(4,12) = "end" │ └── end_keyword_loc: (4,9)-(4,12) = "end" ├── @ UnlessNode (location: (6,0)-(6,13)) + │ ├── flags: newline │ ├── keyword_loc: (6,2)-(6,8) = "unless" │ ├── predicate: │ │ @ TrueNode (location: (6,9)-(6,13)) + │ │ └── flags: static_literal │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (6,0)-(6,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (6,0)-(6,1)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 1 │ ├── consequent: ∅ │ └── end_keyword_loc: ∅ ├── @ CallNode (location: (8,0)-(8,25)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -62,20 +75,26 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (8,4)-(8,25)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (8,6)-(8,23)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ UnlessNode (location: (8,6)-(8,23)) + │ │ ├── flags: newline │ │ ├── keyword_loc: (8,12)-(8,18) = "unless" │ │ ├── predicate: │ │ │ @ TrueNode (location: (8,19)-(8,23)) + │ │ │ └── flags: static_literal │ │ ├── then_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (8,6)-(8,11)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ BreakNode (location: (8,6)-(8,11)) + │ │ │ ├── flags: newline │ │ │ ├── arguments: ∅ │ │ │ └── keyword_loc: (8,6)-(8,11) = "break" │ │ ├── consequent: ∅ @@ -83,7 +102,7 @@ │ ├── opening_loc: (8,4)-(8,5) = "{" │ └── closing_loc: (8,24)-(8,25) = "}" ├── @ CallNode (location: (10,0)-(10,24)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :tap @@ -93,20 +112,26 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (10,4)-(10,24)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (10,6)-(10,22)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ UnlessNode (location: (10,6)-(10,22)) + │ │ ├── flags: newline │ │ ├── keyword_loc: (10,11)-(10,17) = "unless" │ │ ├── predicate: │ │ │ @ TrueNode (location: (10,18)-(10,22)) + │ │ │ └── flags: static_literal │ │ ├── then_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (10,6)-(10,10)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ NextNode (location: (10,6)-(10,10)) + │ │ │ ├── flags: newline │ │ │ ├── arguments: ∅ │ │ │ └── keyword_loc: (10,6)-(10,10) = "next" │ │ ├── consequent: ∅ @@ -114,20 +139,24 @@ │ ├── opening_loc: (10,4)-(10,5) = "{" │ └── closing_loc: (10,23)-(10,24) = "}" ├── @ UnlessNode (location: (12,0)-(12,18)) + │ ├── flags: newline │ ├── keyword_loc: (12,7)-(12,13) = "unless" │ ├── predicate: │ │ @ TrueNode (location: (12,14)-(12,18)) + │ │ └── flags: static_literal │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (12,0)-(12,6)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ ReturnNode (location: (12,0)-(12,6)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── keyword_loc: (12,0)-(12,6) = "return" │ │ └── arguments: ∅ │ ├── consequent: ∅ │ └── end_keyword_loc: ∅ └── @ UnlessNode (location: (14,0)-(14,22)) + ├── flags: newline ├── keyword_loc: (14,11)-(14,17) = "unless" ├── predicate: │ @ CallNode (location: (14,18)-(14,22)) @@ -143,9 +172,10 @@ ├── then_keyword_loc: ∅ ├── statements: │ @ StatementsNode (location: (14,0)-(14,10)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (14,0)-(14,10)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -156,13 +186,13 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ SymbolNode (location: (14,4)-(14,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (14,4)-(14,5) = ":" │ │ │ ├── value_loc: (14,5)-(14,6) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ └── @ SymbolNode (location: (14,8)-(14,10)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (14,8)-(14,9) = ":" │ │ ├── value_loc: (14,9)-(14,10) = "b" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/unparser/corpus/literal/alias.txt b/test/prism/snapshots/unparser/corpus/literal/alias.txt index 18ddc86d4f..6ce892b54d 100644 --- a/test/prism/snapshots/unparser/corpus/literal/alias.txt +++ b/test/prism/snapshots/unparser/corpus/literal/alias.txt @@ -1,27 +1,33 @@ @ ProgramNode (location: (1,0)-(2,15)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(2,15)) + ├── flags: ∅ └── body: (length: 2) ├── @ AliasGlobalVariableNode (location: (1,0)-(1,15)) + │ ├── flags: newline │ ├── new_name: │ │ @ GlobalVariableReadNode (location: (1,6)-(1,10)) + │ │ ├── flags: ∅ │ │ └── name: :$foo │ ├── old_name: │ │ @ GlobalVariableReadNode (location: (1,11)-(1,15)) + │ │ ├── flags: ∅ │ │ └── name: :$bar │ └── keyword_loc: (1,0)-(1,5) = "alias" └── @ AliasMethodNode (location: (2,0)-(2,15)) + ├── flags: newline ├── new_name: │ @ SymbolNode (location: (2,6)-(2,10)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (2,6)-(2,7) = ":" │ ├── value_loc: (2,7)-(2,10) = "foo" │ ├── closing_loc: ∅ │ └── unescaped: "foo" ├── old_name: │ @ SymbolNode (location: (2,11)-(2,15)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (2,11)-(2,12) = ":" │ ├── value_loc: (2,12)-(2,15) = "bar" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/unparser/corpus/literal/assignment.txt b/test/prism/snapshots/unparser/corpus/literal/assignment.txt index 7d3cc389c6..aa1d1037af 100644 --- a/test/prism/snapshots/unparser/corpus/literal/assignment.txt +++ b/test/prism/snapshots/unparser/corpus/literal/assignment.txt @@ -1,21 +1,27 @@ @ ProgramNode (location: (1,0)-(51,17)) +├── flags: ∅ ├── locals: [:a, :b, :foo, :c, :x] └── statements: @ StatementsNode (location: (1,0)-(51,17)) + ├── flags: ∅ └── body: (length: 43) ├── @ GlobalVariableWriteNode (location: (1,0)-(1,6)) + │ ├── flags: newline │ ├── name: :$a │ ├── name_loc: (1,0)-(1,2) = "$a" │ ├── value: │ │ @ IntegerNode (location: (1,5)-(1,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (1,3)-(1,4) = "=" ├── @ MultiWriteNode (location: (2,0)-(2,17)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ GlobalVariableTargetNode (location: (2,1)-(2,3)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :$a │ │ └── @ GlobalVariableTargetNode (location: (2,5)-(2,7)) + │ │ ├── flags: ∅ │ │ └── name: :$b │ ├── rest: ∅ │ ├── rights: (length: 0) @@ -24,29 +30,34 @@ │ ├── operator_loc: (2,9)-(2,10) = "=" │ └── value: │ @ ArrayNode (location: (2,11)-(2,17)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (2,12)-(2,13)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (2,15)-(2,16)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: (2,11)-(2,12) = "[" │ └── closing_loc: (2,16)-(2,17) = "]" ├── @ MultiWriteNode (location: (3,0)-(3,13)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ MultiTargetNode (location: (3,1)-(3,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 1) │ │ │ │ └── @ LocalVariableTargetNode (location: (3,2)-(3,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :a │ │ │ │ └── depth: 0 │ │ │ ├── rest: │ │ │ │ @ ImplicitRestNode (location: (3,3)-(3,4)) + │ │ │ │ └── flags: ∅ │ │ │ ├── rights: (length: 0) │ │ │ ├── lparen_loc: (3,1)-(3,2) = "(" │ │ │ └── rparen_loc: (3,4)-(3,5) = ")" │ │ └── @ LocalVariableTargetNode (location: (3,7)-(3,8)) + │ │ ├── flags: ∅ │ │ ├── name: :b │ │ └── depth: 0 │ ├── rest: ∅ @@ -56,15 +67,18 @@ │ ├── operator_loc: (3,10)-(3,11) = "=" │ └── value: │ @ IntegerNode (location: (3,12)-(3,13)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ MultiWriteNode (location: (4,0)-(4,9)) + │ ├── flags: newline │ ├── lefts: (length: 0) │ ├── rest: │ │ @ SplatNode (location: (4,1)-(4,3)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (4,1)-(4,2) = "*" │ │ └── expression: │ │ @ LocalVariableTargetNode (location: (4,2)-(4,3)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── rights: (length: 0) @@ -73,17 +87,20 @@ │ ├── operator_loc: (4,5)-(4,6) = "=" │ └── value: │ @ ArrayNode (location: (4,7)-(4,9)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 0) │ ├── opening_loc: (4,7)-(4,8) = "[" │ └── closing_loc: (4,8)-(4,9) = "]" ├── @ MultiWriteNode (location: (5,0)-(5,15)) + │ ├── flags: newline │ ├── lefts: (length: 0) │ ├── rest: │ │ @ SplatNode (location: (5,1)-(5,5)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (5,1)-(5,2) = "*" │ │ └── expression: │ │ @ LocalVariableTargetNode (location: (5,2)-(5,5)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── rights: (length: 0) @@ -92,21 +109,24 @@ │ ├── operator_loc: (5,7)-(5,8) = "=" │ └── value: │ @ ArrayNode (location: (5,9)-(5,15)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (5,10)-(5,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (5,13)-(5,14)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: (5,9)-(5,10) = "[" │ └── closing_loc: (5,14)-(5,15) = "]" ├── @ MultiWriteNode (location: (6,0)-(6,19)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ ClassVariableTargetNode (location: (6,1)-(6,4)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :@@a │ │ └── @ ClassVariableTargetNode (location: (6,6)-(6,9)) + │ │ ├── flags: ∅ │ │ └── name: :@@b │ ├── rest: ∅ │ ├── rights: (length: 0) @@ -115,21 +135,24 @@ │ ├── operator_loc: (6,11)-(6,12) = "=" │ └── value: │ @ ArrayNode (location: (6,13)-(6,19)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (6,14)-(6,15)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (6,17)-(6,18)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: (6,13)-(6,14) = "[" │ └── closing_loc: (6,18)-(6,19) = "]" ├── @ MultiWriteNode (location: (7,0)-(7,17)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ InstanceVariableTargetNode (location: (7,1)-(7,3)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :@a │ │ └── @ InstanceVariableTargetNode (location: (7,5)-(7,7)) + │ │ ├── flags: ∅ │ │ └── name: :@b │ ├── rest: ∅ │ ├── rights: (length: 0) @@ -138,27 +161,32 @@ │ ├── operator_loc: (7,9)-(7,10) = "=" │ └── value: │ @ ArrayNode (location: (7,11)-(7,17)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (7,12)-(7,13)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (7,15)-(7,16)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: (7,11)-(7,12) = "[" │ └── closing_loc: (7,16)-(7,17) = "]" ├── @ MultiWriteNode (location: (8,0)-(8,25)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ LocalVariableTargetNode (location: (8,1)-(8,2)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ └── @ MultiTargetNode (location: (8,4)-(8,10)) + │ │ ├── flags: ∅ │ │ ├── lefts: (length: 2) │ │ │ ├── @ LocalVariableTargetNode (location: (8,5)-(8,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :b │ │ │ │ └── depth: 0 │ │ │ └── @ LocalVariableTargetNode (location: (8,8)-(8,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :c │ │ │ └── depth: 0 │ │ ├── rest: ∅ @@ -175,28 +203,31 @@ │ ├── flags: ∅ │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (8,15)-(8,16)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ ArrayNode (location: (8,18)-(8,24)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── elements: (length: 2) │ │ │ ├── @ IntegerNode (location: (8,19)-(8,20)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── @ IntegerNode (location: (8,22)-(8,23)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ ├── opening_loc: (8,18)-(8,19) = "[" │ │ └── closing_loc: (8,23)-(8,24) = "]" │ ├── opening_loc: (8,14)-(8,15) = "[" │ └── closing_loc: (8,24)-(8,25) = "]" ├── @ MultiWriteNode (location: (9,0)-(9,15)) + │ ├── flags: newline │ ├── lefts: (length: 1) │ │ └── @ LocalVariableTargetNode (location: (9,1)-(9,2)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── rest: │ │ @ SplatNode (location: (9,4)-(9,5)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (9,4)-(9,5) = "*" │ │ └── expression: ∅ │ ├── rights: (length: 0) @@ -205,26 +236,30 @@ │ ├── operator_loc: (9,7)-(9,8) = "=" │ └── value: │ @ ArrayNode (location: (9,9)-(9,15)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (9,10)-(9,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (9,13)-(9,14)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: (9,9)-(9,10) = "[" │ └── closing_loc: (9,14)-(9,15) = "]" ├── @ MultiWriteNode (location: (10,0)-(10,18)) + │ ├── flags: newline │ ├── lefts: (length: 1) │ │ └── @ LocalVariableTargetNode (location: (10,1)-(10,2)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── rest: │ │ @ SplatNode (location: (10,4)-(10,8)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (10,4)-(10,5) = "*" │ │ └── expression: │ │ @ LocalVariableTargetNode (location: (10,5)-(10,8)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── rights: (length: 0) @@ -233,22 +268,25 @@ │ ├── operator_loc: (10,10)-(10,11) = "=" │ └── value: │ @ ArrayNode (location: (10,12)-(10,18)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (10,13)-(10,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (10,16)-(10,17)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: (10,12)-(10,13) = "[" │ └── closing_loc: (10,17)-(10,18) = "]" ├── @ MultiWriteNode (location: (11,0)-(11,15)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ LocalVariableTargetNode (location: (11,1)-(11,2)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ └── @ LocalVariableTargetNode (location: (11,4)-(11,5)) + │ │ ├── flags: ∅ │ │ ├── name: :b │ │ └── depth: 0 │ ├── rest: ∅ @@ -258,22 +296,25 @@ │ ├── operator_loc: (11,7)-(11,8) = "=" │ └── value: │ @ ArrayNode (location: (11,9)-(11,15)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (11,10)-(11,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (11,13)-(11,14)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: (11,9)-(11,10) = "[" │ └── closing_loc: (11,14)-(11,15) = "]" ├── @ MultiWriteNode (location: (12,0)-(12,12)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ LocalVariableTargetNode (location: (12,1)-(12,2)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ └── @ LocalVariableTargetNode (location: (12,4)-(12,5)) + │ │ ├── flags: ∅ │ │ ├── name: :b │ │ └── depth: 0 │ ├── rest: ∅ @@ -283,29 +324,36 @@ │ ├── operator_loc: (12,7)-(12,8) = "=" │ └── value: │ @ LocalVariableReadNode (location: (12,9)-(12,12)) + │ ├── flags: ∅ │ ├── name: :foo │ └── depth: 0 ├── @ MultiWriteNode (location: (13,0)-(13,10)) + │ ├── flags: newline │ ├── lefts: (length: 1) │ │ └── @ LocalVariableTargetNode (location: (13,1)-(13,2)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── rest: │ │ @ ImplicitRestNode (location: (13,2)-(13,3)) + │ │ └── flags: ∅ │ ├── rights: (length: 0) │ ├── lparen_loc: (13,0)-(13,1) = "(" │ ├── rparen_loc: (13,3)-(13,4) = ")" │ ├── operator_loc: (13,5)-(13,6) = "=" │ └── value: │ @ LocalVariableReadNode (location: (13,7)-(13,10)) + │ ├── flags: ∅ │ ├── name: :foo │ └── depth: 0 ├── @ MultiWriteNode (location: (14,0)-(14,23)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ CallTargetNode (location: (14,1)-(14,6)) │ │ │ ├── flags: ∅ │ │ │ ├── receiver: │ │ │ │ @ LocalVariableReadNode (location: (14,1)-(14,2)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :a │ │ │ │ └── depth: 0 │ │ │ ├── call_operator_loc: (14,2)-(14,3) = "." @@ -315,6 +363,7 @@ │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ LocalVariableReadNode (location: (14,8)-(14,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ ├── call_operator_loc: (14,9)-(14,10) = "." @@ -327,22 +376,24 @@ │ ├── operator_loc: (14,15)-(14,16) = "=" │ └── value: │ @ ArrayNode (location: (14,17)-(14,23)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (14,18)-(14,19)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (14,21)-(14,22)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: (14,17)-(14,18) = "[" │ └── closing_loc: (14,22)-(14,23) = "]" ├── @ MultiWriteNode (location: (15,0)-(15,24)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ IndexTargetNode (location: (15,1)-(15,8)) │ │ │ ├── flags: attribute_write │ │ │ ├── receiver: │ │ │ │ @ LocalVariableReadNode (location: (15,1)-(15,2)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :a │ │ │ │ └── depth: 0 │ │ │ ├── opening_loc: (15,2)-(15,3) = "[" @@ -351,9 +402,11 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ SplatNode (location: (15,3)-(15,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (15,3)-(15,4) = "*" │ │ │ │ └── expression: │ │ │ │ @ LocalVariableReadNode (location: (15,4)-(15,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :foo │ │ │ │ └── depth: 0 │ │ │ ├── closing_loc: (15,7)-(15,8) = "]" @@ -362,6 +415,7 @@ │ │ ├── flags: attribute_write │ │ ├── receiver: │ │ │ @ LocalVariableReadNode (location: (15,10)-(15,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ ├── opening_loc: (15,11)-(15,12) = "[" @@ -370,7 +424,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (15,12)-(15,13)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: (15,13)-(15,14) = "]" │ │ └── block: ∅ @@ -381,22 +435,24 @@ │ ├── operator_loc: (15,16)-(15,17) = "=" │ └── value: │ @ ArrayNode (location: (15,18)-(15,24)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (15,19)-(15,20)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (15,22)-(15,23)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: (15,18)-(15,19) = "[" │ └── closing_loc: (15,23)-(15,24) = "]" ├── @ MultiWriteNode (location: (16,0)-(16,21)) + │ ├── flags: newline │ ├── lefts: (length: 2) │ │ ├── @ IndexTargetNode (location: (16,1)-(16,5)) │ │ │ ├── flags: attribute_write │ │ │ ├── receiver: │ │ │ │ @ LocalVariableReadNode (location: (16,1)-(16,2)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :a │ │ │ │ └── depth: 0 │ │ │ ├── opening_loc: (16,2)-(16,3) = "[" @@ -405,7 +461,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ IntegerNode (location: (16,3)-(16,4)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 0 │ │ │ ├── closing_loc: (16,4)-(16,5) = "]" │ │ │ └── block: ∅ @@ -413,6 +469,7 @@ │ │ ├── flags: attribute_write │ │ ├── receiver: │ │ │ @ LocalVariableReadNode (location: (16,7)-(16,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ ├── opening_loc: (16,8)-(16,9) = "[" @@ -421,7 +478,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (16,9)-(16,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: (16,10)-(16,11) = "]" │ │ └── block: ∅ @@ -432,26 +489,29 @@ │ ├── operator_loc: (16,13)-(16,14) = "=" │ └── value: │ @ ArrayNode (location: (16,15)-(16,21)) - │ ├── flags: ∅ + │ ├── flags: static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (16,16)-(16,17)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (16,19)-(16,20)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: (16,15)-(16,16) = "[" │ └── closing_loc: (16,20)-(16,21) = "]" ├── @ MultiWriteNode (location: (17,0)-(17,12)) + │ ├── flags: newline │ ├── lefts: (length: 0) │ ├── rest: │ │ @ SplatNode (location: (17,1)-(17,7)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (17,1)-(17,2) = "*" │ │ └── expression: │ │ @ CallTargetNode (location: (17,2)-(17,7)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ LocalVariableReadNode (location: (17,2)-(17,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :c │ │ │ └── depth: 0 │ │ ├── call_operator_loc: (17,3)-(17,4) = "." @@ -463,11 +523,13 @@ │ ├── operator_loc: (17,9)-(17,10) = "=" │ └── value: │ @ IntegerNode (location: (17,11)-(17,12)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ ConstantPathWriteNode (location: (18,0)-(18,13)) + │ ├── flags: newline │ ├── target: │ │ @ ConstantPathNode (location: (18,0)-(18,5)) + │ │ ├── flags: ∅ │ │ ├── parent: ∅ │ │ ├── name: :Foo │ │ ├── delimiter_loc: (18,0)-(18,2) = "::" @@ -475,41 +537,49 @@ │ ├── operator_loc: (18,6)-(18,7) = "=" │ └── value: │ @ ConstantPathNode (location: (18,8)-(18,13)) + │ ├── flags: ∅ │ ├── parent: ∅ │ ├── name: :Bar │ ├── delimiter_loc: (18,8)-(18,10) = "::" │ └── name_loc: (18,10)-(18,13) = "Bar" ├── @ ClassVariableWriteNode (location: (19,0)-(19,7)) + │ ├── flags: newline │ ├── name: :@@a │ ├── name_loc: (19,0)-(19,3) = "@@a" │ ├── value: │ │ @ IntegerNode (location: (19,6)-(19,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (19,4)-(19,5) = "=" ├── @ InstanceVariableWriteNode (location: (20,0)-(20,6)) + │ ├── flags: newline │ ├── name: :@a │ ├── name_loc: (20,0)-(20,2) = "@a" │ ├── value: │ │ @ IntegerNode (location: (20,5)-(20,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (20,3)-(20,4) = "=" ├── @ ConstantWriteNode (location: (21,0)-(21,9)) + │ ├── flags: newline │ ├── name: :CONST │ ├── name_loc: (21,0)-(21,5) = "CONST" │ ├── value: │ │ @ IntegerNode (location: (21,8)-(21,9)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (21,6)-(21,7) = "=" ├── @ ConstantPathWriteNode (location: (22,0)-(22,23)) + │ ├── flags: newline │ ├── target: │ │ @ ConstantPathNode (location: (22,0)-(22,19)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantPathNode (location: (22,0)-(22,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── parent: │ │ │ │ @ ConstantReadNode (location: (22,0)-(22,4)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :Name │ │ │ ├── name: :Spaced │ │ │ ├── delimiter_loc: (22,4)-(22,6) = "::" @@ -520,23 +590,29 @@ │ ├── operator_loc: (22,20)-(22,21) = "=" │ └── value: │ @ IntegerNode (location: (22,22)-(22,23)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── @ LocalVariableWriteNode (location: (23,0)-(23,16)) + │ ├── flags: newline │ ├── name: :a │ ├── depth: 0 │ ├── name_loc: (23,0)-(23,1) = "a" │ ├── value: │ │ @ ParenthesesNode (location: (23,4)-(23,16)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (23,5)-(23,15)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ MultiWriteNode (location: (23,5)-(23,15)) + │ │ │ ├── flags: newline │ │ │ ├── lefts: (length: 2) │ │ │ │ ├── @ LocalVariableTargetNode (location: (23,6)-(23,7)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :b │ │ │ │ │ └── depth: 0 │ │ │ │ └── @ LocalVariableTargetNode (location: (23,9)-(23,10)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :c │ │ │ │ └── depth: 0 │ │ │ ├── rest: ∅ @@ -546,21 +622,23 @@ │ │ │ ├── operator_loc: (23,12)-(23,13) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (23,14)-(23,15)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── opening_loc: (23,4)-(23,5) = "(" │ │ └── closing_loc: (23,15)-(23,16) = ")" │ └── operator_loc: (23,2)-(23,3) = "=" ├── @ LocalVariableWriteNode (location: (24,0)-(24,5)) + │ ├── flags: newline │ ├── name: :a │ ├── depth: 0 │ ├── name_loc: (24,0)-(24,1) = "a" │ ├── value: │ │ @ IntegerNode (location: (24,4)-(24,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (24,2)-(24,3) = "=" ├── @ LocalVariableWriteNode (location: (25,0)-(25,11)) + │ ├── flags: newline │ ├── name: :foo │ ├── depth: 0 │ ├── name_loc: (25,0)-(25,3) = "foo" @@ -577,9 +655,10 @@ │ │ └── block: ∅ │ └── operator_loc: (25,4)-(25,5) = "=" ├── @ CallNode (location: (26,0)-(26,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (26,0)-(26,3)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── call_operator_loc: (26,3)-(26,4) = "." @@ -590,9 +669,10 @@ │ ├── closing_loc: (26,8)-(26,9) = ")" │ └── block: ∅ ├── @ CallNode (location: (27,0)-(27,13)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (27,0)-(27,3)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── call_operator_loc: (27,3)-(27,4) = "." @@ -604,17 +684,18 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ IntegerNode (location: (27,8)-(27,9)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (27,11)-(27,12)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: (27,12)-(27,13) = ")" │ └── block: ∅ ├── @ CallNode (location: (28,0)-(28,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (28,0)-(28,3)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── call_operator_loc: (28,3)-(28,4) = "." @@ -626,12 +707,14 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ TrueNode (location: (28,7)-(28,11)) + │ │ └── flags: static_literal │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (29,0)-(29,19)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ LocalVariableReadNode (location: (29,0)-(29,3)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -643,6 +726,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ SplatNode (location: (29,4)-(29,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (29,4)-(29,5) = "*" │ │ │ └── expression: │ │ │ @ CallNode (location: (29,5)-(29,10)) @@ -668,9 +752,10 @@ │ ├── closing_loc: (29,10)-(29,11) = "]" │ └── block: ∅ ├── @ CallNode (location: (30,0)-(30,17)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ LocalVariableReadNode (location: (30,0)-(30,3)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -682,14 +767,14 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ RangeNode (location: (30,4)-(30,8)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: static_literal │ │ │ ├── left: │ │ │ │ @ IntegerNode (location: (30,4)-(30,5)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── right: │ │ │ │ @ IntegerNode (location: (30,7)-(30,8)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── operator_loc: (30,5)-(30,7) = ".." │ │ └── @ CallNode (location: (30,12)-(30,17)) @@ -705,9 +790,10 @@ │ ├── closing_loc: (30,8)-(30,9) = "]" │ └── block: ∅ ├── @ CallNode (location: (31,0)-(31,9)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ LocalVariableReadNode (location: (31,0)-(31,3)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -719,14 +805,15 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (31,8)-(31,9)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── closing_loc: (31,4)-(31,5) = "]" │ └── block: ∅ ├── @ CallNode (location: (32,0)-(32,17)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ LocalVariableReadNode (location: (32,0)-(32,3)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -738,9 +825,11 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 3) │ │ ├── @ LocalVariableReadNode (location: (32,4)-(32,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ ├── @ LocalVariableReadNode (location: (32,7)-(32,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :b │ │ │ └── depth: 0 │ │ └── @ CallNode (location: (32,12)-(32,17)) @@ -756,9 +845,10 @@ │ ├── closing_loc: (32,8)-(32,9) = "]" │ └── block: ∅ ├── @ CallNode (location: (33,0)-(33,18)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ LocalVariableReadNode (location: (33,0)-(33,3)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -792,6 +882,7 @@ │ ├── closing_loc: (33,9)-(33,10) = "]" │ └── block: ∅ ├── @ LocalVariableWriteNode (location: (34,0)-(34,7)) + │ ├── flags: newline │ ├── name: :x │ ├── depth: 0 │ ├── name_loc: (34,0)-(34,1) = "x" @@ -804,9 +895,10 @@ │ │ └── unescaped: "" │ └── operator_loc: (34,2)-(34,3) = "=" ├── @ CallNode (location: (35,0)-(35,7)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ LocalVariableReadNode (location: (35,0)-(35,1)) + │ │ ├── flags: ∅ │ │ ├── name: :x │ │ └── depth: 0 │ ├── call_operator_loc: (35,1)-(35,2) = "." @@ -826,9 +918,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (36,0)-(36,12)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ LocalVariableReadNode (location: (36,0)-(36,1)) + │ │ ├── flags: ∅ │ │ ├── name: :x │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -858,9 +951,10 @@ │ ├── closing_loc: (36,5)-(36,6) = "]" │ └── block: ∅ ├── @ IndexOrWriteNode (location: (37,0)-(37,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (37,0)-(37,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -890,6 +984,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ InstanceVariableOrWriteNode (location: (38,0)-(38,10)) + │ ├── flags: newline │ ├── name: :@a │ ├── name_loc: (38,0)-(38,2) = "@a" │ ├── operator_loc: (38,3)-(38,6) = "||=" @@ -901,6 +996,7 @@ │ ├── closing_loc: (38,9)-(38,10) = ")" │ └── unescaped: "" ├── @ LocalVariableWriteNode (location: (39,0)-(39,14)) + │ ├── flags: newline │ ├── name: :x │ ├── depth: 0 │ ├── name_loc: (39,0)-(39,1) = "x" @@ -910,17 +1006,18 @@ │ │ ├── opening_loc: (39,4)-(39,14) = "<<-HEREDOC" │ │ ├── parts: (length: 3) │ │ │ ├── @ StringNode (location: (40,0)-(40,2)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (40,0)-(40,2) = " " │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: " " │ │ │ ├── @ EmbeddedStatementsNode (location: (40,2)-(40,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── opening_loc: (40,2)-(40,4) = "\#{" │ │ │ │ ├── statements: ∅ │ │ │ │ └── closing_loc: (40,4)-(40,5) = "}" │ │ │ └── @ StringNode (location: (40,5)-(41,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (40,5)-(41,0) = "\n" │ │ │ ├── closing_loc: ∅ @@ -928,9 +1025,10 @@ │ │ └── closing_loc: (41,0)-(42,0) = "HEREDOC\n" │ └── operator_loc: (39,2)-(39,3) = "=" ├── @ CallNode (location: (42,0)-(42,14)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ LocalVariableReadNode (location: (42,0)-(42,1)) + │ │ ├── flags: ∅ │ │ ├── name: :x │ │ └── depth: 0 │ ├── call_operator_loc: (42,1)-(42,2) = "." @@ -946,17 +1044,18 @@ │ │ ├── opening_loc: (42,4)-(42,14) = "<<-HEREDOC" │ │ ├── parts: (length: 3) │ │ │ ├── @ StringNode (location: (43,0)-(43,2)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (43,0)-(43,2) = " " │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: " " │ │ │ ├── @ EmbeddedStatementsNode (location: (43,2)-(43,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── opening_loc: (43,2)-(43,4) = "\#{" │ │ │ │ ├── statements: ∅ │ │ │ │ └── closing_loc: (43,4)-(43,5) = "}" │ │ │ └── @ StringNode (location: (43,5)-(44,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (43,5)-(44,0) = "\n" │ │ │ ├── closing_loc: ∅ @@ -965,9 +1064,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (45,0)-(45,16)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ LocalVariableReadNode (location: (45,0)-(45,1)) + │ │ ├── flags: ∅ │ │ ├── name: :x │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -983,17 +1083,18 @@ │ │ ├── opening_loc: (45,6)-(45,16) = "<<-HEREDOC" │ │ ├── parts: (length: 3) │ │ │ ├── @ StringNode (location: (46,0)-(46,2)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (46,0)-(46,2) = " " │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: " " │ │ │ ├── @ EmbeddedStatementsNode (location: (46,2)-(46,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── opening_loc: (46,2)-(46,4) = "\#{" │ │ │ │ ├── statements: ∅ │ │ │ │ └── closing_loc: (46,4)-(46,5) = "}" │ │ │ └── @ StringNode (location: (46,5)-(47,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (46,5)-(47,0) = "\n" │ │ │ ├── closing_loc: ∅ @@ -1002,9 +1103,10 @@ │ ├── closing_loc: (45,2)-(45,3) = "]" │ └── block: ∅ ├── @ IndexOrWriteNode (location: (48,0)-(48,21)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (48,0)-(48,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -1018,17 +1120,18 @@ │ │ ├── opening_loc: (48,2)-(48,12) = "<<-HEREDOC" │ │ ├── parts: (length: 3) │ │ │ ├── @ StringNode (location: (49,0)-(49,2)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (49,0)-(49,2) = " " │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: " " │ │ │ ├── @ EmbeddedStatementsNode (location: (49,2)-(49,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── opening_loc: (49,2)-(49,4) = "\#{" │ │ │ │ ├── statements: ∅ │ │ │ │ └── closing_loc: (49,4)-(49,5) = "}" │ │ │ └── @ StringNode (location: (49,5)-(50,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (49,5)-(50,0) = "\n" │ │ │ ├── closing_loc: ∅ @@ -1049,6 +1152,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ InstanceVariableOrWriteNode (location: (51,0)-(51,17)) + ├── flags: newline ├── name: :@a ├── name_loc: (51,0)-(51,2) = "@a" ├── operator_loc: (51,3)-(51,6) = "||=" @@ -1058,17 +1162,18 @@ ├── opening_loc: (51,7)-(51,17) = "<<-HEREDOC" ├── parts: (length: 3) │ ├── @ StringNode (location: (52,0)-(52,2)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (52,0)-(52,2) = " " │ │ ├── closing_loc: ∅ │ │ └── unescaped: " " │ ├── @ EmbeddedStatementsNode (location: (52,2)-(52,5)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (52,2)-(52,4) = "\#{" │ │ ├── statements: ∅ │ │ └── closing_loc: (52,4)-(52,5) = "}" │ └── @ StringNode (location: (52,5)-(53,0)) - │ ├── flags: frozen + │ ├── flags: static_literal, frozen │ ├── opening_loc: ∅ │ ├── content_loc: (52,5)-(53,0) = "\n" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/unparser/corpus/literal/block.txt b/test/prism/snapshots/unparser/corpus/literal/block.txt index b4c86d0b04..63cd76d683 100644 --- a/test/prism/snapshots/unparser/corpus/literal/block.txt +++ b/test/prism/snapshots/unparser/corpus/literal/block.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(96,1)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(96,1)) + ├── flags: ∅ └── body: (length: 30) ├── @ CallNode (location: (1,0)-(2,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -14,13 +16,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,4)-(2,1)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ │ ├── opening_loc: (1,4)-(1,5) = "{" │ └── closing_loc: (2,0)-(2,1) = "}" ├── @ CallNode (location: (3,0)-(4,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -30,11 +33,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (3,4)-(4,1)) + │ ├── flags: ∅ │ ├── locals: [:a] │ ├── parameters: │ │ @ BlockParametersNode (location: (3,6)-(3,9)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (3,7)-(3,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (3,7)-(3,8)) │ │ │ │ ├── flags: ∅ @@ -52,7 +58,7 @@ │ ├── opening_loc: (3,4)-(3,5) = "{" │ └── closing_loc: (4,0)-(4,1) = "}" ├── @ CallNode (location: (5,0)-(6,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -62,11 +68,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (5,4)-(6,1)) + │ ├── flags: ∅ │ ├── locals: [:a] │ ├── parameters: │ │ @ BlockParametersNode (location: (5,6)-(5,10)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (5,7)-(5,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (5,7)-(5,8)) │ │ │ │ ├── flags: ∅ @@ -74,6 +83,7 @@ │ │ │ ├── optionals: (length: 0) │ │ │ ├── rest: │ │ │ │ @ ImplicitRestNode (location: (5,8)-(5,9)) + │ │ │ │ └── flags: ∅ │ │ │ ├── posts: (length: 0) │ │ │ ├── keywords: (length: 0) │ │ │ ├── keyword_rest: ∅ @@ -85,7 +95,7 @@ │ ├── opening_loc: (5,4)-(5,5) = "{" │ └── closing_loc: (6,0)-(6,1) = "}" ├── @ CallNode (location: (7,0)-(8,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -95,11 +105,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (7,4)-(8,1)) + │ ├── flags: ∅ │ ├── locals: [:a, :x] │ ├── parameters: │ │ @ BlockParametersNode (location: (7,6)-(7,13)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (7,7)-(7,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (7,7)-(7,8)) │ │ │ │ ├── flags: ∅ @@ -107,6 +120,7 @@ │ │ │ ├── optionals: (length: 0) │ │ │ ├── rest: │ │ │ │ @ ImplicitRestNode (location: (7,8)-(7,9)) + │ │ │ │ └── flags: ∅ │ │ │ ├── posts: (length: 0) │ │ │ ├── keywords: (length: 0) │ │ │ ├── keyword_rest: ∅ @@ -121,7 +135,7 @@ │ ├── opening_loc: (7,4)-(7,5) = "{" │ └── closing_loc: (8,0)-(8,1) = "}" ├── @ CallNode (location: (9,0)-(10,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -131,11 +145,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (9,4)-(10,1)) + │ ├── flags: ∅ │ ├── locals: [:a, :b] │ ├── parameters: │ │ @ BlockParametersNode (location: (9,6)-(9,12)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (9,7)-(9,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 2) │ │ │ │ ├── @ RequiredParameterNode (location: (9,7)-(9,8)) │ │ │ │ │ ├── flags: ∅ @@ -156,7 +173,7 @@ │ ├── opening_loc: (9,4)-(9,5) = "{" │ └── closing_loc: (10,0)-(10,1) = "}" ├── @ CallNode (location: (11,0)-(13,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -167,21 +184,24 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (11,4)-(11,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── closing_loc: (11,5)-(11,6) = ")" │ └── block: │ @ BlockNode (location: (11,7)-(13,1)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (12,2)-(12,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NilNode (location: (12,2)-(12,5)) + │ │ └── flags: newline, static_literal │ ├── opening_loc: (11,7)-(11,8) = "{" │ └── closing_loc: (13,0)-(13,1) = "}" ├── @ CallNode (location: (14,0)-(16,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -191,11 +211,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (14,4)-(16,1)) + │ ├── flags: ∅ │ ├── locals: [:a, :b] │ ├── parameters: │ │ @ BlockParametersNode (location: (14,6)-(14,13)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (14,7)-(14,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (14,7)-(14,8)) │ │ │ │ ├── flags: ∅ @@ -216,12 +239,14 @@ │ │ └── closing_loc: (14,12)-(14,13) = "|" │ ├── body: │ │ @ StatementsNode (location: (15,2)-(15,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NilNode (location: (15,2)-(15,5)) + │ │ └── flags: newline, static_literal │ ├── opening_loc: (14,4)-(14,5) = "{" │ └── closing_loc: (16,0)-(16,1) = "}" ├── @ CallNode (location: (17,0)-(19,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -231,11 +256,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (17,4)-(19,1)) + │ ├── flags: ∅ │ ├── locals: [:a] │ ├── parameters: │ │ @ BlockParametersNode (location: (17,6)-(17,12)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (17,7)-(17,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (17,7)-(17,8)) │ │ │ │ ├── flags: ∅ @@ -256,12 +284,14 @@ │ │ └── closing_loc: (17,11)-(17,12) = "|" │ ├── body: │ │ @ StatementsNode (location: (18,2)-(18,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NilNode (location: (18,2)-(18,5)) + │ │ └── flags: newline, static_literal │ ├── opening_loc: (17,4)-(17,5) = "{" │ └── closing_loc: (19,0)-(19,1) = "}" ├── @ CallNode (location: (20,0)-(22,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -271,13 +301,15 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (20,4)-(22,1)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (21,2)-(21,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (21,2)-(21,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -289,7 +321,7 @@ │ ├── opening_loc: (20,4)-(20,5) = "{" │ └── closing_loc: (22,0)-(22,1) = "}" ├── @ CallNode (location: (23,0)-(25,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (23,0)-(23,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -309,13 +341,17 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (23,8)-(25,1)) + │ ├── flags: ∅ │ ├── locals: [:a, :b, :c] │ ├── parameters: │ │ @ BlockParametersNode (location: (23,10)-(23,21)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (23,11)-(23,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 2) │ │ │ │ ├── @ MultiTargetNode (location: (23,11)-(23,17)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── lefts: (length: 2) │ │ │ │ │ │ ├── @ RequiredParameterNode (location: (23,12)-(23,13)) │ │ │ │ │ │ │ ├── flags: ∅ @@ -341,9 +377,10 @@ │ │ └── closing_loc: (23,20)-(23,21) = "|" │ ├── body: │ │ @ StatementsNode (location: (24,2)-(24,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (24,2)-(24,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :d @@ -355,7 +392,7 @@ │ ├── opening_loc: (23,8)-(23,9) = "{" │ └── closing_loc: (25,0)-(25,1) = "}" ├── @ CallNode (location: (26,0)-(27,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (26,0)-(26,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -375,11 +412,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (26,8)-(27,1)) + │ ├── flags: ∅ │ ├── locals: [:a, :b] │ ├── parameters: │ │ @ BlockParametersNode (location: (26,10)-(26,17)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (26,11)-(26,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 0) │ │ │ ├── optionals: (length: 0) │ │ │ ├── rest: @@ -402,7 +442,7 @@ │ ├── opening_loc: (26,8)-(26,9) = "{" │ └── closing_loc: (27,0)-(27,1) = "}" ├── @ CallNode (location: (28,0)-(29,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (28,0)-(28,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -422,11 +462,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (28,8)-(29,1)) + │ ├── flags: ∅ │ ├── locals: [:a, :b] │ ├── parameters: │ │ @ BlockParametersNode (location: (28,10)-(28,16)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (28,11)-(28,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (28,11)-(28,12)) │ │ │ │ ├── flags: ∅ @@ -447,7 +490,7 @@ │ ├── opening_loc: (28,8)-(28,9) = "{" │ └── closing_loc: (29,0)-(29,1) = "}" ├── @ CallNode (location: (30,0)-(31,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (30,0)-(30,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -467,9 +510,11 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (30,8)-(31,1)) + │ ├── flags: ∅ │ ├── locals: [:a, :b] │ ├── parameters: │ │ @ BlockParametersNode (location: (30,10)-(30,18)) + │ │ ├── flags: ∅ │ │ ├── parameters: ∅ │ │ ├── locals: (length: 2) │ │ │ ├── @ BlockLocalVariableNode (location: (30,13)-(30,14)) @@ -484,7 +529,7 @@ │ ├── opening_loc: (30,8)-(30,9) = "{" │ └── closing_loc: (31,0)-(31,1) = "}" ├── @ CallNode (location: (32,0)-(34,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (32,0)-(32,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -504,11 +549,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (32,8)-(34,1)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: │ │ @ BlockParametersNode (location: (32,10)-(32,13)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (32,11)-(32,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 0) │ │ │ ├── optionals: (length: 0) │ │ │ ├── rest: @@ -526,9 +574,10 @@ │ │ └── closing_loc: (32,12)-(32,13) = "|" │ ├── body: │ │ @ StatementsNode (location: (33,2)-(33,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (33,2)-(33,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :d @@ -540,7 +589,7 @@ │ ├── opening_loc: (32,8)-(32,9) = "{" │ └── closing_loc: (34,0)-(34,1) = "}" ├── @ CallNode (location: (35,0)-(37,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (35,0)-(35,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -560,16 +609,21 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (35,8)-(37,1)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: │ │ @ BlockParametersNode (location: (35,10)-(35,15)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (35,11)-(35,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ MultiTargetNode (location: (35,11)-(35,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── lefts: (length: 0) │ │ │ │ ├── rest: │ │ │ │ │ @ SplatNode (location: (35,12)-(35,13)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── operator_loc: (35,12)-(35,13) = "*" │ │ │ │ │ └── expression: ∅ │ │ │ │ ├── rights: (length: 0) @@ -586,9 +640,10 @@ │ │ └── closing_loc: (35,14)-(35,15) = "|" │ ├── body: │ │ @ StatementsNode (location: (36,2)-(36,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (36,2)-(36,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :d @@ -600,7 +655,7 @@ │ ├── opening_loc: (35,8)-(35,9) = "{" │ └── closing_loc: (37,0)-(37,1) = "}" ├── @ CallNode (location: (38,0)-(40,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (38,0)-(38,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -620,18 +675,24 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (38,8)-(40,1)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: │ │ @ BlockParametersNode (location: (38,10)-(38,17)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (38,11)-(38,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ MultiTargetNode (location: (38,11)-(38,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── lefts: (length: 1) │ │ │ │ │ └── @ MultiTargetNode (location: (38,12)-(38,15)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── lefts: (length: 0) │ │ │ │ │ ├── rest: │ │ │ │ │ │ @ SplatNode (location: (38,13)-(38,14)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── operator_loc: (38,13)-(38,14) = "*" │ │ │ │ │ │ └── expression: ∅ │ │ │ │ │ ├── rights: (length: 0) @@ -652,9 +713,10 @@ │ │ └── closing_loc: (38,16)-(38,17) = "|" │ ├── body: │ │ @ StatementsNode (location: (39,2)-(39,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (39,2)-(39,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :d @@ -666,7 +728,7 @@ │ ├── opening_loc: (38,8)-(38,9) = "{" │ └── closing_loc: (40,0)-(40,1) = "}" ├── @ CallNode (location: (41,0)-(43,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (41,0)-(41,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -686,21 +748,27 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (41,8)-(43,1)) + │ ├── flags: ∅ │ ├── locals: [:a] │ ├── parameters: │ │ @ BlockParametersNode (location: (41,10)-(41,20)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (41,11)-(41,19)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ MultiTargetNode (location: (41,11)-(41,19)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── lefts: (length: 2) │ │ │ │ │ ├── @ RequiredParameterNode (location: (41,12)-(41,13)) │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── name: :a │ │ │ │ │ └── @ MultiTargetNode (location: (41,15)-(41,18)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── lefts: (length: 0) │ │ │ │ │ ├── rest: │ │ │ │ │ │ @ SplatNode (location: (41,16)-(41,17)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── operator_loc: (41,16)-(41,17) = "*" │ │ │ │ │ │ └── expression: ∅ │ │ │ │ │ ├── rights: (length: 0) @@ -721,9 +789,10 @@ │ │ └── closing_loc: (41,19)-(41,20) = "|" │ ├── body: │ │ @ StatementsNode (location: (42,2)-(42,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (42,2)-(42,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :d @@ -735,7 +804,7 @@ │ ├── opening_loc: (41,8)-(41,9) = "{" │ └── closing_loc: (43,0)-(43,1) = "}" ├── @ CallNode (location: (44,0)-(46,1)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (44,0)-(44,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -755,13 +824,17 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (44,8)-(46,1)) + │ ├── flags: ∅ │ ├── locals: [:a, :b] │ ├── parameters: │ │ @ BlockParametersNode (location: (44,10)-(44,18)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (44,11)-(44,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ MultiTargetNode (location: (44,11)-(44,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── lefts: (length: 2) │ │ │ │ │ ├── @ RequiredParameterNode (location: (44,12)-(44,13)) │ │ │ │ │ │ ├── flags: ∅ @@ -784,9 +857,10 @@ │ │ └── closing_loc: (44,17)-(44,18) = "|" │ ├── body: │ │ @ StatementsNode (location: (45,2)-(45,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (45,2)-(45,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :d @@ -798,7 +872,7 @@ │ ├── opening_loc: (44,8)-(44,9) = "{" │ └── closing_loc: (46,0)-(46,1) = "}" ├── @ CallNode (location: (47,0)-(48,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (47,0)-(48,1)) │ │ ├── flags: ∅ @@ -821,6 +895,7 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (47,8)-(48,1)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: ∅ @@ -834,7 +909,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (49,0)-(51,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :m @@ -844,21 +919,26 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (49,2)-(51,3)) + │ ├── flags: ∅ │ ├── locals: [:e] │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (49,2)-(51,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (50,0)-(50,21)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (50,0)-(50,6) = "rescue" │ │ │ ├── exceptions: (length: 1) │ │ │ │ └── @ ConstantReadNode (location: (50,7)-(50,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :Exception │ │ │ ├── operator_loc: (50,17)-(50,19) = "=>" │ │ │ ├── reference: │ │ │ │ @ LocalVariableTargetNode (location: (50,20)-(50,21)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :e │ │ │ │ └── depth: 0 │ │ │ ├── statements: ∅ @@ -869,7 +949,7 @@ │ ├── opening_loc: (49,2)-(49,4) = "do" │ └── closing_loc: (51,0)-(51,3) = "end" ├── @ CallNode (location: (52,0)-(56,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :m @@ -879,16 +959,19 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (52,2)-(56,3)) + │ ├── flags: ∅ │ ├── locals: [:bar] │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (52,2)-(56,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (53,2)-(53,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (53,2)-(53,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :foo @@ -899,19 +982,24 @@ │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (54,0)-(55,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (54,0)-(54,6) = "rescue" │ │ │ ├── exceptions: (length: 1) │ │ │ │ └── @ ConstantReadNode (location: (54,7)-(54,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :Exception │ │ │ ├── operator_loc: (54,17)-(54,19) = "=>" │ │ │ ├── reference: │ │ │ │ @ LocalVariableTargetNode (location: (54,20)-(54,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :bar │ │ │ │ └── depth: 0 │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (55,2)-(55,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ LocalVariableReadNode (location: (55,2)-(55,5)) + │ │ │ │ ├── flags: newline │ │ │ │ ├── name: :bar │ │ │ │ └── depth: 0 │ │ │ └── consequent: ∅ @@ -921,7 +1009,7 @@ │ ├── opening_loc: (52,2)-(52,4) = "do" │ └── closing_loc: (56,0)-(56,3) = "end" ├── @ CallNode (location: (57,0)-(61,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :m @@ -931,16 +1019,19 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (57,2)-(61,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (57,2)-(61,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (58,2)-(58,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (58,2)-(58,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -951,11 +1042,14 @@ │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (59,0)-(60,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (59,0)-(59,6) = "rescue" │ │ │ ├── exceptions: (length: 2) │ │ │ │ ├── @ ConstantReadNode (location: (59,7)-(59,16)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── name: :SomeError │ │ │ │ └── @ SplatNode (location: (59,18)-(59,22)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (59,18)-(59,19) = "*" │ │ │ │ └── expression: │ │ │ │ @ CallNode (location: (59,19)-(59,22)) @@ -972,9 +1066,10 @@ │ │ │ ├── reference: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (60,2)-(60,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (60,2)-(60,5)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :baz @@ -990,7 +1085,7 @@ │ ├── opening_loc: (57,2)-(57,4) = "do" │ └── closing_loc: (61,0)-(61,3) = "end" ├── @ CallNode (location: (62,0)-(66,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :m @@ -1000,16 +1095,19 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (62,2)-(66,3)) + │ ├── flags: ∅ │ ├── locals: [:exception] │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (62,2)-(66,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (63,2)-(63,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (63,2)-(63,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -1020,11 +1118,14 @@ │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (64,0)-(65,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (64,0)-(64,6) = "rescue" │ │ │ ├── exceptions: (length: 2) │ │ │ │ ├── @ ConstantReadNode (location: (64,7)-(64,16)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── name: :SomeError │ │ │ │ └── @ SplatNode (location: (64,18)-(64,22)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (64,18)-(64,19) = "*" │ │ │ │ └── expression: │ │ │ │ @ CallNode (location: (64,19)-(64,22)) @@ -1040,13 +1141,15 @@ │ │ │ ├── operator_loc: (64,23)-(64,25) = "=>" │ │ │ ├── reference: │ │ │ │ @ LocalVariableTargetNode (location: (64,26)-(64,35)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :exception │ │ │ │ └── depth: 0 │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (65,2)-(65,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (65,2)-(65,5)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :baz @@ -1062,7 +1165,7 @@ │ ├── opening_loc: (62,2)-(62,4) = "do" │ └── closing_loc: (66,0)-(66,3) = "end" ├── @ CallNode (location: (67,0)-(71,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :m @@ -1072,16 +1175,19 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (67,2)-(71,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (67,2)-(71,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (68,2)-(68,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (68,2)-(68,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -1092,9 +1198,11 @@ │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (69,0)-(70,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (69,0)-(69,6) = "rescue" │ │ │ ├── exceptions: (length: 1) │ │ │ │ └── @ SplatNode (location: (69,7)-(69,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (69,7)-(69,8) = "*" │ │ │ │ └── expression: │ │ │ │ @ CallNode (location: (69,8)-(69,11)) @@ -1111,9 +1219,10 @@ │ │ │ ├── reference: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (70,2)-(70,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (70,2)-(70,5)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :baz @@ -1129,7 +1238,7 @@ │ ├── opening_loc: (67,2)-(67,4) = "do" │ └── closing_loc: (71,0)-(71,3) = "end" ├── @ CallNode (location: (72,0)-(75,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :m @@ -1139,16 +1248,19 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (72,2)-(75,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (72,2)-(75,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (73,2)-(73,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (73,2)-(73,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -1159,9 +1271,11 @@ │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (74,0)-(74,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (74,0)-(74,6) = "rescue" │ │ │ ├── exceptions: (length: 1) │ │ │ │ └── @ ConstantReadNode (location: (74,7)-(74,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :LoadError │ │ │ ├── operator_loc: ∅ │ │ │ ├── reference: ∅ @@ -1173,7 +1287,7 @@ │ ├── opening_loc: (72,2)-(72,4) = "do" │ └── closing_loc: (75,0)-(75,3) = "end" ├── @ CallNode (location: (76,0)-(81,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :m @@ -1183,16 +1297,19 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (76,2)-(81,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (76,2)-(81,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (77,2)-(77,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (77,2)-(77,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -1203,6 +1320,7 @@ │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (78,0)-(78,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (78,0)-(78,6) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ @@ -1211,12 +1329,14 @@ │ │ │ └── consequent: ∅ │ │ ├── else_clause: │ │ │ @ ElseNode (location: (79,0)-(81,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── else_keyword_loc: (79,0)-(79,4) = "else" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (80,2)-(80,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (80,2)-(80,5)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :baz @@ -1231,7 +1351,7 @@ │ ├── opening_loc: (76,2)-(76,4) = "do" │ └── closing_loc: (81,0)-(81,3) = "end" ├── @ CallNode (location: (82,0)-(86,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :m @@ -1241,16 +1361,19 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (82,2)-(86,3)) + │ ├── flags: ∅ │ ├── locals: [:exception] │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (82,2)-(86,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (83,2)-(83,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (83,2)-(83,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -1261,9 +1384,11 @@ │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (84,0)-(85,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (84,0)-(84,6) = "rescue" │ │ │ ├── exceptions: (length: 1) │ │ │ │ └── @ SplatNode (location: (84,7)-(84,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (84,7)-(84,8) = "*" │ │ │ │ └── expression: │ │ │ │ @ CallNode (location: (84,8)-(84,11)) @@ -1279,13 +1404,15 @@ │ │ │ ├── operator_loc: (84,12)-(84,14) = "=>" │ │ │ ├── reference: │ │ │ │ @ LocalVariableTargetNode (location: (84,15)-(84,24)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :exception │ │ │ │ └── depth: 0 │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (85,2)-(85,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (85,2)-(85,5)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :baz @@ -1301,7 +1428,7 @@ │ ├── opening_loc: (82,2)-(82,4) = "do" │ └── closing_loc: (86,0)-(86,3) = "end" ├── @ CallNode (location: (87,0)-(89,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :m @@ -1311,16 +1438,19 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (87,2)-(89,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (87,2)-(89,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: ∅ │ │ ├── rescue_clause: ∅ │ │ ├── else_clause: ∅ │ │ ├── ensure_clause: │ │ │ @ EnsureNode (location: (88,0)-(89,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── ensure_keyword_loc: (88,0)-(88,6) = "ensure" │ │ │ ├── statements: ∅ │ │ │ └── end_keyword_loc: (89,0)-(89,3) = "end" @@ -1328,7 +1458,7 @@ │ ├── opening_loc: (87,2)-(87,4) = "do" │ └── closing_loc: (89,0)-(89,3) = "end" ├── @ CallNode (location: (90,0)-(93,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :m @@ -1338,14 +1468,17 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (90,2)-(93,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (90,2)-(93,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (91,0)-(91,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (91,0)-(91,6) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ @@ -1355,6 +1488,7 @@ │ │ ├── else_clause: ∅ │ │ ├── ensure_clause: │ │ │ @ EnsureNode (location: (92,0)-(93,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── ensure_keyword_loc: (92,0)-(92,6) = "ensure" │ │ │ ├── statements: ∅ │ │ │ └── end_keyword_loc: (93,0)-(93,3) = "end" @@ -1362,7 +1496,7 @@ │ ├── opening_loc: (90,2)-(90,4) = "do" │ └── closing_loc: (93,0)-(93,3) = "end" └── @ CallNode (location: (94,0)-(96,1)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :bar @@ -1372,17 +1506,21 @@ ├── closing_loc: ∅ └── block: @ BlockNode (location: (94,4)-(96,1)) + ├── flags: ∅ ├── locals: [:_1, :_2] ├── parameters: │ @ NumberedParametersNode (location: (94,4)-(96,1)) + │ ├── flags: ∅ │ └── maximum: 2 ├── body: │ @ StatementsNode (location: (95,2)-(95,9)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (95,2)-(95,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (95,2)-(95,4)) + │ │ ├── flags: ∅ │ │ ├── name: :_1 │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -1394,6 +1532,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ LocalVariableReadNode (location: (95,7)-(95,9)) + │ │ ├── flags: ∅ │ │ ├── name: :_2 │ │ └── depth: 0 │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/unparser/corpus/literal/case.txt b/test/prism/snapshots/unparser/corpus/literal/case.txt index 509caa55c8..f7b279dffc 100644 --- a/test/prism/snapshots/unparser/corpus/literal/case.txt +++ b/test/prism/snapshots/unparser/corpus/literal/case.txt @@ -1,12 +1,16 @@ @ ProgramNode (location: (1,0)-(37,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(37,3)) + ├── flags: ∅ └── body: (length: 8) ├── @ CaseNode (location: (1,0)-(6,3)) + │ ├── flags: newline │ ├── predicate: ∅ │ ├── conditions: (length: 2) │ │ ├── @ WhenNode (location: (2,0)-(3,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (2,0)-(2,4) = "when" │ │ │ ├── conditions: (length: 1) │ │ │ │ └── @ CallNode (location: (2,5)-(2,8)) @@ -22,9 +26,10 @@ │ │ │ ├── then_keyword_loc: ∅ │ │ │ └── statements: │ │ │ @ StatementsNode (location: (3,2)-(3,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (3,2)-(3,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :baz @@ -34,6 +39,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ WhenNode (location: (4,0)-(5,5)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (4,0)-(4,4) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ CallNode (location: (4,5)-(4,8)) @@ -49,9 +55,10 @@ │ │ ├── then_keyword_loc: ∅ │ │ └── statements: │ │ @ StatementsNode (location: (5,2)-(5,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (5,2)-(5,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -64,6 +71,7 @@ │ ├── case_keyword_loc: (1,0)-(1,4) = "case" │ └── end_keyword_loc: (6,0)-(6,3) = "end" ├── @ CaseNode (location: (7,0)-(11,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (7,5)-(7,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -77,6 +85,7 @@ │ │ └── block: ∅ │ ├── conditions: (length: 2) │ │ ├── @ WhenNode (location: (8,0)-(8,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (8,0)-(8,4) = "when" │ │ │ ├── conditions: (length: 1) │ │ │ │ └── @ CallNode (location: (8,5)-(8,8)) @@ -92,6 +101,7 @@ │ │ │ ├── then_keyword_loc: ∅ │ │ │ └── statements: ∅ │ │ └── @ WhenNode (location: (9,0)-(10,5)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (9,0)-(9,4) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ CallNode (location: (9,5)-(9,8)) @@ -107,9 +117,10 @@ │ │ ├── then_keyword_loc: ∅ │ │ └── statements: │ │ @ StatementsNode (location: (10,2)-(10,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (10,2)-(10,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -122,6 +133,7 @@ │ ├── case_keyword_loc: (7,0)-(7,4) = "case" │ └── end_keyword_loc: (11,0)-(11,3) = "end" ├── @ CaseNode (location: (12,0)-(17,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (12,5)-(12,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -135,6 +147,7 @@ │ │ └── block: ∅ │ ├── conditions: (length: 2) │ │ ├── @ WhenNode (location: (13,0)-(14,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (13,0)-(13,4) = "when" │ │ │ ├── conditions: (length: 1) │ │ │ │ └── @ CallNode (location: (13,5)-(13,8)) @@ -150,9 +163,10 @@ │ │ │ ├── then_keyword_loc: ∅ │ │ │ └── statements: │ │ │ @ StatementsNode (location: (14,2)-(14,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (14,2)-(14,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :baz @@ -162,6 +176,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ WhenNode (location: (15,0)-(16,5)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (15,0)-(15,4) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ CallNode (location: (15,5)-(15,8)) @@ -177,9 +192,10 @@ │ │ ├── then_keyword_loc: ∅ │ │ └── statements: │ │ @ StatementsNode (location: (16,2)-(16,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (16,2)-(16,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -192,6 +208,7 @@ │ ├── case_keyword_loc: (12,0)-(12,4) = "case" │ └── end_keyword_loc: (17,0)-(17,3) = "end" ├── @ CaseNode (location: (18,0)-(21,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (18,5)-(18,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -205,6 +222,7 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (19,0)-(20,8)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (19,0)-(19,4) = "when" │ │ ├── conditions: (length: 2) │ │ │ ├── @ CallNode (location: (19,5)-(19,8)) @@ -230,9 +248,10 @@ │ │ ├── then_keyword_loc: ∅ │ │ └── statements: │ │ @ StatementsNode (location: (20,2)-(20,8)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (20,2)-(20,8)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (20,2)-(20,3) = ":" │ │ ├── value_loc: (20,3)-(20,8) = "other" │ │ ├── closing_loc: ∅ @@ -241,6 +260,7 @@ │ ├── case_keyword_loc: (18,0)-(18,4) = "case" │ └── end_keyword_loc: (21,0)-(21,3) = "end" ├── @ CaseNode (location: (22,0)-(25,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (22,5)-(22,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -254,9 +274,11 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (23,0)-(24,8)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (23,0)-(23,4) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ SplatNode (location: (23,5)-(23,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (23,5)-(23,6) = "*" │ │ │ └── expression: │ │ │ @ CallNode (location: (23,6)-(23,9)) @@ -272,9 +294,10 @@ │ │ ├── then_keyword_loc: ∅ │ │ └── statements: │ │ @ StatementsNode (location: (24,2)-(24,8)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (24,2)-(24,8)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (24,2)-(24,3) = ":" │ │ ├── value_loc: (24,3)-(24,8) = "value" │ │ ├── closing_loc: ∅ @@ -283,6 +306,7 @@ │ ├── case_keyword_loc: (22,0)-(22,4) = "case" │ └── end_keyword_loc: (25,0)-(25,3) = "end" ├── @ CaseNode (location: (26,0)-(31,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (26,5)-(26,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -296,6 +320,7 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (27,0)-(28,5)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (27,0)-(27,4) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ CallNode (location: (27,5)-(27,8)) @@ -311,9 +336,10 @@ │ │ ├── then_keyword_loc: ∅ │ │ └── statements: │ │ @ StatementsNode (location: (28,2)-(28,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (28,2)-(28,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :baz @@ -324,12 +350,14 @@ │ │ └── block: ∅ │ ├── consequent: │ │ @ ElseNode (location: (29,0)-(31,3)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (29,0)-(29,4) = "else" │ │ ├── statements: │ │ │ @ StatementsNode (location: (30,2)-(30,6)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ SymbolNode (location: (30,2)-(30,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (30,2)-(30,3) = ":" │ │ │ ├── value_loc: (30,3)-(30,6) = "foo" │ │ │ ├── closing_loc: ∅ @@ -338,6 +366,7 @@ │ ├── case_keyword_loc: (26,0)-(26,4) = "case" │ └── end_keyword_loc: (31,0)-(31,3) = "end" ├── @ CaseNode (location: (32,0)-(34,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (32,5)-(32,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -351,9 +380,11 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ WhenNode (location: (33,0)-(33,15)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (33,0)-(33,4) = "when" │ │ ├── conditions: (length: 1) │ │ │ └── @ SplatNode (location: (33,5)-(33,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (33,5)-(33,6) = "*" │ │ │ └── expression: │ │ │ @ CallNode (location: (33,6)-(33,15)) @@ -395,6 +426,7 @@ │ ├── case_keyword_loc: (32,0)-(32,4) = "case" │ └── end_keyword_loc: (34,0)-(34,3) = "end" └── @ CaseNode (location: (35,0)-(37,3)) + ├── flags: newline ├── predicate: │ @ CallNode (location: (35,5)-(35,8)) │ ├── flags: variable_call, ignore_visibility @@ -408,9 +440,11 @@ │ └── block: ∅ ├── conditions: (length: 1) │ └── @ WhenNode (location: (36,0)-(36,15)) + │ ├── flags: ∅ │ ├── keyword_loc: (36,0)-(36,4) = "when" │ ├── conditions: (length: 1) │ │ └── @ SplatNode (location: (36,5)-(36,15)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (36,5)-(36,6) = "*" │ │ └── expression: │ │ @ CallNode (location: (36,6)-(36,15)) @@ -435,7 +469,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (36,14)-(36,15)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ diff --git a/test/prism/snapshots/unparser/corpus/literal/class.txt b/test/prism/snapshots/unparser/corpus/literal/class.txt index 5306888398..add60ce305 100644 --- a/test/prism/snapshots/unparser/corpus/literal/class.txt +++ b/test/prism/snapshots/unparser/corpus/literal/class.txt @@ -1,13 +1,17 @@ @ ProgramNode (location: (1,0)-(35,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(35,3)) + ├── flags: ∅ └── body: (length: 10) ├── @ ClassNode (location: (1,0)-(2,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (1,0)-(1,5) = "class" │ ├── constant_path: │ │ @ ConstantReadNode (location: (1,6)-(1,7)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── inheritance_operator_loc: ∅ │ ├── superclass: ∅ @@ -15,6 +19,7 @@ │ ├── end_keyword_loc: (2,0)-(2,3) = "end" │ └── name: :A ├── @ SingletonClassNode (location: (4,0)-(5,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (4,0)-(4,5) = "class" │ ├── operator_loc: (4,6)-(4,8) = "<<" @@ -32,6 +37,7 @@ │ ├── body: ∅ │ └── end_keyword_loc: (5,0)-(5,3) = "end" ├── @ SingletonClassNode (location: (7,0)-(9,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (7,0)-(7,5) = "class" │ ├── operator_loc: (7,6)-(7,8) = "<<" @@ -48,9 +54,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (8,2)-(8,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (8,2)-(8,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :b @@ -61,12 +68,15 @@ │ │ └── block: ∅ │ └── end_keyword_loc: (9,0)-(9,3) = "end" ├── @ ClassNode (location: (11,0)-(12,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (11,0)-(11,5) = "class" │ ├── constant_path: │ │ @ ConstantPathNode (location: (11,6)-(11,10)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantReadNode (location: (11,6)-(11,7)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── name: :B │ │ ├── delimiter_loc: (11,7)-(11,9) = "::" @@ -77,14 +87,18 @@ │ ├── end_keyword_loc: (12,0)-(12,3) = "end" │ └── name: :B ├── @ ClassNode (location: (14,0)-(15,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (14,0)-(14,5) = "class" │ ├── constant_path: │ │ @ ConstantPathNode (location: (14,6)-(14,13)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantPathNode (location: (14,6)-(14,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── parent: │ │ │ │ @ ConstantReadNode (location: (14,6)-(14,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :A │ │ │ ├── name: :B │ │ │ ├── delimiter_loc: (14,7)-(14,9) = "::" @@ -98,29 +112,36 @@ │ ├── end_keyword_loc: (15,0)-(15,3) = "end" │ └── name: :C ├── @ ClassNode (location: (17,0)-(18,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (17,0)-(17,5) = "class" │ ├── constant_path: │ │ @ ConstantReadNode (location: (17,6)-(17,7)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── inheritance_operator_loc: (17,8)-(17,9) = "<" │ ├── superclass: │ │ @ ConstantReadNode (location: (17,10)-(17,11)) + │ │ ├── flags: ∅ │ │ └── name: :B │ ├── body: ∅ │ ├── end_keyword_loc: (18,0)-(18,3) = "end" │ └── name: :A ├── @ ClassNode (location: (20,0)-(21,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (20,0)-(20,5) = "class" │ ├── constant_path: │ │ @ ConstantReadNode (location: (20,6)-(20,7)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── inheritance_operator_loc: (20,8)-(20,9) = "<" │ ├── superclass: │ │ @ ConstantPathNode (location: (20,10)-(20,14)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantReadNode (location: (20,10)-(20,11)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :B │ │ ├── name: :C │ │ ├── delimiter_loc: (20,11)-(20,13) = "::" @@ -129,12 +150,15 @@ │ ├── end_keyword_loc: (21,0)-(21,3) = "end" │ └── name: :A ├── @ ClassNode (location: (23,0)-(24,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (23,0)-(23,5) = "class" │ ├── constant_path: │ │ @ ConstantPathNode (location: (23,6)-(23,10)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantReadNode (location: (23,6)-(23,7)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── name: :B │ │ ├── delimiter_loc: (23,7)-(23,9) = "::" @@ -142,8 +166,10 @@ │ ├── inheritance_operator_loc: (23,11)-(23,12) = "<" │ ├── superclass: │ │ @ ConstantPathNode (location: (23,13)-(23,17)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantReadNode (location: (23,13)-(23,14)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :C │ │ ├── name: :D │ │ ├── delimiter_loc: (23,14)-(23,16) = "::" @@ -152,18 +178,21 @@ │ ├── end_keyword_loc: (24,0)-(24,3) = "end" │ └── name: :B ├── @ ClassNode (location: (26,0)-(32,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── class_keyword_loc: (26,0)-(26,5) = "class" │ ├── constant_path: │ │ @ ConstantReadNode (location: (26,6)-(26,7)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── inheritance_operator_loc: ∅ │ ├── superclass: ∅ │ ├── body: │ │ @ StatementsNode (location: (27,2)-(31,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 2) │ │ ├── @ CallNode (location: (27,2)-(27,16)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :include @@ -177,6 +206,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ ├── receiver: │ │ │ │ │ @ ConstantReadNode (location: (27,10)-(27,11)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── name: :B │ │ │ │ ├── call_operator_loc: (27,11)-(27,12) = "." │ │ │ │ ├── name: :new @@ -188,15 +218,17 @@ │ │ │ ├── closing_loc: (27,15)-(27,16) = ")" │ │ │ └── block: ∅ │ │ └── @ DefNode (location: (29,2)-(31,5)) + │ │ ├── flags: newline │ │ ├── name: :foo │ │ ├── name_loc: (29,6)-(29,9) = "foo" │ │ ├── receiver: ∅ │ │ ├── parameters: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (30,4)-(30,8)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ SymbolNode (location: (30,4)-(30,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (30,4)-(30,5) = ":" │ │ │ ├── value_loc: (30,5)-(30,8) = "bar" │ │ │ ├── closing_loc: ∅ @@ -211,10 +243,12 @@ │ ├── end_keyword_loc: (32,0)-(32,3) = "end" │ └── name: :A └── @ ClassNode (location: (34,0)-(35,3)) + ├── flags: newline ├── locals: [] ├── class_keyword_loc: (34,0)-(34,5) = "class" ├── constant_path: │ @ ConstantPathNode (location: (34,6)-(34,9)) + │ ├── flags: ∅ │ ├── parent: ∅ │ ├── name: :A │ ├── delimiter_loc: (34,6)-(34,8) = "::" diff --git a/test/prism/snapshots/unparser/corpus/literal/def.txt b/test/prism/snapshots/unparser/corpus/literal/def.txt index f3ef6c388e..405c4f3fb8 100644 --- a/test/prism/snapshots/unparser/corpus/literal/def.txt +++ b/test/prism/snapshots/unparser/corpus/literal/def.txt @@ -1,21 +1,26 @@ @ ProgramNode (location: (1,0)-(134,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(134,3)) + ├── flags: ∅ └── body: (length: 30) ├── @ DefNode (location: (1,0)-(9,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (1,4)-(1,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (1,0)-(9,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (2,2)-(2,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (2,2)-(2,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :a @@ -26,15 +31,17 @@ │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (3,0)-(4,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (3,0)-(3,6) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ │ │ │ ├── reference: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (4,2)-(4,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (4,2)-(4,3)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :b @@ -46,12 +53,14 @@ │ │ │ └── consequent: ∅ │ │ ├── else_clause: │ │ │ @ ElseNode (location: (5,0)-(7,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── else_keyword_loc: (5,0)-(5,4) = "else" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (6,2)-(6,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (6,2)-(6,3)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :c @@ -63,12 +72,14 @@ │ │ │ └── end_keyword_loc: (7,0)-(7,6) = "ensure" │ │ ├── ensure_clause: │ │ │ @ EnsureNode (location: (7,0)-(9,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── ensure_keyword_loc: (7,0)-(7,6) = "ensure" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (8,2)-(8,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (8,2)-(8,3)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :d @@ -87,17 +98,21 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (9,0)-(9,3) = "end" ├── @ DefNode (location: (11,0)-(19,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (11,4)-(11,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (11,0)-(19,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (12,2)-(12,12)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ RescueModifierNode (location: (12,2)-(12,12)) + │ │ │ ├── flags: newline │ │ │ ├── expression: │ │ │ │ @ CallNode (location: (12,2)-(12,3)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -123,15 +138,17 @@ │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (13,0)-(14,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (13,0)-(13,6) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ │ │ │ ├── reference: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (14,2)-(14,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (14,2)-(14,3)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :b @@ -143,12 +160,14 @@ │ │ │ └── consequent: ∅ │ │ ├── else_clause: │ │ │ @ ElseNode (location: (15,0)-(17,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── else_keyword_loc: (15,0)-(15,4) = "else" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (16,2)-(16,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (16,2)-(16,3)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :c @@ -160,12 +179,14 @@ │ │ │ └── end_keyword_loc: (17,0)-(17,6) = "ensure" │ │ ├── ensure_clause: │ │ │ @ EnsureNode (location: (17,0)-(19,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── ensure_keyword_loc: (17,0)-(17,6) = "ensure" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (18,2)-(18,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (18,2)-(18,3)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :d @@ -184,11 +205,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (19,0)-(19,3) = "end" ├── @ DefNode (location: (21,0)-(22,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (21,4)-(21,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (21,8)-(21,18)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -213,6 +236,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (22,0)-(22,3) = "end" ├── @ DefNode (location: (24,0)-(25,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (24,4)-(24,7) = "foo" │ ├── receiver: ∅ @@ -226,15 +250,17 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (25,0)-(25,3) = "end" ├── @ DefNode (location: (27,0)-(29,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (27,4)-(27,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (28,2)-(28,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (28,2)-(28,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -251,18 +277,21 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (29,0)-(29,3) = "end" ├── @ DefNode (location: (31,0)-(37,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (31,4)-(31,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (31,0)-(37,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (32,2)-(32,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (32,2)-(32,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :foo @@ -273,15 +302,17 @@ │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (33,0)-(34,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (33,0)-(33,6) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ │ │ │ ├── reference: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (34,2)-(34,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (34,2)-(34,5)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :bar @@ -294,12 +325,14 @@ │ │ ├── else_clause: ∅ │ │ ├── ensure_clause: │ │ │ @ EnsureNode (location: (35,0)-(37,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── ensure_keyword_loc: (35,0)-(35,6) = "ensure" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (36,2)-(36,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (36,2)-(36,5)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :baz @@ -318,18 +351,21 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (37,0)-(37,3) = "end" ├── @ DefNode (location: (39,0)-(43,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (39,4)-(39,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (39,0)-(43,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (40,2)-(40,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (40,2)-(40,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -342,12 +378,14 @@ │ │ ├── else_clause: ∅ │ │ ├── ensure_clause: │ │ │ @ EnsureNode (location: (41,0)-(43,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── ensure_keyword_loc: (41,0)-(41,6) = "ensure" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (42,2)-(42,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (42,2)-(42,5)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :baz @@ -366,18 +404,21 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (43,0)-(43,3) = "end" ├── @ DefNode (location: (45,0)-(49,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (45,4)-(45,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (45,0)-(49,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (46,2)-(46,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (46,2)-(46,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -388,15 +429,17 @@ │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (47,0)-(48,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (47,0)-(47,6) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ │ │ │ ├── reference: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (48,2)-(48,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (48,2)-(48,5)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :baz @@ -417,11 +460,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (49,0)-(49,3) = "end" ├── @ DefNode (location: (51,0)-(53,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (51,4)-(51,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (51,8)-(51,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (51,8)-(51,11)) │ │ │ ├── flags: ∅ @@ -434,8 +479,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (52,2)-(52,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (52,2)-(52,5)) + │ │ ├── flags: newline │ │ ├── name: :bar │ │ └── depth: 0 │ ├── locals: [:bar] @@ -446,11 +493,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (53,0)-(53,3) = "end" ├── @ DefNode (location: (55,0)-(57,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (55,4)-(55,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (55,8)-(55,16)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ RequiredParameterNode (location: (55,8)-(55,11)) │ │ │ │ ├── flags: ∅ @@ -466,8 +515,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (56,2)-(56,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (56,2)-(56,5)) + │ │ ├── flags: newline │ │ ├── name: :bar │ │ └── depth: 0 │ ├── locals: [:bar, :baz] @@ -478,11 +529,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (57,0)-(57,3) = "end" ├── @ DefNode (location: (59,0)-(61,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (59,4)-(59,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (59,8)-(59,16)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (59,8)-(59,16)) @@ -492,6 +545,7 @@ │ │ │ ├── operator_loc: (59,12)-(59,13) = "=" │ │ │ └── value: │ │ │ @ ParenthesesNode (location: (59,14)-(59,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: ∅ │ │ │ ├── opening_loc: (59,14)-(59,15) = "(" │ │ │ └── closing_loc: (59,15)-(59,16) = ")" @@ -502,8 +556,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (60,2)-(60,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (60,2)-(60,5)) + │ │ ├── flags: newline │ │ ├── name: :bar │ │ └── depth: 0 │ ├── locals: [:bar] @@ -514,11 +570,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (61,0)-(61,3) = "end" ├── @ DefNode (location: (63,0)-(64,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (63,4)-(63,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (63,8)-(63,24)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (63,8)-(63,24)) @@ -528,11 +586,13 @@ │ │ │ ├── operator_loc: (63,12)-(63,13) = "=" │ │ │ └── value: │ │ │ @ ParenthesesNode (location: (63,14)-(63,24)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (63,15)-(63,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 2) │ │ │ │ ├── @ CallNode (location: (63,15)-(63,18)) - │ │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ │ ├── receiver: ∅ │ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ │ ├── name: :baz @@ -542,6 +602,7 @@ │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── block: ∅ │ │ │ │ └── @ NilNode (location: (63,20)-(63,23)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── opening_loc: (63,14)-(63,15) = "(" │ │ │ └── closing_loc: (63,23)-(63,24) = ")" │ │ ├── rest: ∅ @@ -558,11 +619,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (64,0)-(64,3) = "end" ├── @ DefNode (location: (66,0)-(68,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (66,4)-(66,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (66,8)-(66,18)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (66,8)-(66,18)) @@ -572,6 +635,7 @@ │ │ │ ├── operator_loc: (66,12)-(66,13) = "=" │ │ │ └── value: │ │ │ @ TrueNode (location: (66,14)-(66,18)) + │ │ │ └── flags: static_literal │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) │ │ ├── keywords: (length: 0) @@ -579,8 +643,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (67,2)-(67,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (67,2)-(67,5)) + │ │ ├── flags: newline │ │ ├── name: :bar │ │ └── depth: 0 │ ├── locals: [:bar] @@ -591,11 +657,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (68,0)-(68,3) = "end" ├── @ DefNode (location: (70,0)-(72,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (70,4)-(70,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (70,8)-(70,23)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (70,8)-(70,11)) │ │ │ ├── flags: ∅ @@ -608,6 +676,7 @@ │ │ │ ├── operator_loc: (70,17)-(70,18) = "=" │ │ │ └── value: │ │ │ @ TrueNode (location: (70,19)-(70,23)) + │ │ │ └── flags: static_literal │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) │ │ ├── keywords: (length: 0) @@ -615,8 +684,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (71,2)-(71,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (71,2)-(71,5)) + │ │ ├── flags: newline │ │ ├── name: :bar │ │ └── depth: 0 │ ├── locals: [:bar, :baz] @@ -627,11 +698,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (72,0)-(72,3) = "end" ├── @ DefNode (location: (74,0)-(75,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (74,4)-(74,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (74,8)-(74,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -643,7 +716,7 @@ │ │ │ ├── name_loc: (74,8)-(74,12) = "bar:" │ │ │ └── value: │ │ │ @ IntegerNode (location: (74,13)-(74,14)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── keyword_rest: ∅ │ │ └── block: ∅ @@ -656,11 +729,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (75,0)-(75,3) = "end" ├── @ DefNode (location: (77,0)-(78,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (77,4)-(77,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (77,8)-(77,16)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -692,11 +767,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (78,0)-(78,3) = "end" ├── @ DefNode (location: (80,0)-(81,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (80,4)-(80,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (80,8)-(80,18)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -728,11 +805,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (81,0)-(81,3) = "end" ├── @ DefNode (location: (83,0)-(85,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (83,4)-(83,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (83,8)-(83,9)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -747,9 +826,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (84,2)-(84,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (84,2)-(84,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -766,11 +846,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (85,0)-(85,3) = "end" ├── @ DefNode (location: (87,0)-(89,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (87,4)-(87,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (87,8)-(87,12)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: @@ -785,8 +867,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (88,2)-(88,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (88,2)-(88,5)) + │ │ ├── flags: newline │ │ ├── name: :bar │ │ └── depth: 0 │ ├── locals: [:bar] @@ -797,11 +881,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (89,0)-(89,3) = "end" ├── @ DefNode (location: (91,0)-(93,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (91,4)-(91,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (91,8)-(91,17)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (91,8)-(91,11)) │ │ │ ├── flags: ∅ @@ -819,8 +905,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (92,2)-(92,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (92,2)-(92,5)) + │ │ ├── flags: newline │ │ ├── name: :bar │ │ └── depth: 0 │ ├── locals: [:bar, :baz] @@ -831,11 +919,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (93,0)-(93,3) = "end" ├── @ DefNode (location: (95,0)-(97,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (95,4)-(95,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (95,8)-(95,24)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (95,8)-(95,18)) @@ -845,6 +935,7 @@ │ │ │ ├── operator_loc: (95,12)-(95,13) = "=" │ │ │ └── value: │ │ │ @ TrueNode (location: (95,14)-(95,18)) + │ │ │ └── flags: static_literal │ │ ├── rest: │ │ │ @ RestParameterNode (location: (95,20)-(95,24)) │ │ │ ├── flags: ∅ @@ -857,9 +948,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (96,2)-(96,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (96,2)-(96,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -876,11 +968,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (97,0)-(97,3) = "end" ├── @ DefNode (location: (99,0)-(101,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (99,4)-(99,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (99,8)-(99,32)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (99,8)-(99,18)) @@ -890,6 +984,7 @@ │ │ │ ├── operator_loc: (99,12)-(99,13) = "=" │ │ │ └── value: │ │ │ @ TrueNode (location: (99,14)-(99,18)) + │ │ │ └── flags: static_literal │ │ ├── rest: │ │ │ @ RestParameterNode (location: (99,20)-(99,24)) │ │ │ ├── flags: ∅ @@ -907,9 +1002,10 @@ │ │ └── operator_loc: (99,26)-(99,27) = "&" │ ├── body: │ │ @ StatementsNode (location: (100,2)-(100,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (100,2)-(100,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -926,11 +1022,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (101,0)-(101,3) = "end" ├── @ DefNode (location: (103,0)-(105,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (103,4)-(103,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (103,8)-(103,29)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (103,8)-(103,11)) │ │ │ ├── flags: ∅ @@ -943,6 +1041,7 @@ │ │ │ ├── operator_loc: (103,17)-(103,18) = "=" │ │ │ └── value: │ │ │ @ TrueNode (location: (103,19)-(103,23)) + │ │ │ └── flags: static_literal │ │ ├── rest: │ │ │ @ RestParameterNode (location: (103,25)-(103,29)) │ │ │ ├── flags: ∅ @@ -955,8 +1054,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (104,2)-(104,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (104,2)-(104,5)) + │ │ ├── flags: newline │ │ ├── name: :bar │ │ └── depth: 0 │ ├── locals: [:bar, :baz, :bor] @@ -967,11 +1068,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (105,0)-(105,3) = "end" ├── @ DefNode (location: (107,0)-(109,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (107,4)-(107,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (107,8)-(107,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -986,9 +1089,10 @@ │ │ └── operator_loc: (107,8)-(107,9) = "&" │ ├── body: │ │ @ StatementsNode (location: (108,2)-(108,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (108,2)-(108,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -1005,11 +1109,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (109,0)-(109,3) = "end" ├── @ DefNode (location: (111,0)-(113,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (111,4)-(111,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (111,8)-(111,19)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (111,8)-(111,11)) │ │ │ ├── flags: ∅ @@ -1027,8 +1133,10 @@ │ │ └── operator_loc: (111,13)-(111,14) = "&" │ ├── body: │ │ @ StatementsNode (location: (112,2)-(112,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (112,2)-(112,5)) + │ │ ├── flags: newline │ │ ├── name: :bar │ │ └── depth: 0 │ ├── locals: [:bar, :block] @@ -1039,15 +1147,17 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (113,0)-(113,3) = "end" ├── @ DefNode (location: (115,0)-(118,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (115,4)-(115,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (116,2)-(117,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 2) │ │ ├── @ CallNode (location: (116,2)-(116,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -1057,7 +1167,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ CallNode (location: (117,2)-(117,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :baz @@ -1074,15 +1184,19 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (118,0)-(118,3) = "end" ├── @ DefNode (location: (120,0)-(121,3)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (120,4)-(120,5) = "f" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (120,6)-(120,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ MultiTargetNode (location: (120,6)-(120,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── lefts: (length: 1) │ │ │ │ └── @ MultiTargetNode (location: (120,7)-(120,10)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── lefts: (length: 1) │ │ │ │ │ └── @ RequiredParameterNode (location: (120,8)-(120,9)) │ │ │ │ │ ├── flags: ∅ @@ -1110,11 +1224,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (121,0)-(121,3) = "end" ├── @ DefNode (location: (123,0)-(124,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (123,4)-(123,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (123,8)-(123,26)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -1146,29 +1262,32 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (124,0)-(124,3) = "end" ├── @ DefNode (location: (126,0)-(130,3)) + │ ├── flags: newline │ ├── name: :f │ ├── name_loc: (126,4)-(126,5) = "f" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (127,2)-(127,12)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ InterpolatedStringNode (location: (127,2)-(127,12)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── opening_loc: (127,2)-(127,12) = "<<-HEREDOC" │ │ ├── parts: (length: 3) │ │ │ ├── @ StringNode (location: (128,0)-(128,4)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (128,0)-(128,4) = " " │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: " " │ │ │ ├── @ EmbeddedStatementsNode (location: (128,4)-(128,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── opening_loc: (128,4)-(128,6) = "\#{" │ │ │ │ ├── statements: ∅ │ │ │ │ └── closing_loc: (128,6)-(128,7) = "}" │ │ │ └── @ StringNode (location: (128,7)-(129,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (128,7)-(129,0) = "\n" │ │ │ ├── closing_loc: ∅ @@ -1182,15 +1301,17 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (130,0)-(130,3) = "end" └── @ DefNode (location: (132,0)-(134,3)) + ├── flags: newline ├── name: :f ├── name_loc: (132,4)-(132,5) = "f" ├── receiver: ∅ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (133,2)-(133,5)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ StringNode (location: (133,2)-(133,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (133,2)-(133,4) = "%(" │ ├── content_loc: (133,4)-(133,4) = "" │ ├── closing_loc: (133,4)-(133,5) = ")" diff --git a/test/prism/snapshots/unparser/corpus/literal/defined.txt b/test/prism/snapshots/unparser/corpus/literal/defined.txt index 89145ddcda..d1b5a15685 100644 --- a/test/prism/snapshots/unparser/corpus/literal/defined.txt +++ b/test/prism/snapshots/unparser/corpus/literal/defined.txt @@ -1,35 +1,47 @@ @ ProgramNode (location: (1,0)-(3,27)) +├── flags: ∅ ├── locals: [:a, :b] └── statements: @ StatementsNode (location: (1,0)-(3,27)) + ├── flags: ∅ └── body: (length: 3) ├── @ DefinedNode (location: (1,0)-(1,14)) + │ ├── flags: newline │ ├── lparen_loc: (1,8)-(1,9) = "(" │ ├── value: │ │ @ InstanceVariableReadNode (location: (1,9)-(1,13)) + │ │ ├── flags: ∅ │ │ └── name: :@foo │ ├── rparen_loc: (1,13)-(1,14) = ")" │ └── keyword_loc: (1,0)-(1,8) = "defined?" ├── @ DefinedNode (location: (2,0)-(2,13)) + │ ├── flags: newline │ ├── lparen_loc: (2,8)-(2,9) = "(" │ ├── value: │ │ @ ConstantReadNode (location: (2,9)-(2,12)) + │ │ ├── flags: ∅ │ │ └── name: :Foo │ ├── rparen_loc: (2,12)-(2,13) = ")" │ └── keyword_loc: (2,0)-(2,8) = "defined?" └── @ DefinedNode (location: (3,0)-(3,27)) + ├── flags: newline ├── lparen_loc: (3,8)-(3,9) = "(" ├── value: │ @ ParenthesesNode (location: (3,9)-(3,26)) + │ ├── flags: ∅ │ ├── body: │ │ @ StatementsNode (location: (3,10)-(3,25)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ MultiWriteNode (location: (3,10)-(3,25)) + │ │ ├── flags: newline │ │ ├── lefts: (length: 2) │ │ │ ├── @ LocalVariableTargetNode (location: (3,11)-(3,12)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :a │ │ │ │ └── depth: 0 │ │ │ └── @ LocalVariableTargetNode (location: (3,14)-(3,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :b │ │ │ └── depth: 0 │ │ ├── rest: ∅ @@ -39,13 +51,13 @@ │ │ ├── operator_loc: (3,17)-(3,18) = "=" │ │ └── value: │ │ @ ArrayNode (location: (3,19)-(3,25)) - │ │ ├── flags: ∅ + │ │ ├── flags: static_literal │ │ ├── elements: (length: 2) │ │ │ ├── @ IntegerNode (location: (3,20)-(3,21)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── @ IntegerNode (location: (3,23)-(3,24)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── opening_loc: (3,19)-(3,20) = "[" │ │ └── closing_loc: (3,24)-(3,25) = "]" diff --git a/test/prism/snapshots/unparser/corpus/literal/defs.txt b/test/prism/snapshots/unparser/corpus/literal/defs.txt index 7858877172..33c24f3b24 100644 --- a/test/prism/snapshots/unparser/corpus/literal/defs.txt +++ b/test/prism/snapshots/unparser/corpus/literal/defs.txt @@ -1,13 +1,17 @@ @ ProgramNode (location: (1,0)-(40,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(40,3)) + ├── flags: ∅ └── body: (length: 10) ├── @ DefNode (location: (1,0)-(2,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (1,9)-(1,12) = "foo" │ ├── receiver: │ │ @ SelfNode (location: (1,4)-(1,8)) + │ │ └── flags: ∅ │ ├── parameters: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -18,16 +22,19 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (2,0)-(2,3) = "end" ├── @ DefNode (location: (4,0)-(6,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (4,9)-(4,12) = "foo" │ ├── receiver: │ │ @ SelfNode (location: (4,4)-(4,8)) + │ │ └── flags: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (5,2)-(5,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (5,2)-(5,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -44,16 +51,19 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (6,0)-(6,3) = "end" ├── @ DefNode (location: (8,0)-(11,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (8,9)-(8,12) = "foo" │ ├── receiver: │ │ @ SelfNode (location: (8,4)-(8,8)) + │ │ └── flags: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (9,2)-(10,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 2) │ │ ├── @ CallNode (location: (9,2)-(9,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -63,7 +73,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ CallNode (location: (10,2)-(10,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :baz @@ -80,17 +90,20 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (11,0)-(11,3) = "end" ├── @ DefNode (location: (13,0)-(15,3)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (13,8)-(13,11) = "bar" │ ├── receiver: │ │ @ ConstantReadNode (location: (13,4)-(13,7)) + │ │ ├── flags: ∅ │ │ └── name: :Foo │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (14,2)-(14,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (14,2)-(14,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -107,10 +120,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (15,0)-(15,3) = "end" ├── @ DefNode (location: (17,0)-(20,3)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (18,3)-(18,6) = "bar" │ ├── receiver: │ │ @ ParenthesesNode (location: (17,4)-(18,2)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ CallNode (location: (17,5)-(18,1)) │ │ │ ├── flags: ignore_visibility @@ -123,11 +138,14 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: │ │ │ @ BlockNode (location: (17,9)-(18,1)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [:bar] │ │ │ ├── parameters: │ │ │ │ @ BlockParametersNode (location: (17,11)-(17,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── parameters: │ │ │ │ │ @ ParametersNode (location: (17,12)-(17,15)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ │ └── @ RequiredParameterNode (location: (17,12)-(17,15)) │ │ │ │ │ │ ├── flags: ∅ @@ -149,9 +167,10 @@ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (19,2)-(19,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (19,2)-(19,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -168,10 +187,12 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (20,0)-(20,3) = "end" ├── @ DefNode (location: (22,0)-(24,3)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (22,13)-(22,16) = "bar" │ ├── receiver: │ │ @ ParenthesesNode (location: (22,4)-(22,12)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ CallNode (location: (22,5)-(22,11)) │ │ │ ├── flags: ignore_visibility @@ -185,7 +206,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ IntegerNode (location: (22,9)-(22,10)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── closing_loc: (22,10)-(22,11) = ")" │ │ │ └── block: ∅ @@ -194,9 +215,10 @@ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (23,2)-(23,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (23,2)-(23,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -213,17 +235,21 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (24,0)-(24,3) = "end" ├── @ DefNode (location: (26,0)-(28,3)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (26,19)-(26,22) = "bar" │ ├── receiver: │ │ @ ParenthesesNode (location: (26,4)-(26,18)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ CallNode (location: (26,5)-(26,17)) │ │ │ ├── flags: ∅ │ │ │ ├── receiver: │ │ │ │ @ ConstantPathNode (location: (26,5)-(26,13)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── parent: │ │ │ │ │ @ ConstantReadNode (location: (26,5)-(26,8)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── name: :Foo │ │ │ │ ├── name: :Bar │ │ │ │ ├── delimiter_loc: (26,8)-(26,10) = "::" @@ -240,9 +266,10 @@ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (27,2)-(27,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (27,2)-(27,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :baz @@ -259,14 +286,18 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (28,0)-(28,3) = "end" ├── @ DefNode (location: (30,0)-(32,3)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (30,15)-(30,18) = "bar" │ ├── receiver: │ │ @ ParenthesesNode (location: (30,4)-(30,14)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ ConstantPathNode (location: (30,5)-(30,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── parent: │ │ │ │ @ ConstantReadNode (location: (30,5)-(30,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :Foo │ │ │ ├── name: :Bar │ │ │ ├── delimiter_loc: (30,8)-(30,10) = "::" @@ -276,9 +307,10 @@ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (31,2)-(31,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (31,2)-(31,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :baz @@ -295,17 +327,20 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (32,0)-(32,3) = "end" ├── @ DefNode (location: (34,0)-(36,3)) + │ ├── flags: newline │ ├── name: :bar │ ├── name_loc: (34,8)-(34,11) = "bar" │ ├── receiver: │ │ @ ConstantReadNode (location: (34,4)-(34,7)) + │ │ ├── flags: ∅ │ │ └── name: :Foo │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (35,2)-(35,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (35,2)-(35,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :baz @@ -322,6 +357,7 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (36,0)-(36,3) = "end" └── @ DefNode (location: (38,0)-(40,3)) + ├── flags: newline ├── name: :bar ├── name_loc: (38,8)-(38,11) = "bar" ├── receiver: @@ -338,9 +374,10 @@ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (39,2)-(39,5)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (39,2)-(39,5)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :baz diff --git a/test/prism/snapshots/unparser/corpus/literal/dstr.txt b/test/prism/snapshots/unparser/corpus/literal/dstr.txt index 8893e8b75d..3092360608 100644 --- a/test/prism/snapshots/unparser/corpus/literal/dstr.txt +++ b/test/prism/snapshots/unparser/corpus/literal/dstr.txt @@ -1,26 +1,32 @@ @ ProgramNode (location: (1,0)-(37,1)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(37,1)) + ├── flags: ∅ └── body: (length: 11) ├── @ IfNode (location: (1,0)-(3,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (1,0)-(1,2) = "if" │ ├── predicate: │ │ @ TrueNode (location: (1,3)-(1,7)) + │ │ └── flags: static_literal │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (2,2)-(2,8)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ InterpolatedStringNode (location: (2,2)-(2,8)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── opening_loc: (2,2)-(2,3) = "\"" │ │ ├── parts: (length: 2) │ │ │ ├── @ EmbeddedStatementsNode (location: (2,3)-(2,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── opening_loc: (2,3)-(2,5) = "\#{" │ │ │ │ ├── statements: ∅ │ │ │ │ └── closing_loc: (2,5)-(2,6) = "}" │ │ │ └── @ StringNode (location: (2,6)-(2,7)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (2,6)-(2,7) = "a" │ │ │ ├── closing_loc: ∅ @@ -29,36 +35,40 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (3,0)-(3,3) = "end" ├── @ IfNode (location: (4,0)-(11,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (4,0)-(4,2) = "if" │ ├── predicate: │ │ @ TrueNode (location: (4,3)-(4,7)) + │ │ └── flags: static_literal │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (5,2)-(10,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 2) │ │ ├── @ InterpolatedStringNode (location: (5,2)-(5,12)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── opening_loc: (5,2)-(5,12) = "<<-HEREDOC" │ │ │ ├── parts: (length: 3) │ │ │ │ ├── @ StringNode (location: (6,0)-(7,0)) - │ │ │ │ │ ├── flags: frozen + │ │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── content_loc: (6,0)-(7,0) = "a\n" │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── unescaped: "a\n" │ │ │ │ ├── @ EmbeddedStatementsNode (location: (7,0)-(7,3)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── opening_loc: (7,0)-(7,2) = "\#{" │ │ │ │ │ ├── statements: ∅ │ │ │ │ │ └── closing_loc: (7,2)-(7,3) = "}" │ │ │ │ └── @ StringNode (location: (7,3)-(9,0)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (7,3)-(9,0) = "a\nb\n" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "a\nb\n" │ │ │ └── closing_loc: (9,0)-(10,0) = " HEREDOC\n" │ │ └── @ CallNode (location: (10,2)-(10,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :x @@ -70,58 +80,63 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (11,0)-(11,3) = "end" ├── @ InterpolatedStringNode (location: (12,0)-(12,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (12,0)-(12,10) = "<<-HEREDOC" │ ├── parts: (length: 7) │ │ ├── @ StringNode (location: (13,0)-(14,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (13,0)-(14,0) = "\\\#{}\\\#{}\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\#{}\#{}\n" │ │ ├── @ EmbeddedStatementsNode (location: (14,0)-(14,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (14,0)-(14,2) = "\#{" │ │ │ ├── statements: ∅ │ │ │ └── closing_loc: (14,2)-(14,3) = "}" │ │ ├── @ StringNode (location: (14,3)-(15,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (14,3)-(15,0) = "\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\n" │ │ ├── @ EmbeddedStatementsNode (location: (15,0)-(15,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (15,0)-(15,2) = "\#{" │ │ │ ├── statements: ∅ │ │ │ └── closing_loc: (15,2)-(15,3) = "}" │ │ ├── @ StringNode (location: (15,3)-(16,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (15,3)-(16,0) = "\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\n" │ │ ├── @ EmbeddedStatementsNode (location: (16,0)-(16,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (16,0)-(16,2) = "\#{" │ │ │ ├── statements: ∅ │ │ │ └── closing_loc: (16,2)-(16,3) = "}" │ │ └── @ StringNode (location: (16,3)-(17,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (16,3)-(17,0) = "\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "\n" │ └── closing_loc: (17,0)-(18,0) = "HEREDOC\n" ├── @ RescueModifierNode (location: (18,0)-(18,21)) + │ ├── flags: newline │ ├── expression: │ │ @ InterpolatedStringNode (location: (18,0)-(18,10)) │ │ ├── flags: ∅ │ │ ├── opening_loc: (18,0)-(18,10) = "<<-HEREDOC" │ │ ├── parts: (length: 2) │ │ │ ├── @ EmbeddedStatementsNode (location: (19,0)-(19,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── opening_loc: (19,0)-(19,2) = "\#{" │ │ │ │ ├── statements: ∅ │ │ │ │ └── closing_loc: (19,2)-(19,3) = "}" │ │ │ └── @ StringNode (location: (19,3)-(21,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (19,3)-(21,0) = "\na\n" │ │ │ ├── closing_loc: ∅ @@ -130,80 +145,92 @@ │ ├── keyword_loc: (18,11)-(18,17) = "rescue" │ └── rescue_expression: │ @ NilNode (location: (18,18)-(18,21)) + │ └── flags: static_literal ├── @ InterpolatedStringNode (location: (22,0)-(22,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (22,0)-(22,1) = "\"" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (22,1)-(22,2)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (22,1)-(22,2) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ └── @ EmbeddedVariableNode (location: (22,2)-(22,5)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (22,2)-(22,3) = "#" │ │ └── variable: │ │ @ NumberedReferenceReadNode (location: (22,3)-(22,5)) + │ │ ├── flags: ∅ │ │ └── number: 1 │ └── closing_loc: (22,5)-(22,6) = "\"" ├── @ InterpolatedStringNode (location: (23,0)-(23,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (23,0)-(23,1) = "\"" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (23,1)-(23,2)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (23,1)-(23,2) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ └── @ EmbeddedVariableNode (location: (23,2)-(23,5)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (23,2)-(23,3) = "#" │ │ └── variable: │ │ @ GlobalVariableReadNode (location: (23,3)-(23,5)) + │ │ ├── flags: ∅ │ │ └── name: :$a │ └── closing_loc: (23,5)-(23,6) = "\"" ├── @ InterpolatedStringNode (location: (24,0)-(24,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (24,0)-(24,1) = "\"" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (24,1)-(24,2)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (24,1)-(24,2) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ └── @ EmbeddedVariableNode (location: (24,2)-(24,5)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (24,2)-(24,3) = "#" │ │ └── variable: │ │ @ InstanceVariableReadNode (location: (24,3)-(24,5)) + │ │ ├── flags: ∅ │ │ └── name: :@a │ └── closing_loc: (24,5)-(24,6) = "\"" ├── @ InterpolatedStringNode (location: (25,0)-(25,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (25,0)-(25,1) = "\"" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (25,1)-(25,2)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (25,1)-(25,2) = "a" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "a" │ │ └── @ EmbeddedVariableNode (location: (25,2)-(25,6)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (25,2)-(25,3) = "#" │ │ └── variable: │ │ @ ClassVariableReadNode (location: (25,3)-(25,6)) + │ │ ├── flags: ∅ │ │ └── name: :@@a │ └── closing_loc: (25,6)-(25,7) = "\"" ├── @ IfNode (location: (26,0)-(30,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (26,0)-(26,2) = "if" │ ├── predicate: │ │ @ TrueNode (location: (26,3)-(26,7)) + │ │ └── flags: static_literal │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (27,2)-(27,19)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ ReturnNode (location: (27,2)-(27,19)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── keyword_loc: (27,2)-(27,8) = "return" │ │ └── arguments: │ │ @ ArgumentsNode (location: (27,9)-(27,19)) @@ -214,22 +241,24 @@ │ │ ├── opening_loc: (27,9)-(27,19) = "<<-HEREDOC" │ │ ├── parts: (length: 3) │ │ │ ├── @ StringNode (location: (28,0)-(28,4)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (28,0)-(28,4) = " " │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: " " │ │ │ ├── @ EmbeddedStatementsNode (location: (28,4)-(28,9)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── opening_loc: (28,4)-(28,6) = "\#{" │ │ │ │ ├── statements: │ │ │ │ │ @ StatementsNode (location: (28,6)-(28,8)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ IntegerNode (location: (28,6)-(28,8)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 42 │ │ │ │ └── closing_loc: (28,8)-(28,9) = "}" │ │ │ └── @ StringNode (location: (28,9)-(29,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (28,9)-(29,0) = "\n" │ │ │ ├── closing_loc: ∅ @@ -238,7 +267,7 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (30,0)-(30,3) = "end" ├── @ CallNode (location: (31,0)-(31,15)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -253,15 +282,17 @@ │ │ ├── opening_loc: (31,4)-(31,14) = "<<-HEREDOC" │ │ ├── parts: (length: 3) │ │ │ ├── @ StringNode (location: (32,0)-(32,2)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (32,0)-(32,2) = " " │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: " " │ │ │ ├── @ EmbeddedStatementsNode (location: (32,2)-(32,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── opening_loc: (32,2)-(32,4) = "\#{" │ │ │ │ ├── statements: │ │ │ │ │ @ StatementsNode (location: (32,4)-(32,7)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ CallNode (location: (32,4)-(32,7)) │ │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -275,7 +306,7 @@ │ │ │ │ │ └── block: ∅ │ │ │ │ └── closing_loc: (32,7)-(32,8) = "}" │ │ │ └── @ StringNode (location: (32,8)-(33,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (32,8)-(33,0) = "\n" │ │ │ ├── closing_loc: ∅ @@ -284,7 +315,7 @@ │ ├── closing_loc: (31,14)-(31,15) = ")" │ └── block: ∅ └── @ CallNode (location: (34,0)-(37,1)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :foo @@ -299,15 +330,17 @@ │ ├── opening_loc: (34,4)-(34,14) = "<<-HEREDOC" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (35,0)-(35,2)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (35,0)-(35,2) = " " │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: " " │ │ ├── @ EmbeddedStatementsNode (location: (35,2)-(35,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (35,2)-(35,4) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (35,4)-(35,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (35,4)-(35,7)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -321,7 +354,7 @@ │ │ │ │ └── block: ∅ │ │ │ └── closing_loc: (35,7)-(35,8) = "}" │ │ └── @ StringNode (location: (35,8)-(36,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (35,8)-(36,0) = "\n" │ │ ├── closing_loc: ∅ @@ -330,11 +363,14 @@ ├── closing_loc: (34,14)-(34,15) = ")" └── block: @ BlockNode (location: (34,16)-(37,1)) + ├── flags: ∅ ├── locals: [:x] ├── parameters: │ @ BlockParametersNode (location: (34,18)-(34,21)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (34,19)-(34,20)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (34,19)-(34,20)) │ │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/unparser/corpus/literal/empty.txt b/test/prism/snapshots/unparser/corpus/literal/empty.txt index 3a21ce5559..5756285aaf 100644 --- a/test/prism/snapshots/unparser/corpus/literal/empty.txt +++ b/test/prism/snapshots/unparser/corpus/literal/empty.txt @@ -1,5 +1,7 @@ @ ProgramNode (location: (1,0)-(1,0)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,0)) + ├── flags: ∅ └── body: (length: 0) diff --git a/test/prism/snapshots/unparser/corpus/literal/empty_begin.txt b/test/prism/snapshots/unparser/corpus/literal/empty_begin.txt index 838b4bf6f0..25dc0b26a2 100644 --- a/test/prism/snapshots/unparser/corpus/literal/empty_begin.txt +++ b/test/prism/snapshots/unparser/corpus/literal/empty_begin.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(1,2)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,2)) + ├── flags: ∅ └── body: (length: 1) └── @ ParenthesesNode (location: (1,0)-(1,2)) + ├── flags: newline ├── body: ∅ ├── opening_loc: (1,0)-(1,1) = "(" └── closing_loc: (1,1)-(1,2) = ")" diff --git a/test/prism/snapshots/unparser/corpus/literal/flipflop.txt b/test/prism/snapshots/unparser/corpus/literal/flipflop.txt index 2d9f669e6f..4c21f6c305 100644 --- a/test/prism/snapshots/unparser/corpus/literal/flipflop.txt +++ b/test/prism/snapshots/unparser/corpus/literal/flipflop.txt @@ -1,24 +1,31 @@ @ ProgramNode (location: (1,0)-(10,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(10,3)) + ├── flags: ∅ └── body: (length: 4) ├── @ IfNode (location: (1,0)-(3,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (1,0)-(1,2) = "if" │ ├── predicate: │ │ @ ParenthesesNode (location: (1,3)-(1,23)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (1,4)-(1,22)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ FlipFlopNode (location: (1,4)-(1,22)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── left: │ │ │ │ @ ParenthesesNode (location: (1,4)-(1,12)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (1,5)-(1,11)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ CallNode (location: (1,5)-(1,11)) - │ │ │ │ │ ├── flags: ∅ + │ │ │ │ │ ├── flags: newline │ │ │ │ │ ├── receiver: │ │ │ │ │ │ @ CallNode (location: (1,5)-(1,6)) │ │ │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -39,7 +46,7 @@ │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── arguments: (length: 1) │ │ │ │ │ │ └── @ IntegerNode (location: (1,10)-(1,11)) - │ │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ │ └── value: 4 │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── block: ∅ @@ -47,11 +54,13 @@ │ │ │ │ └── closing_loc: (1,11)-(1,12) = ")" │ │ │ ├── right: │ │ │ │ @ ParenthesesNode (location: (1,14)-(1,22)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (1,15)-(1,21)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ CallNode (location: (1,15)-(1,21)) - │ │ │ │ │ ├── flags: ∅ + │ │ │ │ │ ├── flags: newline │ │ │ │ │ ├── receiver: │ │ │ │ │ │ @ CallNode (location: (1,15)-(1,16)) │ │ │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -72,7 +81,7 @@ │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── arguments: (length: 1) │ │ │ │ │ │ └── @ IntegerNode (location: (1,20)-(1,21)) - │ │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ │ └── value: 4 │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── block: ∅ @@ -84,9 +93,10 @@ │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (2,2)-(2,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (2,2)-(2,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :foo @@ -98,21 +108,26 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (3,0)-(3,3) = "end" ├── @ IfNode (location: (4,0)-(6,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (4,0)-(4,2) = "if" │ ├── predicate: │ │ @ ParenthesesNode (location: (4,3)-(4,24)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (4,4)-(4,23)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ FlipFlopNode (location: (4,4)-(4,23)) - │ │ │ ├── flags: exclude_end + │ │ │ ├── flags: newline, exclude_end │ │ │ ├── left: │ │ │ │ @ ParenthesesNode (location: (4,4)-(4,12)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (4,5)-(4,11)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ CallNode (location: (4,5)-(4,11)) - │ │ │ │ │ ├── flags: ∅ + │ │ │ │ │ ├── flags: newline │ │ │ │ │ ├── receiver: │ │ │ │ │ │ @ CallNode (location: (4,5)-(4,6)) │ │ │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -133,7 +148,7 @@ │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── arguments: (length: 1) │ │ │ │ │ │ └── @ IntegerNode (location: (4,10)-(4,11)) - │ │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ │ └── value: 4 │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── block: ∅ @@ -141,11 +156,13 @@ │ │ │ │ └── closing_loc: (4,11)-(4,12) = ")" │ │ │ ├── right: │ │ │ │ @ ParenthesesNode (location: (4,15)-(4,23)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (4,16)-(4,22)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ CallNode (location: (4,16)-(4,22)) - │ │ │ │ │ ├── flags: ∅ + │ │ │ │ │ ├── flags: newline │ │ │ │ │ ├── receiver: │ │ │ │ │ │ @ CallNode (location: (4,16)-(4,17)) │ │ │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -166,7 +183,7 @@ │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── arguments: (length: 1) │ │ │ │ │ │ └── @ IntegerNode (location: (4,21)-(4,22)) - │ │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ │ └── value: 4 │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── block: ∅ @@ -178,9 +195,10 @@ │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (5,2)-(5,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (5,2)-(5,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :foo @@ -192,6 +210,7 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (6,0)-(6,3) = "end" ├── @ IfNode (location: (7,0)-(8,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (7,0)-(7,2) = "if" │ ├── predicate: │ │ @ FlipFlopNode (location: (7,3)-(7,8)) @@ -214,6 +233,7 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (8,0)-(8,3) = "end" └── @ IfNode (location: (9,0)-(10,3)) + ├── flags: newline ├── if_keyword_loc: (9,0)-(9,2) = "if" ├── predicate: │ @ FlipFlopNode (location: (9,3)-(9,8)) diff --git a/test/prism/snapshots/unparser/corpus/literal/for.txt b/test/prism/snapshots/unparser/corpus/literal/for.txt index 660c6b73f3..a1722a8a09 100644 --- a/test/prism/snapshots/unparser/corpus/literal/for.txt +++ b/test/prism/snapshots/unparser/corpus/literal/for.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(12,3)) +├── flags: ∅ ├── locals: [:a, :b] └── statements: @ StatementsNode (location: (1,0)-(12,3)) + ├── flags: ∅ └── body: (length: 4) ├── @ CallNode (location: (1,0)-(3,4)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :bar @@ -15,8 +17,10 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ForNode (location: (1,4)-(3,3)) + │ │ ├── flags: ∅ │ │ ├── index: │ │ │ @ LocalVariableTargetNode (location: (1,8)-(1,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ ├── collection: @@ -32,9 +36,10 @@ │ │ │ └── block: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (2,2)-(2,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (2,2)-(2,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :baz @@ -50,8 +55,10 @@ │ ├── closing_loc: (3,3)-(3,4) = ")" │ └── block: ∅ ├── @ ForNode (location: (4,0)-(6,3)) + │ ├── flags: newline │ ├── index: │ │ @ LocalVariableTargetNode (location: (4,4)-(4,5)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── collection: @@ -67,9 +74,10 @@ │ │ └── block: ∅ │ ├── statements: │ │ @ StatementsNode (location: (5,2)-(5,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (5,2)-(5,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :baz @@ -83,17 +91,22 @@ │ ├── do_keyword_loc: (4,13)-(4,15) = "do" │ └── end_keyword_loc: (6,0)-(6,3) = "end" ├── @ ForNode (location: (7,0)-(9,3)) + │ ├── flags: newline │ ├── index: │ │ @ MultiTargetNode (location: (7,4)-(7,11)) + │ │ ├── flags: ∅ │ │ ├── lefts: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (7,5)-(7,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ ├── rest: │ │ │ @ SplatNode (location: (7,8)-(7,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (7,8)-(7,9) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableTargetNode (location: (7,9)-(7,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :b │ │ │ └── depth: 0 │ │ ├── rights: (length: 0) @@ -112,9 +125,10 @@ │ │ └── block: ∅ │ ├── statements: │ │ @ StatementsNode (location: (8,2)-(8,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (8,2)-(8,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :baz @@ -128,13 +142,17 @@ │ ├── do_keyword_loc: (7,19)-(7,21) = "do" │ └── end_keyword_loc: (9,0)-(9,3) = "end" └── @ ForNode (location: (10,0)-(12,3)) + ├── flags: newline ├── index: │ @ MultiTargetNode (location: (10,4)-(10,10)) + │ ├── flags: ∅ │ ├── lefts: (length: 2) │ │ ├── @ LocalVariableTargetNode (location: (10,5)-(10,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ └── @ LocalVariableTargetNode (location: (10,8)-(10,9)) + │ │ ├── flags: ∅ │ │ ├── name: :b │ │ └── depth: 0 │ ├── rest: ∅ @@ -154,9 +172,10 @@ │ └── block: ∅ ├── statements: │ @ StatementsNode (location: (11,2)-(11,5)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (11,2)-(11,5)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :baz diff --git a/test/prism/snapshots/unparser/corpus/literal/hookexe.txt b/test/prism/snapshots/unparser/corpus/literal/hookexe.txt index dabedbc588..bbcb8fee1b 100644 --- a/test/prism/snapshots/unparser/corpus/literal/hookexe.txt +++ b/test/prism/snapshots/unparser/corpus/literal/hookexe.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(7,1)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(7,1)) + ├── flags: ∅ └── body: (length: 3) ├── @ PreExecutionNode (location: (1,0)-(3,1)) + │ ├── flags: newline │ ├── statements: │ │ @ StatementsNode (location: (2,2)-(2,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (2,2)-(2,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :foo @@ -21,7 +25,7 @@ │ ├── opening_loc: (1,6)-(1,7) = "{" │ └── closing_loc: (3,0)-(3,1) = "}" ├── @ CallNode (location: (4,0)-(4,3)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :bar @@ -31,11 +35,13 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ PostExecutionNode (location: (5,0)-(7,1)) + ├── flags: newline ├── statements: │ @ StatementsNode (location: (6,2)-(6,5)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (6,2)-(6,5)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :baz diff --git a/test/prism/snapshots/unparser/corpus/literal/if.txt b/test/prism/snapshots/unparser/corpus/literal/if.txt index 00eeba179c..f4a18c0c12 100644 --- a/test/prism/snapshots/unparser/corpus/literal/if.txt +++ b/test/prism/snapshots/unparser/corpus/literal/if.txt @@ -1,13 +1,16 @@ @ ProgramNode (location: (1,0)-(36,3)) +├── flags: ∅ ├── locals: [:foo, :pair] └── statements: @ StatementsNode (location: (1,0)-(36,3)) + ├── flags: ∅ └── body: (length: 10) ├── @ IfNode (location: (1,0)-(3,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (1,0)-(1,2) = "if" │ ├── predicate: │ │ @ MatchLastLineNode (location: (1,3)-(1,8)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,3)-(1,4) = "/" │ │ ├── content_loc: (1,4)-(1,7) = "foo" │ │ ├── closing_loc: (1,7)-(1,8) = "/" @@ -15,9 +18,10 @@ │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (2,2)-(2,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (2,2)-(2,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -29,73 +33,85 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (3,0)-(3,3) = "end" ├── @ IfNode (location: (4,0)-(6,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (4,0)-(4,2) = "if" │ ├── predicate: │ │ @ IntegerNode (location: (4,3)-(4,4)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (5,2)-(5,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (5,2)-(5,3)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 9 │ ├── consequent: ∅ │ └── end_keyword_loc: (6,0)-(6,3) = "end" ├── @ IfNode (location: (7,0)-(11,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (7,0)-(7,2) = "if" │ ├── predicate: │ │ @ IntegerNode (location: (7,3)-(7,4)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 4 │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (8,2)-(8,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (8,2)-(8,3)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 5 │ ├── consequent: │ │ @ ElseNode (location: (9,0)-(11,3)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (9,0)-(9,4) = "else" │ │ ├── statements: │ │ │ @ StatementsNode (location: (10,2)-(10,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ IntegerNode (location: (10,2)-(10,3)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: newline, static_literal, decimal │ │ │ └── value: 6 │ │ └── end_keyword_loc: (11,0)-(11,3) = "end" │ └── end_keyword_loc: (11,0)-(11,3) = "end" ├── @ UnlessNode (location: (12,0)-(14,3)) + │ ├── flags: newline │ ├── keyword_loc: (12,0)-(12,6) = "unless" │ ├── predicate: │ │ @ IntegerNode (location: (12,7)-(12,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (13,2)-(13,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ NilNode (location: (13,2)-(13,5)) + │ │ └── flags: newline, static_literal │ ├── consequent: ∅ │ └── end_keyword_loc: (14,0)-(14,3) = "end" ├── @ UnlessNode (location: (15,0)-(17,3)) + │ ├── flags: newline │ ├── keyword_loc: (15,0)-(15,6) = "unless" │ ├── predicate: │ │ @ IntegerNode (location: (15,7)-(15,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 3 │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (16,2)-(16,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (16,2)-(16,3)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 9 │ ├── consequent: ∅ │ └── end_keyword_loc: (17,0)-(17,3) = "end" ├── @ IfNode (location: (18,0)-(19,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (18,0)-(18,2) = "if" │ ├── predicate: │ │ @ CallNode (location: (18,3)-(18,6)) @@ -113,25 +129,32 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (19,0)-(19,3) = "end" ├── @ ModuleNode (location: (21,0)-(23,3)) + │ ├── flags: newline │ ├── locals: [:foo] │ ├── module_keyword_loc: (21,0)-(21,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (21,7)-(21,8)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── body: │ │ @ StatementsNode (location: (22,2)-(22,18)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IfNode (location: (22,2)-(22,18)) + │ │ ├── flags: newline │ │ ├── if_keyword_loc: (22,12)-(22,14) = "if" │ │ ├── predicate: │ │ │ @ LocalVariableReadNode (location: (22,15)-(22,18)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :foo │ │ │ └── depth: 0 │ │ ├── then_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (22,2)-(22,11)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableWriteNode (location: (22,2)-(22,11)) + │ │ │ ├── flags: newline │ │ │ ├── name: :foo │ │ │ ├── depth: 0 │ │ │ ├── name_loc: (22,2)-(22,5) = "foo" @@ -152,25 +175,32 @@ │ ├── end_keyword_loc: (23,0)-(23,3) = "end" │ └── name: :A ├── @ ModuleNode (location: (25,0)-(27,3)) + │ ├── flags: newline │ ├── locals: [:foo] │ ├── module_keyword_loc: (25,0)-(25,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (25,7)-(25,8)) + │ │ ├── flags: ∅ │ │ └── name: :B │ ├── body: │ │ @ StatementsNode (location: (26,2)-(26,22)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ UnlessNode (location: (26,2)-(26,22)) + │ │ ├── flags: newline │ │ ├── keyword_loc: (26,12)-(26,18) = "unless" │ │ ├── predicate: │ │ │ @ LocalVariableReadNode (location: (26,19)-(26,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :foo │ │ │ └── depth: 0 │ │ ├── then_keyword_loc: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (26,2)-(26,11)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableWriteNode (location: (26,2)-(26,11)) + │ │ │ ├── flags: newline │ │ │ ├── name: :foo │ │ │ ├── depth: 0 │ │ │ ├── name_loc: (26,2)-(26,5) = "foo" @@ -191,6 +221,7 @@ │ ├── end_keyword_loc: (27,0)-(27,3) = "end" │ └── name: :B ├── @ UnlessNode (location: (28,0)-(30,3)) + │ ├── flags: newline │ ├── keyword_loc: (28,0)-(28,6) = "unless" │ ├── predicate: │ │ @ CallNode (location: (28,7)-(28,10)) @@ -206,8 +237,10 @@ │ ├── then_keyword_loc: ∅ │ ├── statements: │ │ @ StatementsNode (location: (29,2)-(29,11)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableWriteNode (location: (29,2)-(29,11)) + │ │ ├── flags: newline │ │ ├── name: :foo │ │ ├── depth: 0 │ │ ├── name_loc: (29,2)-(29,5) = "foo" @@ -226,6 +259,7 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (30,0)-(30,3) = "end" └── @ IfNode (location: (31,0)-(36,3)) + ├── flags: newline ├── if_keyword_loc: (31,0)-(31,2) = "if" ├── predicate: │ @ CallNode (location: (31,3)-(33,1)) @@ -239,11 +273,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (31,7)-(33,1)) + │ ├── flags: ∅ │ ├── locals: [:pair] │ ├── parameters: │ │ @ BlockParametersNode (location: (31,9)-(31,15)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (31,10)-(31,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (31,10)-(31,14)) │ │ │ │ ├── flags: ∅ @@ -259,8 +296,10 @@ │ │ └── closing_loc: (31,14)-(31,15) = "|" │ ├── body: │ │ @ StatementsNode (location: (32,2)-(32,6)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (32,2)-(32,6)) + │ │ ├── flags: newline │ │ ├── name: :pair │ │ └── depth: 0 │ ├── opening_loc: (31,7)-(31,8) = "{" @@ -268,20 +307,23 @@ ├── then_keyword_loc: ∅ ├── statements: │ @ StatementsNode (location: (34,2)-(35,5)) + │ ├── flags: ∅ │ └── body: (length: 2) │ ├── @ LocalVariableWriteNode (location: (34,2)-(34,13)) + │ │ ├── flags: newline │ │ ├── name: :pair │ │ ├── depth: 0 │ │ ├── name_loc: (34,2)-(34,6) = "pair" │ │ ├── value: │ │ │ @ SymbolNode (location: (34,9)-(34,13)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (34,9)-(34,10) = ":" │ │ │ ├── value_loc: (34,10)-(34,13) = "foo" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "foo" │ │ └── operator_loc: (34,7)-(34,8) = "=" │ └── @ LocalVariableReadNode (location: (35,2)-(35,5)) + │ ├── flags: newline │ ├── name: :foo │ └── depth: 0 ├── consequent: ∅ diff --git a/test/prism/snapshots/unparser/corpus/literal/kwbegin.txt b/test/prism/snapshots/unparser/corpus/literal/kwbegin.txt index 48e53af00e..068e20ad98 100644 --- a/test/prism/snapshots/unparser/corpus/literal/kwbegin.txt +++ b/test/prism/snapshots/unparser/corpus/literal/kwbegin.txt @@ -1,13 +1,17 @@ @ ProgramNode (location: (1,0)-(80,3)) +├── flags: ∅ ├── locals: [:foo, :bar, :exception] └── statements: @ StatementsNode (location: (1,0)-(80,3)) + ├── flags: ∅ └── body: (length: 14) ├── @ BeginNode (location: (1,0)-(3,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (1,0)-(1,5) = "begin" │ ├── statements: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (2,0)-(2,6)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (2,0)-(2,6) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ @@ -18,23 +22,27 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (3,0)-(3,3) = "end" ├── @ BeginNode (location: (5,0)-(7,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (5,0)-(5,5) = "begin" │ ├── statements: ∅ │ ├── rescue_clause: ∅ │ ├── else_clause: ∅ │ ├── ensure_clause: │ │ @ EnsureNode (location: (6,0)-(7,3)) + │ │ ├── flags: ∅ │ │ ├── ensure_keyword_loc: (6,0)-(6,6) = "ensure" │ │ ├── statements: ∅ │ │ └── end_keyword_loc: (7,0)-(7,3) = "end" │ └── end_keyword_loc: (7,0)-(7,3) = "end" ├── @ BeginNode (location: (9,0)-(11,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (9,0)-(9,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (10,2)-(10,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (10,2)-(10,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -48,12 +56,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (11,0)-(11,3) = "end" ├── @ BeginNode (location: (13,0)-(17,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (13,0)-(13,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (14,2)-(14,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (14,2)-(14,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -64,15 +74,17 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (15,0)-(16,3)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (15,0)-(15,6) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (16,2)-(16,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (16,2)-(16,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -86,12 +98,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (17,0)-(17,3) = "end" ├── @ BeginNode (location: (19,0)-(24,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (19,0)-(19,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (20,2)-(21,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 2) │ │ ├── @ CallNode (location: (20,2)-(20,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :a @@ -101,7 +115,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ CallNode (location: (21,2)-(21,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :b @@ -112,15 +126,17 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (22,0)-(23,3)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (22,0)-(22,6) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (23,2)-(23,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (23,2)-(23,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -134,13 +150,16 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (24,0)-(24,3) = "end" ├── @ BeginNode (location: (26,0)-(28,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (26,0)-(26,5) = "begin" │ ├── statements: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (27,0)-(27,8)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (27,0)-(27,6) = "rescue" │ │ ├── exceptions: (length: 1) │ │ │ └── @ ConstantReadNode (location: (27,7)-(27,8)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ @@ -150,17 +169,21 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (28,0)-(28,3) = "end" ├── @ BeginNode (location: (30,0)-(32,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (30,0)-(30,5) = "begin" │ ├── statements: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (31,0)-(31,15)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (31,0)-(31,6) = "rescue" │ │ ├── exceptions: (length: 1) │ │ │ └── @ ConstantReadNode (location: (31,7)-(31,8)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── operator_loc: (31,9)-(31,11) = "=>" │ │ ├── reference: │ │ │ @ LocalVariableTargetNode (location: (31,12)-(31,15)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :foo │ │ │ └── depth: 0 │ │ ├── statements: ∅ @@ -169,12 +192,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (32,0)-(32,3) = "end" ├── @ BeginNode (location: (34,0)-(42,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (34,0)-(34,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (35,2)-(35,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (35,2)-(35,3)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :a @@ -185,17 +210,20 @@ │ │ └── block: ∅ │ ├── rescue_clause: │ │ @ RescueNode (location: (36,0)-(39,3)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (36,0)-(36,6) = "rescue" │ │ ├── exceptions: (length: 1) │ │ │ └── @ ConstantReadNode (location: (36,7)-(36,8)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (37,2)-(37,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (37,2)-(37,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :b @@ -206,17 +234,20 @@ │ │ │ └── block: ∅ │ │ └── consequent: │ │ @ RescueNode (location: (38,0)-(39,3)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (38,0)-(38,6) = "rescue" │ │ ├── exceptions: (length: 1) │ │ │ └── @ ConstantReadNode (location: (38,7)-(38,8)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :B │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (39,2)-(39,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (39,2)-(39,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :c @@ -229,12 +260,14 @@ │ ├── else_clause: ∅ │ ├── ensure_clause: │ │ @ EnsureNode (location: (40,0)-(42,3)) + │ │ ├── flags: ∅ │ │ ├── ensure_keyword_loc: (40,0)-(40,6) = "ensure" │ │ ├── statements: │ │ │ @ StatementsNode (location: (41,2)-(41,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (41,2)-(41,3)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :d @@ -246,20 +279,25 @@ │ │ └── end_keyword_loc: (42,0)-(42,3) = "end" │ └── end_keyword_loc: (42,0)-(42,3) = "end" ├── @ BeginNode (location: (44,0)-(53,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (44,0)-(44,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (45,2)-(49,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ BeginNode (location: (45,2)-(49,5)) + │ │ ├── flags: newline │ │ ├── begin_keyword_loc: (45,2)-(45,7) = "begin" │ │ ├── statements: │ │ │ @ StatementsNode (location: (46,4)-(47,7)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 2) │ │ │ ├── @ LocalVariableReadNode (location: (46,4)-(46,7)) + │ │ │ │ ├── flags: newline │ │ │ │ ├── name: :foo │ │ │ │ └── depth: 0 │ │ │ └── @ CallNode (location: (47,4)-(47,7)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -270,6 +308,7 @@ │ │ │ └── block: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (48,2)-(48,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (48,2)-(48,8) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ @@ -281,15 +320,17 @@ │ │ └── end_keyword_loc: (49,2)-(49,5) = "end" │ ├── rescue_clause: │ │ @ RescueNode (location: (50,0)-(52,5)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (50,0)-(50,6) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ │ │ ├── statements: │ │ │ @ StatementsNode (location: (51,2)-(52,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 2) │ │ │ ├── @ CallNode (location: (51,2)-(51,5)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :baz @@ -299,7 +340,7 @@ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── block: ∅ │ │ │ └── @ CallNode (location: (52,2)-(52,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -313,11 +354,14 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (53,0)-(53,3) = "end" ├── @ BeginNode (location: (55,0)-(58,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (55,0)-(55,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (56,2)-(56,35)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RescueModifierNode (location: (56,2)-(56,35)) + │ │ ├── flags: newline │ │ ├── expression: │ │ │ @ CallNode (location: (56,2)-(56,18)) │ │ │ ├── flags: ignore_visibility @@ -331,12 +375,14 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ ConstantReadNode (location: (56,8)-(56,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :Exception │ │ │ ├── closing_loc: (56,17)-(56,18) = ")" │ │ │ └── block: ∅ │ │ ├── keyword_loc: (56,19)-(56,25) = "rescue" │ │ └── rescue_expression: │ │ @ LocalVariableWriteNode (location: (56,26)-(56,35)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ ├── depth: 0 │ │ ├── name_loc: (56,26)-(56,29) = "foo" @@ -354,9 +400,11 @@ │ │ └── operator_loc: (56,30)-(56,31) = "=" │ ├── rescue_clause: │ │ @ RescueNode (location: (57,0)-(57,16)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (57,0)-(57,6) = "rescue" │ │ ├── exceptions: (length: 1) │ │ │ └── @ ConstantReadNode (location: (57,7)-(57,16)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Exception │ │ ├── operator_loc: ∅ │ │ ├── reference: ∅ @@ -366,26 +414,33 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (58,0)-(58,3) = "end" ├── @ BeginNode (location: (60,0)-(64,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (60,0)-(60,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (61,2)-(61,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (61,2)-(61,5)) + │ │ ├── flags: newline │ │ ├── name: :foo │ │ └── depth: 0 │ ├── rescue_clause: │ │ @ RescueNode (location: (62,0)-(63,5)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (62,0)-(62,6) = "rescue" │ │ ├── exceptions: (length: 0) │ │ ├── operator_loc: (62,7)-(62,9) = "=>" │ │ ├── reference: │ │ │ @ LocalVariableTargetNode (location: (62,10)-(62,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── statements: │ │ │ @ StatementsNode (location: (63,2)-(63,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableReadNode (location: (63,2)-(63,5)) + │ │ │ ├── flags: newline │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ └── consequent: ∅ @@ -393,30 +448,39 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (64,0)-(64,3) = "end" ├── @ BeginNode (location: (66,0)-(70,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (66,0)-(66,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (67,2)-(67,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (67,2)-(67,5)) + │ │ ├── flags: newline │ │ ├── name: :foo │ │ └── depth: 0 │ ├── rescue_clause: │ │ @ RescueNode (location: (68,0)-(69,5)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (68,0)-(68,6) = "rescue" │ │ ├── exceptions: (length: 2) │ │ │ ├── @ ConstantReadNode (location: (68,7)-(68,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :Exception │ │ │ └── @ ConstantReadNode (location: (68,18)-(68,23)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :Other │ │ ├── operator_loc: (68,24)-(68,26) = "=>" │ │ ├── reference: │ │ │ @ LocalVariableTargetNode (location: (68,27)-(68,30)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── statements: │ │ │ @ StatementsNode (location: (69,2)-(69,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableReadNode (location: (69,2)-(69,5)) + │ │ │ ├── flags: newline │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ └── consequent: ∅ @@ -424,35 +488,44 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (70,0)-(70,3) = "end" ├── @ BeginNode (location: (72,0)-(76,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (72,0)-(72,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (73,2)-(73,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (73,2)-(73,5)) + │ │ ├── flags: newline │ │ ├── name: :bar │ │ └── depth: 0 │ ├── rescue_clause: │ │ @ RescueNode (location: (74,0)-(75,5)) + │ │ ├── flags: ∅ │ │ ├── keyword_loc: (74,0)-(74,6) = "rescue" │ │ ├── exceptions: (length: 2) │ │ │ ├── @ ConstantReadNode (location: (74,7)-(74,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :SomeError │ │ │ └── @ SplatNode (location: (74,18)-(74,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (74,18)-(74,19) = "*" │ │ │ └── expression: │ │ │ @ LocalVariableReadNode (location: (74,19)-(74,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :bar │ │ │ └── depth: 0 │ │ ├── operator_loc: (74,23)-(74,25) = "=>" │ │ ├── reference: │ │ │ @ LocalVariableTargetNode (location: (74,26)-(74,35)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :exception │ │ │ └── depth: 0 │ │ ├── statements: │ │ │ @ StatementsNode (location: (75,2)-(75,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (75,2)-(75,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :baz @@ -466,20 +539,25 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (76,0)-(76,3) = "end" └── @ SingletonClassNode (location: (78,0)-(80,3)) + ├── flags: newline ├── locals: [] ├── class_keyword_loc: (78,0)-(78,5) = "class" ├── operator_loc: (78,6)-(78,8) = "<<" ├── expression: │ @ SelfNode (location: (78,9)-(78,13)) + │ └── flags: ∅ ├── body: │ @ StatementsNode (location: (79,2)-(79,23)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ RescueModifierNode (location: (79,2)-(79,23)) + │ ├── flags: newline │ ├── expression: │ │ @ UndefNode (location: (79,2)-(79,12)) + │ │ ├── flags: ∅ │ │ ├── names: (length: 1) │ │ │ └── @ SymbolNode (location: (79,8)-(79,12)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (79,8)-(79,9) = ":" │ │ │ ├── value_loc: (79,9)-(79,12) = "bar" │ │ │ ├── closing_loc: ∅ @@ -488,4 +566,5 @@ │ ├── keyword_loc: (79,13)-(79,19) = "rescue" │ └── rescue_expression: │ @ NilNode (location: (79,20)-(79,23)) + │ └── flags: static_literal └── end_keyword_loc: (80,0)-(80,3) = "end" diff --git a/test/prism/snapshots/unparser/corpus/literal/lambda.txt b/test/prism/snapshots/unparser/corpus/literal/lambda.txt index 3594787bca..863678f17b 100644 --- a/test/prism/snapshots/unparser/corpus/literal/lambda.txt +++ b/test/prism/snapshots/unparser/corpus/literal/lambda.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(13,1)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(13,1)) + ├── flags: ∅ └── body: (length: 6) ├── @ CallNode (location: (1,0)-(2,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :lambda @@ -14,13 +16,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,7)-(2,1)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ │ ├── opening_loc: (1,7)-(1,8) = "{" │ └── closing_loc: (2,0)-(2,1) = "}" ├── @ CallNode (location: (3,0)-(5,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :lambda @@ -30,11 +33,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (3,7)-(5,1)) + │ ├── flags: ∅ │ ├── locals: [:a, :b] │ ├── parameters: │ │ @ BlockParametersNode (location: (3,9)-(3,15)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (3,10)-(3,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 2) │ │ │ │ ├── @ RequiredParameterNode (location: (3,10)-(3,11)) │ │ │ │ │ ├── flags: ∅ @@ -53,33 +59,40 @@ │ │ └── closing_loc: (3,14)-(3,15) = "|" │ ├── body: │ │ @ StatementsNode (location: (4,2)-(4,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (4,2)-(4,3)) + │ │ ├── flags: newline │ │ ├── name: :a │ │ └── depth: 0 │ ├── opening_loc: (3,7)-(3,8) = "{" │ └── closing_loc: (5,0)-(5,1) = "}" ├── @ LambdaNode (location: (6,0)-(7,1)) + │ ├── flags: newline │ ├── locals: [] │ ├── operator_loc: (6,0)-(6,2) = "->" │ ├── opening_loc: (6,5)-(6,6) = "{" │ ├── closing_loc: (7,0)-(7,1) = "}" │ ├── parameters: │ │ @ BlockParametersNode (location: (6,2)-(6,4)) + │ │ ├── flags: ∅ │ │ ├── parameters: ∅ │ │ ├── locals: (length: 0) │ │ ├── opening_loc: (6,2)-(6,3) = "(" │ │ └── closing_loc: (6,3)-(6,4) = ")" │ └── body: ∅ ├── @ LambdaNode (location: (8,0)-(9,1)) + │ ├── flags: newline │ ├── locals: [:a] │ ├── operator_loc: (8,0)-(8,2) = "->" │ ├── opening_loc: (8,6)-(8,7) = "{" │ ├── closing_loc: (9,0)-(9,1) = "}" │ ├── parameters: │ │ @ BlockParametersNode (location: (8,2)-(8,5)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (8,3)-(8,4)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (8,3)-(8,4)) │ │ │ │ ├── flags: ∅ @@ -95,14 +108,17 @@ │ │ └── closing_loc: (8,4)-(8,5) = ")" │ └── body: ∅ ├── @ LambdaNode (location: (10,0)-(11,1)) + │ ├── flags: newline │ ├── locals: [:a, :b] │ ├── operator_loc: (10,0)-(10,2) = "->" │ ├── opening_loc: (10,9)-(10,10) = "{" │ ├── closing_loc: (11,0)-(11,1) = "}" │ ├── parameters: │ │ @ BlockParametersNode (location: (10,2)-(10,8)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (10,3)-(10,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 2) │ │ │ │ ├── @ RequiredParameterNode (location: (10,3)-(10,4)) │ │ │ │ │ ├── flags: ∅ @@ -121,14 +137,17 @@ │ │ └── closing_loc: (10,7)-(10,8) = ")" │ └── body: ∅ └── @ LambdaNode (location: (12,0)-(13,1)) + ├── flags: newline ├── locals: [:a, :b, :c] ├── operator_loc: (12,0)-(12,2) = "->" ├── opening_loc: (12,12)-(12,13) = "{" ├── closing_loc: (13,0)-(13,1) = "}" ├── parameters: │ @ BlockParametersNode (location: (12,2)-(12,11)) + │ ├── flags: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (12,3)-(12,7)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 2) │ │ │ ├── @ RequiredParameterNode (location: (12,3)-(12,4)) │ │ │ │ ├── flags: ∅ diff --git a/test/prism/snapshots/unparser/corpus/literal/literal.txt b/test/prism/snapshots/unparser/corpus/literal/literal.txt index ddb10456bf..430a8a0679 100644 --- a/test/prism/snapshots/unparser/corpus/literal/literal.txt +++ b/test/prism/snapshots/unparser/corpus/literal/literal.txt @@ -1,15 +1,19 @@ @ ProgramNode (location: (1,0)-(91,2)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(91,2)) + ├── flags: ∅ └── body: (length: 78) ├── @ HashNode (location: (1,0)-(1,38)) + │ ├── flags: newline │ ├── opening_loc: (1,0)-(1,1) = "{" │ ├── elements: (length: 2) │ │ ├── @ AssocNode (location: (1,2)-(1,21)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ StringNode (location: (1,2)-(1,7)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: (1,2)-(1,3) = "\"" │ │ │ │ ├── content_loc: (1,3)-(1,6) = "foo" │ │ │ │ ├── closing_loc: (1,6)-(1,7) = "\"" @@ -20,17 +24,18 @@ │ │ │ │ ├── opening_loc: (1,11)-(1,21) = "<<-HEREDOC" │ │ │ │ ├── parts: (length: 3) │ │ │ │ │ ├── @ StringNode (location: (2,0)-(2,2)) - │ │ │ │ │ │ ├── flags: frozen + │ │ │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ │ ├── content_loc: (2,0)-(2,2) = " " │ │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ │ └── unescaped: " " │ │ │ │ │ ├── @ EmbeddedStatementsNode (location: (2,2)-(2,5)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── opening_loc: (2,2)-(2,4) = "\#{" │ │ │ │ │ │ ├── statements: ∅ │ │ │ │ │ │ └── closing_loc: (2,4)-(2,5) = "}" │ │ │ │ │ └── @ StringNode (location: (2,5)-(3,0)) - │ │ │ │ │ ├── flags: frozen + │ │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── content_loc: (2,5)-(3,0) = "\n" │ │ │ │ │ ├── closing_loc: ∅ @@ -38,16 +43,17 @@ │ │ │ │ └── closing_loc: (3,0)-(4,0) = "HEREDOC\n" │ │ │ └── operator_loc: (1,8)-(1,10) = "=>" │ │ └── @ AssocNode (location: (1,23)-(1,36)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ StringNode (location: (1,23)-(1,28)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: (1,23)-(1,24) = "\"" │ │ │ ├── content_loc: (1,24)-(1,27) = "bar" │ │ │ ├── closing_loc: (1,27)-(1,28) = "\"" │ │ │ └── unescaped: "bar" │ │ ├── value: │ │ │ @ SymbolNode (location: (1,32)-(1,36)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (1,32)-(1,33) = ":" │ │ │ ├── value_loc: (1,33)-(1,36) = "baz" │ │ │ ├── closing_loc: ∅ @@ -55,12 +61,14 @@ │ │ └── operator_loc: (1,29)-(1,31) = "=>" │ └── closing_loc: (1,37)-(1,38) = "}" ├── @ HashNode (location: (4,0)-(4,31)) + │ ├── flags: newline │ ├── opening_loc: (4,0)-(4,1) = "{" │ ├── elements: (length: 2) │ │ ├── @ AssocNode (location: (4,2)-(4,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ StringNode (location: (4,2)-(4,7)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: (4,2)-(4,3) = "\"" │ │ │ │ ├── content_loc: (4,3)-(4,6) = "foo" │ │ │ │ ├── closing_loc: (4,6)-(4,7) = "\"" @@ -74,16 +82,17 @@ │ │ │ │ └── unescaped: "" │ │ │ └── operator_loc: (4,8)-(4,10) = "=>" │ │ └── @ AssocNode (location: (4,16)-(4,29)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ StringNode (location: (4,16)-(4,21)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: (4,16)-(4,17) = "\"" │ │ │ ├── content_loc: (4,17)-(4,20) = "bar" │ │ │ ├── closing_loc: (4,20)-(4,21) = "\"" │ │ │ └── unescaped: "bar" │ │ ├── value: │ │ │ @ SymbolNode (location: (4,25)-(4,29)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (4,25)-(4,26) = ":" │ │ │ ├── value_loc: (4,26)-(4,29) = "baz" │ │ │ ├── closing_loc: ∅ @@ -91,7 +100,7 @@ │ │ └── operator_loc: (4,22)-(4,24) = "=>" │ └── closing_loc: (4,30)-(4,31) = "}" ├── @ ArrayNode (location: (5,0)-(5,12)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 2) │ │ ├── @ StringNode (location: (5,1)-(5,6)) │ │ │ ├── flags: ∅ @@ -108,7 +117,7 @@ │ ├── opening_loc: (5,0)-(5,1) = "[" │ └── closing_loc: (5,11)-(5,12) = "]" ├── @ CallNode (location: (6,0)-(6,15)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (6,0)-(6,13)) │ │ ├── flags: ignore_visibility @@ -126,17 +135,18 @@ │ │ │ ├── opening_loc: (6,2)-(6,12) = "<<-HEREDOC" │ │ │ ├── parts: (length: 3) │ │ │ │ ├── @ StringNode (location: (7,0)-(7,2)) - │ │ │ │ │ ├── flags: frozen + │ │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── content_loc: (7,0)-(7,2) = " " │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ └── unescaped: " " │ │ │ │ ├── @ EmbeddedStatementsNode (location: (7,2)-(7,5)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── opening_loc: (7,2)-(7,4) = "\#{" │ │ │ │ │ ├── statements: ∅ │ │ │ │ │ └── closing_loc: (7,4)-(7,5) = "}" │ │ │ │ └── @ StringNode (location: (7,5)-(8,0)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (7,5)-(8,0) = "\n" │ │ │ │ ├── closing_loc: ∅ @@ -152,7 +162,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (9,0)-(9,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (9,0)-(9,6)) │ │ ├── flags: ignore_visibility @@ -181,12 +191,14 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ HashNode (location: (10,0)-(10,30)) + │ ├── flags: newline │ ├── opening_loc: (10,0)-(10,1) = "{" │ ├── elements: (length: 2) │ │ ├── @ AssocNode (location: (10,2)-(10,21)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ StringNode (location: (10,2)-(10,7)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: (10,2)-(10,3) = "\"" │ │ │ │ ├── content_loc: (10,3)-(10,6) = "foo" │ │ │ │ ├── closing_loc: (10,6)-(10,7) = "\"" @@ -197,17 +209,18 @@ │ │ │ │ ├── opening_loc: (10,11)-(10,21) = "<<-HEREDOC" │ │ │ │ ├── parts: (length: 3) │ │ │ │ │ ├── @ StringNode (location: (11,0)-(11,2)) - │ │ │ │ │ │ ├── flags: frozen + │ │ │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ │ ├── content_loc: (11,0)-(11,2) = " " │ │ │ │ │ │ ├── closing_loc: ∅ │ │ │ │ │ │ └── unescaped: " " │ │ │ │ │ ├── @ EmbeddedStatementsNode (location: (11,2)-(11,5)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── opening_loc: (11,2)-(11,4) = "\#{" │ │ │ │ │ │ ├── statements: ∅ │ │ │ │ │ │ └── closing_loc: (11,4)-(11,5) = "}" │ │ │ │ │ └── @ StringNode (location: (11,5)-(12,0)) - │ │ │ │ │ ├── flags: frozen + │ │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── content_loc: (11,5)-(12,0) = "\n" │ │ │ │ │ ├── closing_loc: ∅ @@ -215,6 +228,7 @@ │ │ │ │ └── closing_loc: (12,0)-(13,0) = "HEREDOC\n" │ │ │ └── operator_loc: (10,8)-(10,10) = "=>" │ │ └── @ AssocSplatNode (location: (10,23)-(10,28)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ CallNode (location: (10,25)-(10,28)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -229,12 +243,14 @@ │ │ └── operator_loc: (10,23)-(10,25) = "**" │ └── closing_loc: (10,29)-(10,30) = "}" ├── @ HashNode (location: (13,0)-(13,23)) + │ ├── flags: newline │ ├── opening_loc: (13,0)-(13,1) = "{" │ ├── elements: (length: 2) │ │ ├── @ AssocNode (location: (13,2)-(13,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ StringNode (location: (13,2)-(13,7)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: (13,2)-(13,3) = "\"" │ │ │ │ ├── content_loc: (13,3)-(13,6) = "foo" │ │ │ │ ├── closing_loc: (13,6)-(13,7) = "\"" @@ -248,6 +264,7 @@ │ │ │ │ └── unescaped: "" │ │ │ └── operator_loc: (13,8)-(13,10) = "=>" │ │ └── @ AssocSplatNode (location: (13,16)-(13,21)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ CallNode (location: (13,18)-(13,21)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -262,45 +279,51 @@ │ │ └── operator_loc: (13,16)-(13,18) = "**" │ └── closing_loc: (13,22)-(13,23) = "}" ├── @ InterpolatedStringNode (location: (14,0)-(14,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (14,0)-(14,1) = "\"" │ ├── parts: (length: 5) │ │ ├── @ EmbeddedVariableNode (location: (14,1)-(14,4)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (14,1)-(14,2) = "#" │ │ │ └── variable: │ │ │ @ InstanceVariableReadNode (location: (14,2)-(14,4)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :@a │ │ ├── @ StringNode (location: (14,4)-(14,5)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (14,4)-(14,5) = " " │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: " " │ │ ├── @ EmbeddedVariableNode (location: (14,5)-(14,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (14,5)-(14,6) = "#" │ │ │ └── variable: │ │ │ @ ClassVariableReadNode (location: (14,6)-(14,9)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :@@a │ │ ├── @ StringNode (location: (14,9)-(14,10)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (14,9)-(14,10) = " " │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: " " │ │ └── @ EmbeddedVariableNode (location: (14,10)-(14,13)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (14,10)-(14,11) = "#" │ │ └── variable: │ │ @ GlobalVariableReadNode (location: (14,11)-(14,13)) + │ │ ├── flags: ∅ │ │ └── name: :$a │ └── closing_loc: (14,13)-(14,14) = "\"" ├── @ IntegerNode (location: (15,0)-(15,1)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 0 ├── @ CallNode (location: (16,0)-(16,3)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IntegerNode (location: (16,1)-(16,3)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: ∅ │ ├── name: :+@ @@ -310,83 +333,93 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ IntegerNode (location: (17,0)-(17,1)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 1 ├── @ IntegerNode (location: (18,0)-(18,1)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 1 ├── @ RationalNode (location: (19,0)-(19,2)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ ├── numerator: 1 │ └── denominator: 1 ├── @ RationalNode (location: (20,0)-(20,4)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ ├── numerator: 3 │ └── denominator: 2 ├── @ RationalNode (location: (21,0)-(21,4)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ ├── numerator: 13 │ └── denominator: 10 ├── @ ImaginaryNode (location: (22,0)-(22,2)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ IntegerNode (location: (22,0)-(22,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 5 ├── @ ImaginaryNode (location: (23,0)-(23,3)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ IntegerNode (location: (23,0)-(23,2)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: -5 ├── @ ImaginaryNode (location: (24,0)-(24,4)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ FloatNode (location: (24,0)-(24,3)) + │ ├── flags: static_literal │ └── value: 0.6 ├── @ ImaginaryNode (location: (25,0)-(25,5)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ FloatNode (location: (25,0)-(25,4)) + │ ├── flags: static_literal │ └── value: -0.6 ├── @ ImaginaryNode (location: (26,0)-(26,32)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ IntegerNode (location: (26,0)-(26,31)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1000000000000000000000000000000 ├── @ ImaginaryNode (location: (27,0)-(27,3)) + │ ├── flags: newline, static_literal │ └── numeric: │ @ RationalNode (location: (27,0)-(27,2)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ ├── numerator: 1 │ └── denominator: 1 ├── @ InterpolatedStringNode (location: (28,0)-(28,11)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: ∅ │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (28,0)-(28,5)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: (28,0)-(28,1) = "\"" │ │ │ ├── content_loc: (28,1)-(28,4) = "foo" │ │ │ ├── closing_loc: (28,4)-(28,5) = "\"" │ │ │ └── unescaped: "foo" │ │ └── @ StringNode (location: (28,6)-(28,11)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: (28,6)-(28,7) = "\"" │ │ ├── content_loc: (28,7)-(28,10) = "bar" │ │ ├── closing_loc: (28,10)-(28,11) = "\"" │ │ └── unescaped: "bar" │ └── closing_loc: ∅ ├── @ InterpolatedStringNode (location: (29,0)-(29,15)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (29,0)-(29,1) = "\"" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (29,1)-(29,8)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (29,1)-(29,8) = "foobar " │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "foobar " │ │ └── @ EmbeddedStatementsNode (location: (29,8)-(29,14)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (29,8)-(29,10) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (29,10)-(29,13)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (29,10)-(29,13)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -401,239 +434,256 @@ │ │ └── closing_loc: (29,13)-(29,14) = "}" │ └── closing_loc: (29,14)-(29,15) = "\"" ├── @ InterpolatedStringNode (location: (30,0)-(30,12)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (30,0)-(30,1) = "\"" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (30,1)-(30,4)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (30,1)-(30,4) = "foo" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "foo" │ │ ├── @ EmbeddedStatementsNode (location: (30,4)-(30,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (30,4)-(30,6) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (30,6)-(30,7)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (30,6)-(30,7)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── closing_loc: (30,7)-(30,8) = "}" │ │ └── @ StringNode (location: (30,8)-(30,11)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (30,8)-(30,11) = "bar" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "bar" │ └── closing_loc: (30,11)-(30,12) = "\"" ├── @ InterpolatedStringNode (location: (31,0)-(31,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (31,0)-(31,1) = "\"" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (31,1)-(31,5)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (31,1)-(31,5) = "\\\\\\\\" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\\\\" │ │ └── @ EmbeddedStatementsNode (location: (31,5)-(31,8)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (31,5)-(31,7) = "\#{" │ │ ├── statements: ∅ │ │ └── closing_loc: (31,7)-(31,8) = "}" │ └── closing_loc: (31,8)-(31,9) = "\"" ├── @ InterpolatedStringNode (location: (32,0)-(32,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (32,0)-(32,1) = "\"" │ ├── parts: (length: 2) │ │ ├── @ EmbeddedStatementsNode (location: (32,1)-(32,4)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (32,1)-(32,3) = "\#{" │ │ │ ├── statements: ∅ │ │ │ └── closing_loc: (32,3)-(32,4) = "}" │ │ └── @ StringNode (location: (32,4)-(32,8)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (32,4)-(32,8) = "\\\#{}" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "\#{}" │ └── closing_loc: (32,8)-(32,9) = "\"" ├── @ InterpolatedStringNode (location: (33,0)-(33,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (33,0)-(33,1) = "\"" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (33,1)-(33,5)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (33,1)-(33,5) = "\\\#{}" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\#{}" │ │ └── @ EmbeddedStatementsNode (location: (33,5)-(33,8)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (33,5)-(33,7) = "\#{" │ │ ├── statements: ∅ │ │ └── closing_loc: (33,7)-(33,8) = "}" │ └── closing_loc: (33,8)-(33,9) = "\"" ├── @ StringNode (location: (34,0)-(34,15)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (34,0)-(34,1) = "\"" │ ├── content_loc: (34,1)-(34,14) = "foo\\\\\\\#{@bar}" │ ├── closing_loc: (34,14)-(34,15) = "\"" │ └── unescaped: "foo\\\#{@bar}" ├── @ StringNode (location: (35,0)-(35,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (35,0)-(35,1) = "\"" │ ├── content_loc: (35,1)-(35,3) = "\\\"" │ ├── closing_loc: (35,3)-(35,4) = "\"" │ └── unescaped: "\"" ├── @ StringNode (location: (36,0)-(36,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (36,0)-(36,1) = "\"" │ ├── content_loc: (36,1)-(36,8) = "foo bar" │ ├── closing_loc: (36,8)-(36,9) = "\"" │ └── unescaped: "foo bar" ├── @ StringNode (location: (37,0)-(37,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (37,0)-(37,1) = "\"" │ ├── content_loc: (37,1)-(37,9) = "foo\\nbar" │ ├── closing_loc: (37,9)-(37,10) = "\"" │ └── unescaped: "foo\nbar" ├── @ XStringNode (location: (38,0)-(38,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (38,0)-(38,1) = "`" │ ├── content_loc: (38,1)-(38,4) = "foo" │ ├── closing_loc: (38,4)-(38,5) = "`" │ └── unescaped: "foo" ├── @ InterpolatedXStringNode (location: (39,0)-(39,12)) + │ ├── flags: newline │ ├── opening_loc: (39,0)-(39,1) = "`" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (39,1)-(39,4)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (39,1)-(39,4) = "foo" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "foo" │ │ └── @ EmbeddedStatementsNode (location: (39,4)-(39,11)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (39,4)-(39,6) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (39,6)-(39,10)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ InstanceVariableReadNode (location: (39,6)-(39,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :@bar │ │ └── closing_loc: (39,10)-(39,11) = "}" │ └── closing_loc: (39,11)-(39,12) = "`" ├── @ XStringNode (location: (40,0)-(40,3)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (40,0)-(40,1) = "`" │ ├── content_loc: (40,1)-(40,2) = ")" │ ├── closing_loc: (40,2)-(40,3) = "`" │ └── unescaped: ")" ├── @ XStringNode (location: (41,0)-(41,4)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (41,0)-(41,1) = "`" │ ├── content_loc: (41,1)-(41,3) = "\\`" │ ├── closing_loc: (41,3)-(41,4) = "`" │ └── unescaped: "`" ├── @ XStringNode (location: (42,0)-(42,3)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (42,0)-(42,1) = "`" │ ├── content_loc: (42,1)-(42,2) = "\"" │ ├── closing_loc: (42,2)-(42,3) = "`" │ └── unescaped: "\"" ├── @ SymbolNode (location: (43,0)-(43,4)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (43,0)-(43,1) = ":" │ ├── value_loc: (43,1)-(43,4) = "foo" │ ├── closing_loc: ∅ │ └── unescaped: "foo" ├── @ SymbolNode (location: (44,0)-(44,6)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (44,0)-(44,2) = ":\"" │ ├── value_loc: (44,2)-(44,5) = "A B" │ ├── closing_loc: (44,5)-(44,6) = "\"" │ └── unescaped: "A B" ├── @ SymbolNode (location: (45,0)-(45,4)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (45,0)-(45,1) = ":" │ ├── value_loc: (45,1)-(45,4) = "foo" │ ├── closing_loc: ∅ │ └── unescaped: "foo" ├── @ SymbolNode (location: (46,0)-(46,6)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (46,0)-(46,2) = ":\"" │ ├── value_loc: (46,2)-(46,5) = "A B" │ ├── closing_loc: (46,5)-(46,6) = "\"" │ └── unescaped: "A B" ├── @ SymbolNode (location: (47,0)-(47,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (47,0)-(47,2) = ":\"" │ ├── value_loc: (47,2)-(47,6) = "A\\\"B" │ ├── closing_loc: (47,6)-(47,7) = "\"" │ └── unescaped: "A\"B" ├── @ SymbolNode (location: (48,0)-(48,3)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: (48,0)-(48,2) = ":\"" │ ├── value_loc: (1,0)-(1,0) = "" │ ├── closing_loc: (48,2)-(48,3) = "\"" │ └── unescaped: "" ├── @ RegularExpressionNode (location: (49,0)-(49,5)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (49,0)-(49,1) = "/" │ ├── content_loc: (49,1)-(49,4) = "foo" │ ├── closing_loc: (49,4)-(49,5) = "/" │ └── unescaped: "foo" ├── @ RegularExpressionNode (location: (50,0)-(50,28)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (50,0)-(50,1) = "/" │ ├── content_loc: (50,1)-(50,27) = "[^-+',.\\/:@[:alnum:]\\[\\]]+" │ ├── closing_loc: (50,27)-(50,28) = "/" │ └── unescaped: "[^-+',./:@[:alnum:]\\[\\]]+" ├── @ InterpolatedRegularExpressionNode (location: (51,0)-(51,12)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (51,0)-(51,1) = "/" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (51,1)-(51,4)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (51,1)-(51,4) = "foo" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "foo" │ │ └── @ EmbeddedStatementsNode (location: (51,4)-(51,11)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (51,4)-(51,6) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (51,6)-(51,10)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ InstanceVariableReadNode (location: (51,6)-(51,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :@bar │ │ └── closing_loc: (51,10)-(51,11) = "}" │ └── closing_loc: (51,11)-(51,12) = "/" ├── @ InterpolatedRegularExpressionNode (location: (52,0)-(52,15)) - │ ├── flags: ignore_case, extended, multi_line + │ ├── flags: newline, ignore_case, extended, multi_line │ ├── opening_loc: (52,0)-(52,1) = "/" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (52,1)-(52,4)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (52,1)-(52,4) = "foo" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "foo" │ │ └── @ EmbeddedStatementsNode (location: (52,4)-(52,11)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (52,4)-(52,6) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (52,6)-(52,10)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ InstanceVariableReadNode (location: (52,6)-(52,10)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :@bar │ │ └── closing_loc: (52,10)-(52,11) = "}" │ └── closing_loc: (52,11)-(52,15) = "/imx" ├── @ InterpolatedRegularExpressionNode (location: (53,0)-(53,13)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── opening_loc: (53,0)-(53,1) = "/" │ ├── parts: (length: 1) │ │ └── @ EmbeddedStatementsNode (location: (53,1)-(53,12)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (53,1)-(53,3) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (53,3)-(53,11)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ StringNode (location: (53,3)-(53,11)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: (53,3)-(53,4) = "\"" │ │ │ ├── content_loc: (53,4)-(53,10) = "\\u0000" │ │ │ ├── closing_loc: (53,10)-(53,11) = "\"" @@ -641,42 +691,45 @@ │ │ └── closing_loc: (53,11)-(53,12) = "}" │ └── closing_loc: (53,12)-(53,13) = "/" ├── @ RegularExpressionNode (location: (54,0)-(54,4)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (54,0)-(54,1) = "/" │ ├── content_loc: (54,1)-(54,3) = "\\n" │ ├── closing_loc: (54,3)-(54,4) = "/" │ └── unescaped: "\\n" ├── @ RegularExpressionNode (location: (55,0)-(55,4)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (55,0)-(55,1) = "/" │ ├── content_loc: (55,1)-(55,3) = "\\n" │ ├── closing_loc: (55,3)-(55,4) = "/" │ └── unescaped: "\\n" ├── @ RegularExpressionNode (location: (56,0)-(56,5)) - │ ├── flags: extended, forced_us_ascii_encoding + │ ├── flags: newline, static_literal, extended, forced_us_ascii_encoding │ ├── opening_loc: (56,0)-(56,1) = "/" │ ├── content_loc: (56,1)-(56,3) = "\\n" │ ├── closing_loc: (56,3)-(56,5) = "/x" │ └── unescaped: "\\n" ├── @ RegularExpressionNode (location: (57,0)-(57,7)) - │ ├── flags: extended, forced_us_ascii_encoding + │ ├── flags: newline, static_literal, extended, forced_us_ascii_encoding │ ├── opening_loc: (57,0)-(57,1) = "/" │ ├── content_loc: (57,1)-(57,5) = "\\/\\/" │ ├── closing_loc: (57,5)-(57,7) = "/x" │ └── unescaped: "//" ├── @ InterpolatedSymbolNode (location: (58,0)-(58,15)) + │ ├── flags: newline │ ├── opening_loc: (58,0)-(58,2) = ":\"" │ ├── parts: (length: 3) │ │ ├── @ StringNode (location: (58,2)-(58,5)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (58,2)-(58,5) = "foo" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "foo" │ │ ├── @ EmbeddedStatementsNode (location: (58,5)-(58,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (58,5)-(58,7) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (58,7)-(58,10)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (58,7)-(58,10)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -690,22 +743,25 @@ │ │ │ │ └── block: ∅ │ │ │ └── closing_loc: (58,10)-(58,11) = "}" │ │ └── @ StringNode (location: (58,11)-(58,14)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (58,11)-(58,14) = "baz" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "baz" │ └── closing_loc: (58,14)-(58,15) = "\"" ├── @ InterpolatedSymbolNode (location: (59,0)-(59,11)) + │ ├── flags: newline, static_literal │ ├── opening_loc: (59,0)-(59,2) = ":\"" │ ├── parts: (length: 1) │ │ └── @ EmbeddedStatementsNode (location: (59,2)-(59,10)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (59,2)-(59,4) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (59,4)-(59,9)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ StringNode (location: (59,4)-(59,9)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: (59,4)-(59,5) = "\"" │ │ │ ├── content_loc: (59,5)-(59,8) = "foo" │ │ │ ├── closing_loc: (59,8)-(59,9) = "\"" @@ -713,16 +769,19 @@ │ │ └── closing_loc: (59,9)-(59,10) = "}" │ └── closing_loc: (59,10)-(59,11) = "\"" ├── @ RangeNode (location: (60,0)-(60,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── left: │ │ @ ParenthesesNode (location: (60,0)-(60,11)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (60,1)-(60,10)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (60,1)-(60,10)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ FloatNode (location: (60,1)-(60,4)) + │ │ │ │ ├── flags: static_literal │ │ │ │ └── value: 0.0 │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :/ @@ -733,6 +792,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ FloatNode (location: (60,7)-(60,10)) + │ │ │ │ ├── flags: static_literal │ │ │ │ └── value: 0.0 │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ @@ -740,24 +800,27 @@ │ │ └── closing_loc: (60,10)-(60,11) = ")" │ ├── right: │ │ @ IntegerNode (location: (60,13)-(60,14)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (60,11)-(60,13) = ".." ├── @ RangeNode (location: (61,0)-(61,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── left: │ │ @ IntegerNode (location: (61,0)-(61,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── right: │ │ @ ParenthesesNode (location: (61,3)-(61,14)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (61,4)-(61,13)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (61,4)-(61,13)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ FloatNode (location: (61,4)-(61,7)) + │ │ │ │ ├── flags: static_literal │ │ │ │ └── value: 0.0 │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :/ @@ -768,6 +831,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ FloatNode (location: (61,10)-(61,13)) + │ │ │ │ ├── flags: static_literal │ │ │ │ └── value: 0.0 │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ @@ -775,16 +839,19 @@ │ │ └── closing_loc: (61,13)-(61,14) = ")" │ └── operator_loc: (61,1)-(61,3) = ".." ├── @ RangeNode (location: (62,0)-(62,16)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── left: │ │ @ ParenthesesNode (location: (62,0)-(62,11)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (62,1)-(62,10)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (62,1)-(62,10)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ FloatNode (location: (62,1)-(62,4)) + │ │ │ │ ├── flags: static_literal │ │ │ │ └── value: 0.0 │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :/ @@ -795,6 +862,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ FloatNode (location: (62,7)-(62,10)) + │ │ │ │ ├── flags: static_literal │ │ │ │ └── value: 0.0 │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ @@ -802,31 +870,34 @@ │ │ └── closing_loc: (62,10)-(62,11) = ")" │ ├── right: │ │ @ IntegerNode (location: (62,13)-(62,16)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 100 │ └── operator_loc: (62,11)-(62,13) = ".." ├── @ FloatNode (location: (63,0)-(63,4)) + │ ├── flags: newline, static_literal │ └── value: -0.1 ├── @ FloatNode (location: (64,0)-(64,3)) + │ ├── flags: newline, static_literal │ └── value: 0.1 ├── @ ArrayNode (location: (65,0)-(65,6)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (65,1)-(65,2)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (65,4)-(65,5)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── opening_loc: (65,0)-(65,1) = "[" │ └── closing_loc: (65,5)-(65,6) = "]" ├── @ ArrayNode (location: (66,0)-(66,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── elements: (length: 3) │ │ ├── @ IntegerNode (location: (66,1)-(66,2)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── @ ParenthesesNode (location: (66,4)-(66,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: ∅ │ │ │ ├── opening_loc: (66,4)-(66,5) = "(" │ │ │ └── closing_loc: (66,5)-(66,6) = ")" @@ -843,137 +914,160 @@ │ ├── opening_loc: (66,0)-(66,1) = "[" │ └── closing_loc: (66,10)-(66,11) = "]" ├── @ ArrayNode (location: (67,0)-(67,3)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 1) │ │ └── @ IntegerNode (location: (67,1)-(67,2)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── opening_loc: (67,0)-(67,1) = "[" │ └── closing_loc: (67,2)-(67,3) = "]" ├── @ ArrayNode (location: (68,0)-(68,2)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── elements: (length: 0) │ ├── opening_loc: (68,0)-(68,1) = "[" │ └── closing_loc: (68,1)-(68,2) = "]" ├── @ ArrayNode (location: (69,0)-(69,10)) - │ ├── flags: contains_splat + │ ├── flags: newline, contains_splat │ ├── elements: (length: 2) │ │ ├── @ IntegerNode (location: (69,1)-(69,2)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ SplatNode (location: (69,4)-(69,9)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (69,4)-(69,5) = "*" │ │ └── expression: │ │ @ InstanceVariableReadNode (location: (69,5)-(69,9)) + │ │ ├── flags: ∅ │ │ └── name: :@foo │ ├── opening_loc: (69,0)-(69,1) = "[" │ └── closing_loc: (69,9)-(69,10) = "]" ├── @ ArrayNode (location: (70,0)-(70,10)) - │ ├── flags: contains_splat + │ ├── flags: newline, contains_splat │ ├── elements: (length: 2) │ │ ├── @ SplatNode (location: (70,1)-(70,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (70,1)-(70,2) = "*" │ │ │ └── expression: │ │ │ @ InstanceVariableReadNode (location: (70,2)-(70,6)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :@foo │ │ └── @ IntegerNode (location: (70,8)-(70,9)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── opening_loc: (70,0)-(70,1) = "[" │ └── closing_loc: (70,9)-(70,10) = "]" ├── @ ArrayNode (location: (71,0)-(71,14)) - │ ├── flags: contains_splat + │ ├── flags: newline, contains_splat │ ├── elements: (length: 2) │ │ ├── @ SplatNode (location: (71,1)-(71,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (71,1)-(71,2) = "*" │ │ │ └── expression: │ │ │ @ InstanceVariableReadNode (location: (71,2)-(71,6)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :@foo │ │ └── @ SplatNode (location: (71,8)-(71,13)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (71,8)-(71,9) = "*" │ │ └── expression: │ │ @ InstanceVariableReadNode (location: (71,9)-(71,13)) + │ │ ├── flags: ∅ │ │ └── name: :@baz │ ├── opening_loc: (71,0)-(71,1) = "[" │ └── closing_loc: (71,13)-(71,14) = "]" ├── @ HashNode (location: (72,0)-(72,2)) + │ ├── flags: newline, static_literal │ ├── opening_loc: (72,0)-(72,1) = "{" │ ├── elements: (length: 0) │ └── closing_loc: (72,1)-(72,2) = "}" ├── @ HashNode (location: (73,0)-(73,12)) + │ ├── flags: newline │ ├── opening_loc: (73,0)-(73,1) = "{" │ ├── elements: (length: 1) │ │ └── @ AssocNode (location: (73,2)-(73,10)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ ParenthesesNode (location: (73,2)-(73,4)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: ∅ │ │ │ ├── opening_loc: (73,2)-(73,3) = "(" │ │ │ └── closing_loc: (73,3)-(73,4) = ")" │ │ ├── value: │ │ │ @ ParenthesesNode (location: (73,8)-(73,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: ∅ │ │ │ ├── opening_loc: (73,8)-(73,9) = "(" │ │ │ └── closing_loc: (73,9)-(73,10) = ")" │ │ └── operator_loc: (73,5)-(73,7) = "=>" │ └── closing_loc: (73,11)-(73,12) = "}" ├── @ HashNode (location: (74,0)-(74,10)) + │ ├── flags: newline, static_literal │ ├── opening_loc: (74,0)-(74,1) = "{" │ ├── elements: (length: 1) │ │ └── @ AssocNode (location: (74,2)-(74,8)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ IntegerNode (location: (74,2)-(74,3)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── value: │ │ │ @ IntegerNode (location: (74,7)-(74,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: (74,4)-(74,6) = "=>" │ └── closing_loc: (74,9)-(74,10) = "}" ├── @ HashNode (location: (75,0)-(75,18)) + │ ├── flags: newline, static_literal │ ├── opening_loc: (75,0)-(75,1) = "{" │ ├── elements: (length: 2) │ │ ├── @ AssocNode (location: (75,2)-(75,8)) + │ │ │ ├── flags: static_literal │ │ │ ├── key: │ │ │ │ @ IntegerNode (location: (75,2)-(75,3)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── value: │ │ │ │ @ IntegerNode (location: (75,7)-(75,8)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── operator_loc: (75,4)-(75,6) = "=>" │ │ └── @ AssocNode (location: (75,10)-(75,16)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ IntegerNode (location: (75,10)-(75,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 3 │ │ ├── value: │ │ │ @ IntegerNode (location: (75,15)-(75,16)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 4 │ │ └── operator_loc: (75,12)-(75,14) = "=>" │ └── closing_loc: (75,17)-(75,18) = "}" ├── @ HashNode (location: (76,0)-(76,27)) + │ ├── flags: newline │ ├── opening_loc: (76,0)-(76,1) = "{" │ ├── elements: (length: 2) │ │ ├── @ AssocNode (location: (76,2)-(76,19)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (76,2)-(76,4)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (76,2)-(76,3) = "a" │ │ │ │ ├── closing_loc: (76,3)-(76,4) = ":" │ │ │ │ └── unescaped: "a" │ │ │ ├── value: │ │ │ │ @ ParenthesesNode (location: (76,5)-(76,19)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (76,6)-(76,18)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ RescueModifierNode (location: (76,6)-(76,18)) + │ │ │ │ │ ├── flags: newline │ │ │ │ │ ├── expression: │ │ │ │ │ │ @ IntegerNode (location: (76,6)-(76,7)) - │ │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ │ └── value: 1 │ │ │ │ │ ├── keyword_loc: (76,8)-(76,14) = "rescue" │ │ │ │ │ └── rescue_expression: @@ -991,63 +1085,69 @@ │ │ │ │ └── closing_loc: (76,18)-(76,19) = ")" │ │ │ └── operator_loc: ∅ │ │ └── @ AssocNode (location: (76,21)-(76,25)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (76,21)-(76,23)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (76,21)-(76,22) = "b" │ │ │ ├── closing_loc: (76,22)-(76,23) = ":" │ │ │ └── unescaped: "b" │ │ ├── value: │ │ │ @ IntegerNode (location: (76,24)-(76,25)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: ∅ │ └── closing_loc: (76,26)-(76,27) = "}" ├── @ HashNode (location: (77,0)-(77,14)) + │ ├── flags: newline, static_literal │ ├── opening_loc: (77,0)-(77,1) = "{" │ ├── elements: (length: 2) │ │ ├── @ AssocNode (location: (77,2)-(77,6)) + │ │ │ ├── flags: static_literal │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (77,2)-(77,4)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (77,2)-(77,3) = "a" │ │ │ │ ├── closing_loc: (77,3)-(77,4) = ":" │ │ │ │ └── unescaped: "a" │ │ │ ├── value: │ │ │ │ @ IntegerNode (location: (77,5)-(77,6)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── operator_loc: ∅ │ │ └── @ AssocNode (location: (77,8)-(77,12)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (77,8)-(77,10)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (77,8)-(77,9) = "b" │ │ │ ├── closing_loc: (77,9)-(77,10) = ":" │ │ │ └── unescaped: "b" │ │ ├── value: │ │ │ @ IntegerNode (location: (77,11)-(77,12)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: ∅ │ └── closing_loc: (77,13)-(77,14) = "}" ├── @ HashNode (location: (78,0)-(78,9)) + │ ├── flags: newline, static_literal │ ├── opening_loc: (78,0)-(78,1) = "{" │ ├── elements: (length: 1) │ │ └── @ AssocNode (location: (78,2)-(78,7)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (78,2)-(78,4)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (78,2)-(78,3) = "a" │ │ │ ├── closing_loc: (78,3)-(78,4) = ":" │ │ │ └── unescaped: "a" │ │ ├── value: │ │ │ @ SymbolNode (location: (78,5)-(78,7)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (78,5)-(78,6) = ":" │ │ │ ├── value_loc: (78,6)-(78,7) = "a" │ │ │ ├── closing_loc: ∅ @@ -1055,66 +1155,72 @@ │ │ └── operator_loc: ∅ │ └── closing_loc: (78,8)-(78,9) = "}" ├── @ HashNode (location: (79,0)-(79,15)) + │ ├── flags: newline, static_literal │ ├── opening_loc: (79,0)-(79,1) = "{" │ ├── elements: (length: 1) │ │ └── @ AssocNode (location: (79,2)-(79,13)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (79,2)-(79,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (79,2)-(79,4) = ":\"" │ │ │ ├── value_loc: (79,4)-(79,7) = "a b" │ │ │ ├── closing_loc: (79,7)-(79,8) = "\"" │ │ │ └── unescaped: "a b" │ │ ├── value: │ │ │ @ IntegerNode (location: (79,12)-(79,13)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── operator_loc: (79,9)-(79,11) = "=>" │ └── closing_loc: (79,14)-(79,15) = "}" ├── @ HashNode (location: (80,0)-(80,12)) + │ ├── flags: newline, static_literal │ ├── opening_loc: (80,0)-(80,1) = "{" │ ├── elements: (length: 1) │ │ └── @ AssocNode (location: (80,2)-(80,10)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (80,2)-(80,5)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (80,2)-(80,3) = ":" │ │ │ ├── value_loc: (80,3)-(80,5) = "-@" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "-@" │ │ ├── value: │ │ │ @ IntegerNode (location: (80,9)-(80,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── operator_loc: (80,6)-(80,8) = "=>" │ └── closing_loc: (80,11)-(80,12) = "}" ├── @ InterpolatedStringNode (location: (81,0)-(82,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (81,0)-(81,1) = "\"" │ ├── parts: (length: 4) │ │ ├── @ EmbeddedStatementsNode (location: (81,1)-(81,4)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (81,1)-(81,3) = "\#{" │ │ │ ├── statements: ∅ │ │ │ └── closing_loc: (81,3)-(81,4) = "}" │ │ ├── @ StringNode (location: (81,4)-(82,0)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (81,4)-(82,0) = "\n" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "\n" │ │ ├── @ EmbeddedStatementsNode (location: (82,0)-(82,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (82,0)-(82,2) = "\#{" │ │ │ ├── statements: ∅ │ │ │ └── closing_loc: (82,2)-(82,3) = "}" │ │ └── @ StringNode (location: (82,3)-(82,6)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (82,3)-(82,6) = "\\na" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "\na" │ └── closing_loc: (82,6)-(82,7) = "\"" ├── @ CallNode (location: (83,0)-(86,1)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1124,31 +1230,35 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (83,4)-(86,1)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (84,2)-(85,7)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ InterpolatedStringNode (location: (84,2)-(85,7)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── opening_loc: (84,2)-(84,3) = "\"" │ │ ├── parts: (length: 4) │ │ │ ├── @ EmbeddedStatementsNode (location: (84,3)-(84,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── opening_loc: (84,3)-(84,5) = "\#{" │ │ │ │ ├── statements: ∅ │ │ │ │ └── closing_loc: (84,5)-(84,6) = "}" │ │ │ ├── @ StringNode (location: (84,6)-(85,0)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (84,6)-(85,0) = "\n" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "\n" │ │ │ ├── @ EmbeddedStatementsNode (location: (85,0)-(85,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── opening_loc: (85,0)-(85,2) = "\#{" │ │ │ │ ├── statements: ∅ │ │ │ │ └── closing_loc: (85,2)-(85,3) = "}" │ │ │ └── @ StringNode (location: (85,3)-(85,6)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (85,3)-(85,6) = "\\na" │ │ │ ├── closing_loc: ∅ @@ -1157,24 +1267,27 @@ │ ├── opening_loc: (83,4)-(83,5) = "{" │ └── closing_loc: (86,0)-(86,1) = "}" ├── @ SymbolNode (location: (87,0)-(88,2)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (87,0)-(87,2) = ":\"" │ ├── value_loc: (87,2)-(88,1) = "a\\\\\nb" │ ├── closing_loc: (88,1)-(88,2) = "\"" │ └── unescaped: "a\\\nb" └── @ InterpolatedXStringNode (location: (89,0)-(91,2)) + ├── flags: newline ├── opening_loc: (89,0)-(89,1) = "`" ├── parts: (length: 3) │ ├── @ StringNode (location: (89,1)-(90,0)) - │ │ ├── flags: frozen + │ │ ├── flags: static_literal, frozen │ │ ├── opening_loc: ∅ │ │ ├── content_loc: (89,1)-(90,0) = " x\n" │ │ ├── closing_loc: ∅ │ │ └── unescaped: " x\n" │ ├── @ EmbeddedStatementsNode (location: (90,0)-(90,6)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (90,0)-(90,2) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (90,2)-(90,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (90,2)-(90,5)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -1188,7 +1301,7 @@ │ │ │ └── block: ∅ │ │ └── closing_loc: (90,5)-(90,6) = "}" │ └── @ StringNode (location: (90,6)-(91,1)) - │ ├── flags: frozen + │ ├── flags: static_literal, frozen │ ├── opening_loc: ∅ │ ├── content_loc: (90,6)-(91,1) = "\n#" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/unparser/corpus/literal/module.txt b/test/prism/snapshots/unparser/corpus/literal/module.txt index 6428aeea82..9ad15d2dcd 100644 --- a/test/prism/snapshots/unparser/corpus/literal/module.txt +++ b/test/prism/snapshots/unparser/corpus/literal/module.txt @@ -1,24 +1,31 @@ @ ProgramNode (location: (1,0)-(16,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(16,3)) + ├── flags: ∅ └── body: (length: 4) ├── @ ModuleNode (location: (1,0)-(2,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── module_keyword_loc: (1,0)-(1,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (1,7)-(1,8)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── body: ∅ │ ├── end_keyword_loc: (2,0)-(2,3) = "end" │ └── name: :A ├── @ ModuleNode (location: (4,0)-(5,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── module_keyword_loc: (4,0)-(4,6) = "module" │ ├── constant_path: │ │ @ ConstantPathNode (location: (4,7)-(4,11)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantReadNode (location: (4,7)-(4,8)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── name: :B │ │ ├── delimiter_loc: (4,8)-(4,10) = "::" @@ -27,14 +34,18 @@ │ ├── end_keyword_loc: (5,0)-(5,3) = "end" │ └── name: :B ├── @ ModuleNode (location: (7,0)-(8,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── module_keyword_loc: (7,0)-(7,6) = "module" │ ├── constant_path: │ │ @ ConstantPathNode (location: (7,7)-(7,14)) + │ │ ├── flags: ∅ │ │ ├── parent: │ │ │ @ ConstantPathNode (location: (7,7)-(7,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── parent: │ │ │ │ @ ConstantReadNode (location: (7,7)-(7,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :A │ │ │ ├── name: :B │ │ │ ├── delimiter_loc: (7,8)-(7,10) = "::" @@ -46,16 +57,19 @@ │ ├── end_keyword_loc: (8,0)-(8,3) = "end" │ └── name: :C └── @ ModuleNode (location: (10,0)-(16,3)) + ├── flags: newline ├── locals: [] ├── module_keyword_loc: (10,0)-(10,6) = "module" ├── constant_path: │ @ ConstantReadNode (location: (10,7)-(10,8)) + │ ├── flags: ∅ │ └── name: :A ├── body: │ @ StatementsNode (location: (11,2)-(15,5)) + │ ├── flags: ∅ │ └── body: (length: 2) │ ├── @ CallNode (location: (11,2)-(11,16)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :include @@ -69,6 +83,7 @@ │ │ │ ├── flags: ∅ │ │ │ ├── receiver: │ │ │ │ @ ConstantReadNode (location: (11,10)-(11,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :B │ │ │ ├── call_operator_loc: (11,11)-(11,12) = "." │ │ │ ├── name: :new @@ -80,15 +95,17 @@ │ │ ├── closing_loc: (11,15)-(11,16) = ")" │ │ └── block: ∅ │ └── @ DefNode (location: (13,2)-(15,5)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (13,6)-(13,9) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (14,4)-(14,8)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ SymbolNode (location: (14,4)-(14,8)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (14,4)-(14,5) = ":" │ │ ├── value_loc: (14,5)-(14,8) = "bar" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/unparser/corpus/literal/opasgn.txt b/test/prism/snapshots/unparser/corpus/literal/opasgn.txt index 0761b47348..3df6248d4b 100644 --- a/test/prism/snapshots/unparser/corpus/literal/opasgn.txt +++ b/test/prism/snapshots/unparser/corpus/literal/opasgn.txt @@ -1,59 +1,67 @@ @ ProgramNode (location: (1,0)-(24,10)) +├── flags: ∅ ├── locals: [:a, :h] └── statements: @ StatementsNode (location: (1,0)-(24,10)) + ├── flags: ∅ └── body: (length: 24) ├── @ LocalVariableOperatorWriteNode (location: (1,0)-(1,6)) + │ ├── flags: newline │ ├── name_loc: (1,0)-(1,1) = "a" │ ├── binary_operator_loc: (1,2)-(1,4) = "+=" │ ├── value: │ │ @ IntegerNode (location: (1,5)-(1,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── name: :a │ ├── binary_operator: :+ │ └── depth: 0 ├── @ LocalVariableOperatorWriteNode (location: (2,0)-(2,6)) + │ ├── flags: newline │ ├── name_loc: (2,0)-(2,1) = "a" │ ├── binary_operator_loc: (2,2)-(2,4) = "-=" │ ├── value: │ │ @ IntegerNode (location: (2,5)-(2,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── name: :a │ ├── binary_operator: :- │ └── depth: 0 ├── @ LocalVariableOperatorWriteNode (location: (3,0)-(3,7)) + │ ├── flags: newline │ ├── name_loc: (3,0)-(3,1) = "a" │ ├── binary_operator_loc: (3,2)-(3,5) = "**=" │ ├── value: │ │ @ IntegerNode (location: (3,6)-(3,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── name: :a │ ├── binary_operator: :** │ └── depth: 0 ├── @ LocalVariableOperatorWriteNode (location: (4,0)-(4,6)) + │ ├── flags: newline │ ├── name_loc: (4,0)-(4,1) = "a" │ ├── binary_operator_loc: (4,2)-(4,4) = "*=" │ ├── value: │ │ @ IntegerNode (location: (4,5)-(4,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── name: :a │ ├── binary_operator: :* │ └── depth: 0 ├── @ LocalVariableOperatorWriteNode (location: (5,0)-(5,6)) + │ ├── flags: newline │ ├── name_loc: (5,0)-(5,1) = "a" │ ├── binary_operator_loc: (5,2)-(5,4) = "/=" │ ├── value: │ │ @ IntegerNode (location: (5,5)-(5,6)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── name: :a │ ├── binary_operator: :/ │ └── depth: 0 ├── @ LocalVariableAndWriteNode (location: (6,0)-(6,7)) + │ ├── flags: newline │ ├── name_loc: (6,0)-(6,1) = "a" │ ├── operator_loc: (6,2)-(6,5) = "&&=" │ ├── value: @@ -70,27 +78,31 @@ │ ├── name: :a │ └── depth: 0 ├── @ LocalVariableOrWriteNode (location: (7,0)-(7,7)) + │ ├── flags: newline │ ├── name_loc: (7,0)-(7,1) = "a" │ ├── operator_loc: (7,2)-(7,5) = "||=" │ ├── value: │ │ @ IntegerNode (location: (7,6)-(7,7)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── name: :a │ └── depth: 0 ├── @ CallNode (location: (8,0)-(8,13)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ParenthesesNode (location: (8,0)-(8,9)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (8,1)-(8,8)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableOrWriteNode (location: (8,1)-(8,8)) + │ │ │ ├── flags: newline │ │ │ ├── name_loc: (8,1)-(8,2) = "a" │ │ │ ├── operator_loc: (8,3)-(8,6) = "||=" │ │ │ ├── value: │ │ │ │ @ IntegerNode (location: (8,7)-(8,8)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ ├── name: :a │ │ │ └── depth: 0 @@ -104,17 +116,21 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (9,0)-(9,17)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ ParenthesesNode (location: (9,0)-(9,10)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (9,1)-(9,9)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableOrWriteNode (location: (9,1)-(9,9)) + │ │ │ ├── flags: newline │ │ │ ├── name_loc: (9,1)-(9,2) = "h" │ │ │ ├── operator_loc: (9,3)-(9,6) = "||=" │ │ │ ├── value: │ │ │ │ @ HashNode (location: (9,7)-(9,9)) + │ │ │ │ ├── flags: static_literal │ │ │ │ ├── opening_loc: (9,7)-(9,8) = "{" │ │ │ │ ├── elements: (length: 0) │ │ │ │ └── closing_loc: (9,8)-(9,9) = "}" @@ -153,9 +169,10 @@ │ ├── closing_loc: (9,12)-(9,13) = "]" │ └── block: ∅ ├── @ CallOperatorWriteNode (location: (10,0)-(10,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (10,0)-(10,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: (10,1)-(10,2) = "." @@ -166,12 +183,13 @@ │ ├── binary_operator_loc: (10,4)-(10,6) = "+=" │ └── value: │ @ IntegerNode (location: (10,7)-(10,8)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── @ CallOperatorWriteNode (location: (11,0)-(11,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (11,0)-(11,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: (11,1)-(11,2) = "." @@ -182,12 +200,13 @@ │ ├── binary_operator_loc: (11,4)-(11,6) = "-=" │ └── value: │ @ IntegerNode (location: (11,7)-(11,8)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── @ CallOperatorWriteNode (location: (12,0)-(12,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (12,0)-(12,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: (12,1)-(12,2) = "." @@ -198,12 +217,13 @@ │ ├── binary_operator_loc: (12,4)-(12,7) = "**=" │ └── value: │ @ IntegerNode (location: (12,8)-(12,9)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── @ CallOperatorWriteNode (location: (13,0)-(13,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (13,0)-(13,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: (13,1)-(13,2) = "." @@ -214,12 +234,13 @@ │ ├── binary_operator_loc: (13,4)-(13,6) = "*=" │ └── value: │ @ IntegerNode (location: (13,7)-(13,8)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── @ CallOperatorWriteNode (location: (14,0)-(14,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (14,0)-(14,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: (14,1)-(14,2) = "." @@ -230,12 +251,13 @@ │ ├── binary_operator_loc: (14,4)-(14,6) = "/=" │ └── value: │ @ IntegerNode (location: (14,7)-(14,8)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── @ CallAndWriteNode (location: (15,0)-(15,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (15,0)-(15,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: (15,1)-(15,2) = "." @@ -255,9 +277,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallOrWriteNode (location: (16,0)-(16,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (16,0)-(16,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: (16,1)-(16,2) = "." @@ -267,12 +290,13 @@ │ ├── operator_loc: (16,4)-(16,7) = "||=" │ └── value: │ @ IntegerNode (location: (16,8)-(16,9)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── @ IndexOperatorWriteNode (location: (17,0)-(17,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (17,0)-(17,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -297,12 +321,13 @@ │ ├── binary_operator_loc: (17,5)-(17,7) = "+=" │ └── value: │ @ IntegerNode (location: (17,8)-(17,9)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── @ IndexOperatorWriteNode (location: (18,0)-(18,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (18,0)-(18,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -327,12 +352,13 @@ │ ├── binary_operator_loc: (18,5)-(18,7) = "-=" │ └── value: │ @ IntegerNode (location: (18,8)-(18,9)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── @ IndexOperatorWriteNode (location: (19,0)-(19,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (19,0)-(19,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -357,12 +383,13 @@ │ ├── binary_operator_loc: (19,5)-(19,8) = "**=" │ └── value: │ @ IntegerNode (location: (19,9)-(19,10)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── @ IndexOperatorWriteNode (location: (20,0)-(20,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (20,0)-(20,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -387,12 +414,13 @@ │ ├── binary_operator_loc: (20,5)-(20,7) = "*=" │ └── value: │ @ IntegerNode (location: (20,8)-(20,9)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── @ IndexOperatorWriteNode (location: (21,0)-(21,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (21,0)-(21,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -417,12 +445,13 @@ │ ├── binary_operator_loc: (21,5)-(21,7) = "/=" │ └── value: │ @ IntegerNode (location: (21,8)-(21,9)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── @ IndexAndWriteNode (location: (22,0)-(22,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (22,0)-(22,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -456,9 +485,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ IndexOrWriteNode (location: (23,0)-(23,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (23,0)-(23,1)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -482,10 +512,10 @@ │ ├── operator_loc: (23,5)-(23,8) = "||=" │ └── value: │ @ IntegerNode (location: (23,9)-(23,10)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 └── @ CallOperatorWriteNode (location: (24,0)-(24,10)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (24,0)-(24,3)) │ ├── flags: variable_call, ignore_visibility @@ -505,5 +535,5 @@ ├── binary_operator_loc: (24,6)-(24,8) = "+=" └── value: @ IntegerNode (location: (24,9)-(24,10)) - ├── flags: decimal + ├── flags: static_literal, decimal └── value: 1 diff --git a/test/prism/snapshots/unparser/corpus/literal/pattern.txt b/test/prism/snapshots/unparser/corpus/literal/pattern.txt index 5a0b4bb733..7a542b26cf 100644 --- a/test/prism/snapshots/unparser/corpus/literal/pattern.txt +++ b/test/prism/snapshots/unparser/corpus/literal/pattern.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(41,8)) +├── flags: ∅ ├── locals: [:a, :x, :y] └── statements: @ StatementsNode (location: (1,0)-(41,8)) + ├── flags: ∅ └── body: (length: 4) ├── @ CaseMatchNode (location: (1,0)-(33,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (1,5)-(1,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -17,58 +20,69 @@ │ │ └── block: ∅ │ ├── conditions: (length: 15) │ │ ├── @ InNode (location: (2,0)-(3,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ ArrayPatternNode (location: (2,3)-(2,17)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: │ │ │ │ │ @ ConstantReadNode (location: (2,3)-(2,4)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── name: :A │ │ │ │ ├── requireds: (length: 2) │ │ │ │ │ ├── @ IntegerNode (location: (2,5)-(2,6)) - │ │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ │ └── value: 1 │ │ │ │ │ └── @ IntegerNode (location: (2,8)-(2,9)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 2 │ │ │ │ ├── rest: │ │ │ │ │ @ SplatNode (location: (2,11)-(2,13)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── operator_loc: (2,11)-(2,12) = "*" │ │ │ │ │ └── expression: │ │ │ │ │ @ LocalVariableTargetNode (location: (2,12)-(2,13)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :a │ │ │ │ │ └── depth: 0 │ │ │ │ ├── posts: (length: 1) │ │ │ │ │ └── @ IntegerNode (location: (2,15)-(2,16)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 3 │ │ │ │ ├── opening_loc: (2,4)-(2,5) = "[" │ │ │ │ └── closing_loc: (2,16)-(2,17) = "]" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (3,2)-(3,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ TrueNode (location: (3,2)-(3,6)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── in_loc: (2,0)-(2,2) = "in" │ │ │ └── then_loc: (2,18)-(2,22) = "then" │ │ ├── @ InNode (location: (4,0)-(5,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ ArrayPatternNode (location: (4,3)-(4,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── requireds: (length: 2) │ │ │ │ │ ├── @ IntegerNode (location: (4,4)-(4,5)) - │ │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ │ └── value: 1 │ │ │ │ │ └── @ IntegerNode (location: (4,7)-(4,8)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 2 │ │ │ │ ├── rest: │ │ │ │ │ @ ImplicitRestNode (location: (4,8)-(4,9)) + │ │ │ │ │ └── flags: ∅ │ │ │ │ ├── posts: (length: 0) │ │ │ │ ├── opening_loc: (4,3)-(4,4) = "[" │ │ │ │ └── closing_loc: (4,10)-(4,11) = "]" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (5,2)-(5,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (5,2)-(5,3)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :y @@ -80,24 +94,30 @@ │ │ │ ├── in_loc: (4,0)-(4,2) = "in" │ │ │ └── then_loc: (4,12)-(4,16) = "then" │ │ ├── @ InNode (location: (6,0)-(7,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ HashPatternNode (location: (6,3)-(6,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: │ │ │ │ │ @ ConstantReadNode (location: (6,3)-(6,4)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── name: :A │ │ │ │ ├── elements: (length: 1) │ │ │ │ │ └── @ AssocNode (location: (6,5)-(6,7)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── key: │ │ │ │ │ │ @ SymbolNode (location: (6,5)-(6,7)) - │ │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ │ ├── value_loc: (6,5)-(6,6) = "x" │ │ │ │ │ │ ├── closing_loc: (6,6)-(6,7) = ":" │ │ │ │ │ │ └── unescaped: "x" │ │ │ │ │ ├── value: │ │ │ │ │ │ @ ImplicitNode (location: (6,5)-(6,6)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ └── value: │ │ │ │ │ │ @ LocalVariableTargetNode (location: (6,5)-(6,6)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── name: :x │ │ │ │ │ │ └── depth: 0 │ │ │ │ │ └── operator_loc: ∅ @@ -106,19 +126,25 @@ │ │ │ │ └── closing_loc: (6,7)-(6,8) = ")" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (7,2)-(7,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ TrueNode (location: (7,2)-(7,6)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── in_loc: (6,0)-(6,2) = "in" │ │ │ └── then_loc: (6,9)-(6,13) = "then" │ │ ├── @ InNode (location: (8,0)-(9,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ HashPatternNode (location: (8,3)-(8,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── elements: (length: 0) │ │ │ │ ├── rest: │ │ │ │ │ @ AssocSplatNode (location: (8,4)-(8,7)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── value: │ │ │ │ │ │ @ LocalVariableTargetNode (location: (8,6)-(8,7)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── name: :a │ │ │ │ │ │ └── depth: 0 │ │ │ │ │ └── operator_loc: (8,4)-(8,6) = "**" @@ -126,21 +152,28 @@ │ │ │ │ └── closing_loc: (8,7)-(8,8) = "}" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (9,2)-(9,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ TrueNode (location: (9,2)-(9,6)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── in_loc: (8,0)-(8,2) = "in" │ │ │ └── then_loc: (8,9)-(8,13) = "then" │ │ ├── @ InNode (location: (10,0)-(11,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ IfNode (location: (10,3)-(10,13)) + │ │ │ │ ├── flags: newline │ │ │ │ ├── if_keyword_loc: (10,6)-(10,8) = "if" │ │ │ │ ├── predicate: │ │ │ │ │ @ TrueNode (location: (10,9)-(10,13)) + │ │ │ │ │ └── flags: static_literal │ │ │ │ ├── then_keyword_loc: ∅ │ │ │ │ ├── statements: │ │ │ │ │ @ StatementsNode (location: (10,3)-(10,5)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ HashPatternNode (location: (10,3)-(10,5)) + │ │ │ │ │ ├── flags: newline │ │ │ │ │ ├── constant: ∅ │ │ │ │ │ ├── elements: (length: 0) │ │ │ │ │ ├── rest: ∅ @@ -150,23 +183,30 @@ │ │ │ │ └── end_keyword_loc: ∅ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (11,2)-(11,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ TrueNode (location: (11,2)-(11,6)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── in_loc: (10,0)-(10,2) = "in" │ │ │ └── then_loc: (10,14)-(10,18) = "then" │ │ ├── @ InNode (location: (12,0)-(13,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ ArrayPatternNode (location: (12,3)-(12,12)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── requireds: (length: 2) │ │ │ │ │ ├── @ LocalVariableTargetNode (location: (12,4)-(12,5)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── name: :x │ │ │ │ │ │ └── depth: 0 │ │ │ │ │ └── @ LocalVariableTargetNode (location: (12,7)-(12,8)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :y │ │ │ │ │ └── depth: 0 │ │ │ │ ├── rest: │ │ │ │ │ @ SplatNode (location: (12,10)-(12,11)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── operator_loc: (12,10)-(12,11) = "*" │ │ │ │ │ └── expression: ∅ │ │ │ │ ├── posts: (length: 0) @@ -174,39 +214,45 @@ │ │ │ │ └── closing_loc: (12,11)-(12,12) = "]" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (13,2)-(13,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ TrueNode (location: (13,2)-(13,6)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── in_loc: (12,0)-(12,2) = "in" │ │ │ └── then_loc: (12,13)-(12,17) = "then" │ │ ├── @ InNode (location: (14,0)-(15,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ HashPatternNode (location: (14,3)-(14,16)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── elements: (length: 2) │ │ │ │ │ ├── @ AssocNode (location: (14,4)-(14,8)) + │ │ │ │ │ │ ├── flags: static_literal │ │ │ │ │ │ ├── key: │ │ │ │ │ │ │ @ SymbolNode (location: (14,4)-(14,6)) - │ │ │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ │ │ ├── value_loc: (14,4)-(14,5) = "a" │ │ │ │ │ │ │ ├── closing_loc: (14,5)-(14,6) = ":" │ │ │ │ │ │ │ └── unescaped: "a" │ │ │ │ │ │ ├── value: │ │ │ │ │ │ │ @ IntegerNode (location: (14,7)-(14,8)) - │ │ │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ │ │ └── value: 1 │ │ │ │ │ │ └── operator_loc: ∅ │ │ │ │ │ └── @ AssocNode (location: (14,10)-(14,15)) + │ │ │ │ │ ├── flags: static_literal │ │ │ │ │ ├── key: │ │ │ │ │ │ @ SymbolNode (location: (14,10)-(14,13)) - │ │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ │ ├── value_loc: (14,10)-(14,12) = "aa" │ │ │ │ │ │ ├── closing_loc: (14,12)-(14,13) = ":" │ │ │ │ │ │ └── unescaped: "aa" │ │ │ │ │ ├── value: │ │ │ │ │ │ @ IntegerNode (location: (14,14)-(14,15)) - │ │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ │ └── value: 2 │ │ │ │ │ └── operator_loc: ∅ │ │ │ │ ├── rest: ∅ @@ -214,13 +260,17 @@ │ │ │ │ └── closing_loc: (14,15)-(14,16) = "}" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (15,2)-(15,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ TrueNode (location: (15,2)-(15,6)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── in_loc: (14,0)-(14,2) = "in" │ │ │ └── then_loc: (14,17)-(14,21) = "then" │ │ ├── @ InNode (location: (16,0)-(17,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ HashPatternNode (location: (16,3)-(16,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── elements: (length: 0) │ │ │ │ ├── rest: ∅ @@ -228,43 +278,53 @@ │ │ │ │ └── closing_loc: (16,4)-(16,5) = "}" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (17,2)-(17,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ TrueNode (location: (17,2)-(17,6)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── in_loc: (16,0)-(16,2) = "in" │ │ │ └── then_loc: (16,6)-(16,10) = "then" │ │ ├── @ InNode (location: (18,0)-(19,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ HashPatternNode (location: (18,3)-(18,10)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── elements: (length: 0) │ │ │ │ ├── rest: │ │ │ │ │ @ NoKeywordsParameterNode (location: (18,4)-(18,9)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── operator_loc: (18,4)-(18,6) = "**" │ │ │ │ │ └── keyword_loc: (18,6)-(18,9) = "nil" │ │ │ │ ├── opening_loc: (18,3)-(18,4) = "{" │ │ │ │ └── closing_loc: (18,9)-(18,10) = "}" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (19,2)-(19,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ TrueNode (location: (19,2)-(19,6)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── in_loc: (18,0)-(18,2) = "in" │ │ │ └── then_loc: (18,11)-(18,15) = "then" │ │ ├── @ InNode (location: (20,0)-(21,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ HashPatternNode (location: (20,3)-(20,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── constant: ∅ │ │ │ │ ├── elements: (length: 1) │ │ │ │ │ └── @ AssocNode (location: (20,4)-(20,10)) + │ │ │ │ │ ├── flags: static_literal │ │ │ │ │ ├── key: │ │ │ │ │ │ @ SymbolNode (location: (20,4)-(20,8)) - │ │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ │ ├── opening_loc: (20,4)-(20,5) = "\"" │ │ │ │ │ │ ├── value_loc: (20,5)-(20,6) = "a" │ │ │ │ │ │ ├── closing_loc: (20,6)-(20,8) = "\":" │ │ │ │ │ │ └── unescaped: "a" │ │ │ │ │ ├── value: │ │ │ │ │ │ @ IntegerNode (location: (20,9)-(20,10)) - │ │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ │ └── value: 1 │ │ │ │ │ └── operator_loc: ∅ │ │ │ │ ├── rest: ∅ @@ -272,90 +332,114 @@ │ │ │ │ └── closing_loc: (20,10)-(20,11) = "}" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (21,2)-(21,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ TrueNode (location: (21,2)-(21,6)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── in_loc: (20,0)-(20,2) = "in" │ │ │ └── then_loc: (20,12)-(20,16) = "then" │ │ ├── @ InNode (location: (22,0)-(23,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ AlternationPatternNode (location: (22,3)-(22,8)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── left: │ │ │ │ │ @ IntegerNode (location: (22,3)-(22,4)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── right: │ │ │ │ │ @ IntegerNode (location: (22,7)-(22,8)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 2 │ │ │ │ └── operator_loc: (22,5)-(22,6) = "|" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (23,2)-(23,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ TrueNode (location: (23,2)-(23,6)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── in_loc: (22,0)-(22,2) = "in" │ │ │ └── then_loc: (22,9)-(22,13) = "then" │ │ ├── @ InNode (location: (24,0)-(25,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ CapturePatternNode (location: (24,3)-(24,9)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── value: │ │ │ │ │ @ IntegerNode (location: (24,3)-(24,4)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── target: │ │ │ │ │ @ LocalVariableTargetNode (location: (24,8)-(24,9)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :a │ │ │ │ │ └── depth: 0 │ │ │ │ └── operator_loc: (24,5)-(24,7) = "=>" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (25,2)-(25,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ TrueNode (location: (25,2)-(25,6)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── in_loc: (24,0)-(24,2) = "in" │ │ │ └── then_loc: (24,10)-(24,14) = "then" │ │ ├── @ InNode (location: (26,0)-(27,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ PinnedVariableNode (location: (26,3)-(26,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── variable: │ │ │ │ │ @ LocalVariableReadNode (location: (26,4)-(26,5)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :x │ │ │ │ │ └── depth: 0 │ │ │ │ └── operator_loc: (26,3)-(26,4) = "^" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (27,2)-(27,6)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ TrueNode (location: (27,2)-(27,6)) + │ │ │ │ └── flags: newline, static_literal │ │ │ ├── in_loc: (26,0)-(26,2) = "in" │ │ │ └── then_loc: (26,6)-(26,10) = "then" │ │ ├── @ InNode (location: (28,0)-(28,4)) + │ │ │ ├── flags: ∅ │ │ │ ├── pattern: │ │ │ │ @ IntegerNode (location: (28,3)-(28,4)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── statements: ∅ │ │ │ ├── in_loc: (28,0)-(28,2) = "in" │ │ │ └── then_loc: ∅ │ │ └── @ InNode (location: (29,0)-(30,6)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ IntegerNode (location: (29,3)-(29,4)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── statements: │ │ │ @ StatementsNode (location: (30,2)-(30,6)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ TrueNode (location: (30,2)-(30,6)) + │ │ │ └── flags: newline, static_literal │ │ ├── in_loc: (29,0)-(29,2) = "in" │ │ └── then_loc: (29,5)-(29,9) = "then" │ ├── consequent: │ │ @ ElseNode (location: (31,0)-(33,3)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (31,0)-(31,4) = "else" │ │ ├── statements: │ │ │ @ StatementsNode (location: (32,2)-(32,6)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ TrueNode (location: (32,2)-(32,6)) + │ │ │ └── flags: newline, static_literal │ │ └── end_keyword_loc: (33,0)-(33,3) = "end" │ ├── case_keyword_loc: (1,0)-(1,4) = "case" │ └── end_keyword_loc: (33,0)-(33,3) = "end" ├── @ CaseMatchNode (location: (34,0)-(36,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (34,5)-(34,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -369,28 +453,33 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (35,0)-(35,17)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ArrayPatternNode (location: (35,3)-(35,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── constant: │ │ │ │ @ ConstantReadNode (location: (35,3)-(35,4)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── name: :A │ │ │ ├── requireds: (length: 2) │ │ │ │ ├── @ IntegerNode (location: (35,5)-(35,6)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ └── @ IntegerNode (location: (35,8)-(35,9)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ ├── rest: │ │ │ │ @ SplatNode (location: (35,11)-(35,13)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── operator_loc: (35,11)-(35,12) = "*" │ │ │ │ └── expression: │ │ │ │ @ LocalVariableTargetNode (location: (35,12)-(35,13)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :a │ │ │ │ └── depth: 0 │ │ │ ├── posts: (length: 1) │ │ │ │ └── @ IntegerNode (location: (35,15)-(35,16)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 3 │ │ │ ├── opening_loc: (35,4)-(35,5) = "[" │ │ │ └── closing_loc: (35,16)-(35,17) = "]" @@ -401,6 +490,7 @@ │ ├── case_keyword_loc: (34,0)-(34,4) = "case" │ └── end_keyword_loc: (36,0)-(36,3) = "end" ├── @ CaseMatchNode (location: (37,0)-(40,3)) + │ ├── flags: newline │ ├── predicate: │ │ @ CallNode (location: (37,5)-(37,8)) │ │ ├── flags: variable_call, ignore_visibility @@ -414,29 +504,35 @@ │ │ └── block: ∅ │ ├── conditions: (length: 1) │ │ └── @ InNode (location: (38,0)-(38,4)) + │ │ ├── flags: ∅ │ │ ├── pattern: │ │ │ @ ConstantReadNode (location: (38,3)-(38,4)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── statements: ∅ │ │ ├── in_loc: (38,0)-(38,2) = "in" │ │ └── then_loc: ∅ │ ├── consequent: │ │ @ ElseNode (location: (39,0)-(40,3)) + │ │ ├── flags: ∅ │ │ ├── else_keyword_loc: (39,0)-(39,4) = "else" │ │ ├── statements: ∅ │ │ └── end_keyword_loc: (40,0)-(40,3) = "end" │ ├── case_keyword_loc: (37,0)-(37,4) = "case" │ └── end_keyword_loc: (40,0)-(40,3) = "end" └── @ MatchPredicateNode (location: (41,0)-(41,8)) + ├── flags: newline ├── value: │ @ IntegerNode (location: (41,0)-(41,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── pattern: │ @ ArrayPatternNode (location: (41,5)-(41,8)) + │ ├── flags: ∅ │ ├── constant: ∅ │ ├── requireds: (length: 1) │ │ └── @ LocalVariableTargetNode (location: (41,6)-(41,7)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── rest: ∅ diff --git a/test/prism/snapshots/unparser/corpus/literal/pragma.txt b/test/prism/snapshots/unparser/corpus/literal/pragma.txt index 08e386b872..2a82f0c860 100644 --- a/test/prism/snapshots/unparser/corpus/literal/pragma.txt +++ b/test/prism/snapshots/unparser/corpus/literal/pragma.txt @@ -1,15 +1,19 @@ @ ProgramNode (location: (1,0)-(4,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,7)) + ├── flags: ∅ └── body: (length: 4) ├── @ SourceEncodingNode (location: (1,0)-(1,12)) + │ └── flags: newline, static_literal ├── @ SourceFileNode (location: (2,0)-(2,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ └── filepath: "unparser/corpus/literal/pragma.txt" ├── @ SourceLineNode (location: (3,0)-(3,8)) + │ └── flags: newline, static_literal └── @ CallNode (location: (4,0)-(4,7)) - ├── flags: variable_call, ignore_visibility + ├── flags: newline, variable_call, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :__dir__ diff --git a/test/prism/snapshots/unparser/corpus/literal/range.txt b/test/prism/snapshots/unparser/corpus/literal/range.txt index ab015d04fc..d6bbe34b34 100644 --- a/test/prism/snapshots/unparser/corpus/literal/range.txt +++ b/test/prism/snapshots/unparser/corpus/literal/range.txt @@ -1,55 +1,61 @@ @ ProgramNode (location: (1,0)-(4,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,5)) + ├── flags: ∅ └── body: (length: 4) ├── @ ParenthesesNode (location: (1,0)-(1,5)) + │ ├── flags: newline │ ├── body: │ │ @ StatementsNode (location: (1,1)-(1,4)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RangeNode (location: (1,1)-(1,4)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline, static_literal │ │ ├── left: │ │ │ @ IntegerNode (location: (1,1)-(1,2)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (1,2)-(1,4) = ".." │ ├── opening_loc: (1,0)-(1,1) = "(" │ └── closing_loc: (1,4)-(1,5) = ")" ├── @ RangeNode (location: (2,0)-(2,4)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── left: │ │ @ IntegerNode (location: (2,0)-(2,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── right: │ │ @ IntegerNode (location: (2,3)-(2,4)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── operator_loc: (2,1)-(2,3) = ".." ├── @ ParenthesesNode (location: (3,0)-(3,6)) + │ ├── flags: newline │ ├── body: │ │ @ StatementsNode (location: (3,1)-(3,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RangeNode (location: (3,1)-(3,5)) - │ │ ├── flags: exclude_end + │ │ ├── flags: newline, static_literal, exclude_end │ │ ├── left: │ │ │ @ IntegerNode (location: (3,1)-(3,2)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── right: ∅ │ │ └── operator_loc: (3,2)-(3,5) = "..." │ ├── opening_loc: (3,0)-(3,1) = "(" │ └── closing_loc: (3,5)-(3,6) = ")" └── @ RangeNode (location: (4,0)-(4,5)) - ├── flags: exclude_end + ├── flags: newline, static_literal, exclude_end ├── left: │ @ IntegerNode (location: (4,0)-(4,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── right: │ @ IntegerNode (location: (4,4)-(4,5)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 └── operator_loc: (4,1)-(4,4) = "..." diff --git a/test/prism/snapshots/unparser/corpus/literal/rescue.txt b/test/prism/snapshots/unparser/corpus/literal/rescue.txt index d3c9d62166..78801c1d90 100644 --- a/test/prism/snapshots/unparser/corpus/literal/rescue.txt +++ b/test/prism/snapshots/unparser/corpus/literal/rescue.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(3,27)) +├── flags: ∅ ├── locals: [:x] └── statements: @ StatementsNode (location: (1,0)-(3,27)) + ├── flags: ∅ └── body: (length: 3) ├── @ RescueModifierNode (location: (1,0)-(1,14)) + │ ├── flags: newline │ ├── expression: │ │ @ CallNode (location: (1,0)-(1,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -28,6 +31,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ RescueModifierNode (location: (2,0)-(2,21)) + │ ├── flags: newline │ ├── expression: │ │ @ CallNode (location: (2,0)-(2,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -59,15 +63,19 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ LocalVariableWriteNode (location: (3,0)-(3,27)) + ├── flags: newline ├── name: :x ├── depth: 0 ├── name_loc: (3,0)-(3,1) = "x" ├── value: │ @ ParenthesesNode (location: (3,4)-(3,27)) + │ ├── flags: ∅ │ ├── body: │ │ @ StatementsNode (location: (3,5)-(3,26)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RescueModifierNode (location: (3,5)-(3,26)) + │ │ ├── flags: newline │ │ ├── expression: │ │ │ @ CallNode (location: (3,5)-(3,8)) │ │ │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/unparser/corpus/literal/send.txt b/test/prism/snapshots/unparser/corpus/literal/send.txt index 3fd7f719a1..56d1374029 100644 --- a/test/prism/snapshots/unparser/corpus/literal/send.txt +++ b/test/prism/snapshots/unparser/corpus/literal/send.txt @@ -1,31 +1,42 @@ @ ProgramNode (location: (1,0)-(84,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(84,7)) + ├── flags: ∅ └── body: (length: 62) ├── @ ModuleNode (location: (1,0)-(3,3)) + │ ├── flags: newline │ ├── locals: [:foo, :a, :_] │ ├── module_keyword_loc: (1,0)-(1,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (1,7)-(1,8)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── body: │ │ @ StatementsNode (location: (2,2)-(2,22)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableOrWriteNode (location: (2,2)-(2,22)) + │ │ ├── flags: newline │ │ ├── name_loc: (2,2)-(2,5) = "foo" │ │ ├── operator_loc: (2,6)-(2,9) = "||=" │ │ ├── value: │ │ │ @ ParenthesesNode (location: (2,10)-(2,22)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (2,11)-(2,21)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ MultiWriteNode (location: (2,11)-(2,21)) + │ │ │ │ ├── flags: newline │ │ │ │ ├── lefts: (length: 2) │ │ │ │ │ ├── @ LocalVariableTargetNode (location: (2,12)-(2,13)) + │ │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ │ ├── name: :a │ │ │ │ │ │ └── depth: 0 │ │ │ │ │ └── @ LocalVariableTargetNode (location: (2,15)-(2,16)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :_ │ │ │ │ │ └── depth: 0 │ │ │ │ ├── rest: ∅ @@ -51,27 +62,32 @@ │ ├── end_keyword_loc: (3,0)-(3,3) = "end" │ └── name: :A ├── @ ModuleNode (location: (5,0)-(8,3)) + │ ├── flags: newline │ ├── locals: [:local] │ ├── module_keyword_loc: (5,0)-(5,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (5,7)-(5,8)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── body: │ │ @ StatementsNode (location: (6,2)-(7,11)) + │ │ ├── flags: ∅ │ │ └── body: (length: 2) │ │ ├── @ LocalVariableWriteNode (location: (6,2)-(6,11)) + │ │ │ ├── flags: newline │ │ │ ├── name: :local │ │ │ ├── depth: 0 │ │ │ ├── name_loc: (6,2)-(6,7) = "local" │ │ │ ├── value: │ │ │ │ @ IntegerNode (location: (6,10)-(6,11)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── operator_loc: (6,8)-(6,9) = "=" │ │ └── @ CallNode (location: (7,2)-(7,11)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ LocalVariableReadNode (location: (7,2)-(7,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :local │ │ │ └── depth: 0 │ │ ├── call_operator_loc: (7,7)-(7,8) = "." @@ -84,13 +100,15 @@ │ ├── end_keyword_loc: (8,0)-(8,3) = "end" │ └── name: :A ├── @ CallNode (location: (9,0)-(10,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ClassNode (location: (9,0)-(10,3)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── class_keyword_loc: (9,0)-(9,5) = "class" │ │ ├── constant_path: │ │ │ @ ConstantReadNode (location: (9,6)-(9,7)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── inheritance_operator_loc: ∅ │ │ ├── superclass: ∅ @@ -105,13 +123,15 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (11,0)-(12,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ModuleNode (location: (11,0)-(12,3)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── module_keyword_loc: (11,0)-(11,6) = "module" │ │ ├── constant_path: │ │ │ @ ConstantReadNode (location: (11,7)-(11,8)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :A │ │ ├── body: ∅ │ │ ├── end_keyword_loc: (12,0)-(12,3) = "end" @@ -124,13 +144,15 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (13,0)-(15,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ BeginNode (location: (13,0)-(15,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: (13,0)-(13,5) = "begin" │ │ ├── statements: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (14,0)-(14,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (14,0)-(14,6) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ @@ -148,15 +170,19 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (16,0)-(19,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CaseNode (location: (16,0)-(19,3)) + │ │ ├── flags: ∅ │ │ ├── predicate: │ │ │ @ ParenthesesNode (location: (16,5)-(17,10)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (16,6)-(17,9)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 2) │ │ │ │ ├── @ DefNode (location: (16,6)-(17,3)) + │ │ │ │ │ ├── flags: newline │ │ │ │ │ ├── name: :foo │ │ │ │ │ ├── name_loc: (16,10)-(16,13) = "foo" │ │ │ │ │ ├── receiver: ∅ @@ -170,7 +196,7 @@ │ │ │ │ │ ├── equal_loc: ∅ │ │ │ │ │ └── end_keyword_loc: (17,0)-(17,3) = "end" │ │ │ │ └── @ SymbolNode (location: (17,5)-(17,9)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (17,5)-(17,6) = ":" │ │ │ │ ├── value_loc: (17,6)-(17,9) = "bar" │ │ │ │ ├── closing_loc: ∅ @@ -179,6 +205,7 @@ │ │ │ └── closing_loc: (17,9)-(17,10) = ")" │ │ ├── conditions: (length: 1) │ │ │ └── @ WhenNode (location: (18,0)-(18,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (18,0)-(18,4) = "when" │ │ │ ├── conditions: (length: 1) │ │ │ │ └── @ CallNode (location: (18,5)-(18,8)) @@ -204,9 +231,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (20,0)-(22,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CaseNode (location: (20,0)-(22,3)) + │ │ ├── flags: ∅ │ │ ├── predicate: │ │ │ @ CallNode (location: (20,5)-(20,8)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -220,6 +248,7 @@ │ │ │ └── block: ∅ │ │ ├── conditions: (length: 1) │ │ │ └── @ WhenNode (location: (21,0)-(21,8)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (21,0)-(21,4) = "when" │ │ │ ├── conditions: (length: 1) │ │ │ │ └── @ CallNode (location: (21,5)-(21,8)) @@ -245,14 +274,16 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (23,0)-(24,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ SingletonClassNode (location: (23,0)-(24,3)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── class_keyword_loc: (23,0)-(23,5) = "class" │ │ ├── operator_loc: (23,6)-(23,8) = "<<" │ │ ├── expression: │ │ │ @ SelfNode (location: (23,9)-(23,13)) + │ │ │ └── flags: ∅ │ │ ├── body: ∅ │ │ └── end_keyword_loc: (24,0)-(24,3) = "end" │ ├── call_operator_loc: (24,3)-(24,4) = "." @@ -263,13 +294,15 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (25,0)-(26,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ DefNode (location: (25,0)-(26,3)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ ├── name_loc: (25,9)-(25,12) = "foo" │ │ ├── receiver: │ │ │ @ SelfNode (location: (25,4)-(25,8)) + │ │ │ └── flags: ∅ │ │ ├── parameters: ∅ │ │ ├── body: ∅ │ │ ├── locals: [] @@ -287,9 +320,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (27,0)-(28,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ DefNode (location: (27,0)-(28,3)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ ├── name_loc: (27,4)-(27,7) = "foo" │ │ ├── receiver: ∅ @@ -310,7 +344,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (29,0)-(30,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ UntilNode (location: (29,0)-(30,3)) │ │ ├── flags: ∅ @@ -336,7 +370,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (31,0)-(32,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ WhileNode (location: (31,0)-(32,3)) │ │ ├── flags: ∅ @@ -362,7 +396,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (33,0)-(34,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (33,0)-(34,1)) │ │ ├── flags: ignore_visibility @@ -375,6 +409,7 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (33,5)-(34,1)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: ∅ @@ -388,9 +423,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (35,0)-(36,7)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IfNode (location: (35,0)-(36,3)) + │ │ ├── flags: newline │ │ ├── if_keyword_loc: (35,0)-(35,2) = "if" │ │ ├── predicate: │ │ │ @ CallNode (location: (35,3)-(35,6)) @@ -415,17 +451,19 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (37,0)-(37,19)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ParenthesesNode (location: (37,0)-(37,15)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (37,1)-(37,14)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (37,1)-(37,14)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ RegularExpressionNode (location: (37,1)-(37,6)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (37,1)-(37,2) = "/" │ │ │ │ ├── content_loc: (37,2)-(37,5) = "bar" │ │ │ │ ├── closing_loc: (37,5)-(37,6) = "/" @@ -439,7 +477,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ SymbolNode (location: (37,10)-(37,14)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (37,10)-(37,11) = ":" │ │ │ │ ├── value_loc: (37,11)-(37,14) = "foo" │ │ │ │ ├── closing_loc: ∅ @@ -456,21 +494,23 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (38,0)-(38,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ParenthesesNode (location: (38,0)-(38,6)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (38,1)-(38,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ RangeNode (location: (38,1)-(38,5)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline, static_literal │ │ │ ├── left: │ │ │ │ @ IntegerNode (location: (38,1)-(38,2)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── right: │ │ │ │ @ IntegerNode (location: (38,4)-(38,5)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 2 │ │ │ └── operator_loc: (38,2)-(38,4) = ".." │ │ ├── opening_loc: (38,0)-(38,1) = "(" @@ -483,14 +523,16 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (39,0)-(39,18)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ParenthesesNode (location: (39,0)-(39,14)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (39,1)-(39,13)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (39,1)-(39,13)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ CallNode (location: (39,1)-(39,4)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -511,7 +553,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ RegularExpressionNode (location: (39,8)-(39,13)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (39,8)-(39,9) = "/" │ │ │ │ ├── content_loc: (39,9)-(39,12) = "bar" │ │ │ │ ├── closing_loc: (39,12)-(39,13) = "/" @@ -528,10 +570,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (40,0)-(40,13)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RegularExpressionNode (location: (40,0)-(40,5)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (40,0)-(40,1) = "/" │ │ ├── content_loc: (40,1)-(40,4) = "bar" │ │ ├── closing_loc: (40,4)-(40,5) = "/" @@ -545,7 +587,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SymbolNode (location: (40,9)-(40,13)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (40,9)-(40,10) = ":" │ │ ├── value_loc: (40,10)-(40,13) = "foo" │ │ ├── closing_loc: ∅ @@ -553,10 +595,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (41,0)-(41,12)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ RegularExpressionNode (location: (41,0)-(41,5)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (41,0)-(41,1) = "/" │ │ ├── content_loc: (41,1)-(41,4) = "bar" │ │ ├── closing_loc: (41,4)-(41,5) = "/" @@ -582,17 +624,17 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ RangeNode (location: (42,0)-(42,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── left: │ │ @ IntegerNode (location: (42,0)-(42,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── right: │ │ @ CallNode (location: (42,3)-(42,8)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ IntegerNode (location: (42,3)-(42,4)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ ├── call_operator_loc: (42,4)-(42,5) = "." │ │ ├── name: :max @@ -603,9 +645,10 @@ │ │ └── block: ∅ │ └── operator_loc: (42,1)-(42,3) = ".." ├── @ CallNode (location: (43,0)-(43,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ConstantReadNode (location: (43,0)-(43,1)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── call_operator_loc: (43,1)-(43,2) = "." │ ├── name: :foo @@ -615,7 +658,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (44,0)-(44,5)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :FOO @@ -625,7 +668,7 @@ │ ├── closing_loc: (44,4)-(44,5) = ")" │ └── block: ∅ ├── @ CallNode (location: (45,0)-(45,4)) - │ ├── flags: safe_navigation + │ ├── flags: newline, safe_navigation │ ├── receiver: │ │ @ CallNode (location: (45,0)-(45,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -645,7 +688,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (46,0)-(46,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (46,0)-(46,1)) │ │ ├── flags: variable_call, ignore_visibility @@ -665,7 +708,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (47,0)-(47,3)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -675,7 +718,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (48,0)-(48,18)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (48,0)-(48,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -696,11 +739,13 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ParenthesesNode (location: (48,7)-(48,18)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (48,8)-(48,17)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (48,8)-(48,17)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ CallNode (location: (48,8)-(48,11)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -737,7 +782,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (49,0)-(49,12)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (49,0)-(49,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -758,7 +803,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ RegularExpressionNode (location: (49,7)-(49,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (49,7)-(49,8) = "/" │ │ ├── content_loc: (49,8)-(49,11) = "bar" │ │ ├── closing_loc: (49,11)-(49,12) = "/" @@ -766,7 +811,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (50,0)-(50,17)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -776,12 +821,16 @@ │ ├── closing_loc: (50,17)-(50,18) = ")" │ └── block: │ @ BlockArgumentNode (location: (50,4)-(50,17)) + │ ├── flags: ∅ │ ├── expression: │ │ @ ParenthesesNode (location: (50,5)-(50,17)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (50,6)-(50,16)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ OrNode (location: (50,6)-(50,16)) + │ │ │ ├── flags: newline │ │ │ ├── left: │ │ │ │ @ CallNode (location: (50,6)-(50,9)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -809,7 +858,7 @@ │ │ └── closing_loc: (50,16)-(50,17) = ")" │ └── operator_loc: (50,4)-(50,5) = "&" ├── @ CallNode (location: (51,0)-(51,10)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -819,6 +868,7 @@ │ ├── closing_loc: (51,10)-(51,11) = ")" │ └── block: │ @ BlockArgumentNode (location: (51,4)-(51,10)) + │ ├── flags: ∅ │ ├── expression: │ │ @ CallNode (location: (51,5)-(51,10)) │ │ ├── flags: variable_call, ignore_visibility @@ -832,7 +882,7 @@ │ │ └── block: ∅ │ └── operator_loc: (51,4)-(51,5) = "&" ├── @ CallNode (location: (52,0)-(52,17)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -843,6 +893,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SplatNode (location: (52,4)-(52,9)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (52,4)-(52,5) = "*" │ │ └── expression: │ │ @ CallNode (location: (52,5)-(52,9)) @@ -858,6 +909,7 @@ │ ├── closing_loc: (52,17)-(52,18) = ")" │ └── block: │ @ BlockArgumentNode (location: (52,11)-(52,17)) + │ ├── flags: ∅ │ ├── expression: │ │ @ CallNode (location: (52,12)-(52,17)) │ │ ├── flags: variable_call, ignore_visibility @@ -871,7 +923,7 @@ │ │ └── block: ∅ │ └── operator_loc: (52,11)-(52,12) = "&" ├── @ CallNode (location: (53,0)-(53,15)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -882,6 +934,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SplatNode (location: (53,4)-(53,14)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (53,4)-(53,5) = "*" │ │ └── expression: │ │ @ CallNode (location: (53,5)-(53,14)) @@ -897,7 +950,7 @@ │ ├── closing_loc: (53,14)-(53,15) = ")" │ └── block: ∅ ├── @ CallNode (location: (54,0)-(54,9)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -908,15 +961,15 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ IntegerNode (location: (54,4)-(54,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (54,7)-(54,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: (54,8)-(54,9) = ")" │ └── block: ∅ ├── @ CallNode (location: (55,0)-(55,8)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -939,7 +992,7 @@ │ ├── closing_loc: (55,7)-(55,8) = ")" │ └── block: ∅ ├── @ CallNode (location: (56,0)-(56,15)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -960,6 +1013,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ SplatNode (location: (56,9)-(56,14)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (56,9)-(56,10) = "*" │ │ └── expression: │ │ @ CallNode (location: (56,10)-(56,14)) @@ -975,7 +1029,7 @@ │ ├── closing_loc: (56,14)-(56,15) = ")" │ └── block: ∅ ├── @ CallNode (location: (57,0)-(57,17)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1007,7 +1061,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ RegularExpressionNode (location: (57,11)-(57,16)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (57,11)-(57,12) = "/" │ │ │ ├── content_loc: (57,12)-(57,15) = "bar" │ │ │ ├── closing_loc: (57,15)-(57,16) = "/" @@ -1017,7 +1071,7 @@ │ ├── closing_loc: (57,16)-(57,17) = ")" │ └── block: ∅ ├── @ CallNode (location: (58,0)-(58,13)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (58,0)-(58,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1037,6 +1091,7 @@ │ ├── closing_loc: (58,12)-(58,13) = ")" │ └── block: │ @ BlockArgumentNode (location: (58,8)-(58,12)) + │ ├── flags: ∅ │ ├── expression: │ │ @ CallNode (location: (58,9)-(58,12)) │ │ ├── flags: variable_call, ignore_visibility @@ -1050,7 +1105,7 @@ │ │ └── block: ∅ │ └── operator_loc: (58,8)-(58,9) = "&" ├── @ CallNode (location: (59,0)-(59,26)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (59,0)-(59,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1071,6 +1126,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 3) │ │ ├── @ SplatNode (location: (59,8)-(59,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (59,8)-(59,9) = "*" │ │ │ └── expression: │ │ │ @ CallNode (location: (59,9)-(59,13)) @@ -1094,6 +1150,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ SplatNode (location: (59,20)-(59,25)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (59,20)-(59,21) = "*" │ │ └── expression: │ │ @ CallNode (location: (59,21)-(59,25)) @@ -1109,7 +1166,7 @@ │ ├── closing_loc: (59,25)-(59,26) = ")" │ └── block: ∅ ├── @ CallNode (location: (60,0)-(60,14)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (60,0)-(60,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1130,6 +1187,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SplatNode (location: (60,8)-(60,13)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (60,8)-(60,9) = "*" │ │ └── expression: │ │ @ CallNode (location: (60,9)-(60,13)) @@ -1145,7 +1203,7 @@ │ ├── closing_loc: (60,13)-(60,14) = ")" │ └── block: ∅ ├── @ CallNode (location: (61,0)-(61,19)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (61,0)-(61,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1166,6 +1224,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ SplatNode (location: (61,8)-(61,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (61,8)-(61,9) = "*" │ │ │ └── expression: │ │ │ @ CallNode (location: (61,9)-(61,13)) @@ -1191,7 +1250,7 @@ │ ├── closing_loc: (61,18)-(61,19) = ")" │ └── block: ∅ ├── @ CallNode (location: (62,0)-(62,19)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (62,0)-(62,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1212,7 +1271,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SymbolNode (location: (62,8)-(62,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (62,8)-(62,9) = ":" │ │ ├── value_loc: (62,9)-(62,12) = "baz" │ │ ├── closing_loc: ∅ @@ -1220,6 +1279,7 @@ │ ├── closing_loc: (62,18)-(62,19) = ")" │ └── block: │ @ BlockArgumentNode (location: (62,14)-(62,18)) + │ ├── flags: ∅ │ ├── expression: │ │ @ CallNode (location: (62,15)-(62,18)) │ │ ├── flags: variable_call, ignore_visibility @@ -1233,7 +1293,7 @@ │ │ └── block: ∅ │ └── operator_loc: (62,14)-(62,15) = "&" ├── @ CallNode (location: (63,0)-(63,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (63,0)-(63,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1257,9 +1317,10 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (63,8)-(63,16)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (63,8)-(63,12)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (63,8)-(63,11) = "baz" │ │ │ ├── closing_loc: (63,11)-(63,12) = ":" @@ -1279,7 +1340,7 @@ │ ├── closing_loc: (63,16)-(63,17) = ")" │ └── block: ∅ ├── @ CallNode (location: (64,0)-(64,26)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (64,0)-(64,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1313,9 +1374,10 @@ │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (64,13)-(64,25)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ StringNode (location: (64,13)-(64,18)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: (64,13)-(64,14) = "\"" │ │ │ ├── content_loc: (64,14)-(64,17) = "baz" │ │ │ ├── closing_loc: (64,17)-(64,18) = "\"" @@ -1335,7 +1397,7 @@ │ ├── closing_loc: (64,25)-(64,26) = ")" │ └── block: ∅ ├── @ CallNode (location: (65,0)-(65,19)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (65,0)-(65,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1366,6 +1428,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ SplatNode (location: (65,13)-(65,18)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (65,13)-(65,14) = "*" │ │ └── expression: │ │ @ CallNode (location: (65,14)-(65,18)) @@ -1381,7 +1444,7 @@ │ ├── closing_loc: (65,18)-(65,19) = ")" │ └── block: ∅ ├── @ CallNode (location: (66,0)-(66,27)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (66,0)-(66,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1412,6 +1475,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ SplatNode (location: (66,13)-(66,18)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (66,13)-(66,14) = "*" │ │ └── expression: │ │ @ CallNode (location: (66,14)-(66,18)) @@ -1427,6 +1491,7 @@ │ ├── closing_loc: (66,26)-(66,27) = ")" │ └── block: │ @ BlockArgumentNode (location: (66,20)-(66,26)) + │ ├── flags: ∅ │ ├── expression: │ │ @ CallNode (location: (66,21)-(66,26)) │ │ ├── flags: variable_call, ignore_visibility @@ -1440,7 +1505,7 @@ │ │ └── block: ∅ │ └── operator_loc: (66,20)-(66,21) = "&" ├── @ CallNode (location: (67,0)-(67,16)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (67,0)-(67,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1471,13 +1536,14 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ HashNode (location: (67,13)-(67,15)) + │ │ ├── flags: static_literal │ │ ├── opening_loc: (67,13)-(67,14) = "{" │ │ ├── elements: (length: 0) │ │ └── closing_loc: (67,14)-(67,15) = "}" │ ├── closing_loc: (67,15)-(67,16) = ")" │ └── block: ∅ ├── @ CallNode (location: (68,0)-(68,26)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (68,0)-(68,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1498,12 +1564,14 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ HashNode (location: (68,8)-(68,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (68,8)-(68,9) = "{" │ │ │ ├── elements: (length: 1) │ │ │ │ └── @ AssocNode (location: (68,10)-(68,18)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── key: │ │ │ │ │ @ SymbolNode (location: (68,10)-(68,14)) - │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ │ ├── opening_loc: ∅ │ │ │ │ │ ├── value_loc: (68,10)-(68,13) = "foo" │ │ │ │ │ ├── closing_loc: (68,13)-(68,14) = ":" @@ -1534,7 +1602,7 @@ │ ├── closing_loc: (68,25)-(68,26) = ")" │ └── block: ∅ ├── @ CallNode (location: (69,0)-(69,12)) - │ ├── flags: attribute_write + │ ├── flags: newline, attribute_write │ ├── receiver: │ │ @ CallNode (location: (69,0)-(69,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1555,7 +1623,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SymbolNode (location: (69,8)-(69,12)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (69,8)-(69,9) = ":" │ │ ├── value_loc: (69,9)-(69,12) = "baz" │ │ ├── closing_loc: ∅ @@ -1563,7 +1631,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (70,0)-(70,9)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -1577,9 +1645,10 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (70,4)-(70,8)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (70,4)-(70,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (70,4)-(70,5) = "a" │ │ │ ├── closing_loc: (70,5)-(70,6) = ":" @@ -1599,7 +1668,7 @@ │ ├── closing_loc: (70,8)-(70,9) = ")" │ └── block: ∅ ├── @ CallNode (location: (71,0)-(71,11)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (71,0)-(71,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1623,9 +1692,10 @@ │ │ ├── flags: symbol_keys │ │ └── elements: (length: 1) │ │ └── @ AssocNode (location: (71,6)-(71,10)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (71,6)-(71,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (71,6)-(71,7) = "a" │ │ │ ├── closing_loc: (71,7)-(71,8) = ":" @@ -1645,7 +1715,7 @@ │ ├── closing_loc: (71,10)-(71,11) = ")" │ └── block: ∅ ├── @ CallNode (location: (72,0)-(72,10)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (72,0)-(72,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1669,6 +1739,7 @@ │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocSplatNode (location: (72,6)-(72,9)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ CallNode (location: (72,8)-(72,9)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -1684,7 +1755,7 @@ │ ├── closing_loc: (72,9)-(72,10) = ")" │ └── block: ∅ ├── @ CallNode (location: (73,0)-(73,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (73,0)-(73,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1705,6 +1776,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SplatNode (location: (73,4)-(73,8)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (73,4)-(73,5) = "*" │ │ └── expression: │ │ @ CallNode (location: (73,5)-(73,8)) @@ -1720,7 +1792,7 @@ │ ├── closing_loc: (73,8)-(73,9) = "]" │ └── block: ∅ ├── @ CallNode (location: (74,0)-(74,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (74,0)-(74,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1741,15 +1813,15 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ IntegerNode (location: (74,4)-(74,5)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ └── @ IntegerNode (location: (74,7)-(74,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── closing_loc: (74,8)-(74,9) = "]" │ └── block: ∅ ├── @ CallNode (location: (75,0)-(75,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (75,0)-(75,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -1769,9 +1841,10 @@ │ ├── closing_loc: (75,4)-(75,5) = "]" │ └── block: ∅ ├── @ CallNode (location: (76,0)-(76,8)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: │ │ @ SelfNode (location: (76,0)-(76,4)) + │ │ └── flags: ∅ │ ├── call_operator_loc: (76,4)-(76,5) = "." │ ├── name: :foo │ ├── message_loc: (76,5)-(76,8) = "foo" @@ -1780,9 +1853,10 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (77,0)-(77,13)) - │ ├── flags: attribute_write, ignore_visibility + │ ├── flags: newline, attribute_write, ignore_visibility │ ├── receiver: │ │ @ SelfNode (location: (77,0)-(77,4)) + │ │ └── flags: ∅ │ ├── call_operator_loc: (77,4)-(77,5) = "." │ ├── name: :foo= │ ├── message_loc: (77,5)-(77,8) = "foo" @@ -1792,7 +1866,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SymbolNode (location: (77,9)-(77,13)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (77,9)-(77,10) = ":" │ │ ├── value_loc: (77,10)-(77,13) = "bar" │ │ ├── closing_loc: ∅ @@ -1800,14 +1874,16 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (78,0)-(78,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ParenthesesNode (location: (78,0)-(78,7)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (78,1)-(78,6)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (78,1)-(78,6)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ CallNode (location: (78,1)-(78,2)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -1850,11 +1926,13 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ParenthesesNode (location: (78,10)-(78,17)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (78,11)-(78,16)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (78,11)-(78,16)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ CallNode (location: (78,11)-(78,12)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -1891,14 +1969,16 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (79,0)-(79,19)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ParenthesesNode (location: (79,0)-(79,7)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (79,1)-(79,6)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (79,1)-(79,6)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ CallNode (location: (79,1)-(79,2)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -1986,14 +2066,16 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (80,0)-(80,17)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ParenthesesNode (location: (80,0)-(80,7)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (80,1)-(80,6)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (80,1)-(80,6)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ CallNode (location: (80,1)-(80,2)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -2057,6 +2139,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ SplatNode (location: (80,14)-(80,16)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (80,14)-(80,15) = "*" │ │ │ └── expression: │ │ │ @ CallNode (location: (80,15)-(80,16)) @@ -2074,7 +2157,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (81,0)-(81,8)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :x @@ -2088,6 +2171,7 @@ │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocSplatNode (location: (81,2)-(81,7)) + │ │ ├── flags: ∅ │ │ ├── value: │ │ │ @ CallNode (location: (81,4)-(81,7)) │ │ │ ├── flags: variable_call, ignore_visibility @@ -2103,7 +2187,7 @@ │ ├── closing_loc: (81,7)-(81,8) = ")" │ └── block: ∅ ├── @ CallNode (location: (82,0)-(82,6)) - │ ├── flags: safe_navigation + │ ├── flags: newline, safe_navigation │ ├── receiver: │ │ @ CallNode (location: (82,0)-(82,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2123,7 +2207,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (83,0)-(83,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (83,0)-(83,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -2156,7 +2240,7 @@ │ ├── closing_loc: (83,7)-(83,8) = ")" │ └── block: ∅ └── @ CallNode (location: (84,0)-(84,7)) - ├── flags: safe_navigation + ├── flags: newline, safe_navigation ├── receiver: │ @ CallNode (location: (84,0)-(84,1)) │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/unparser/corpus/literal/since/27.txt b/test/prism/snapshots/unparser/corpus/literal/since/27.txt index 60edc18604..e4cda312f8 100644 --- a/test/prism/snapshots/unparser/corpus/literal/since/27.txt +++ b/test/prism/snapshots/unparser/corpus/literal/since/27.txt @@ -1,23 +1,29 @@ @ ProgramNode (location: (1,0)-(4,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,5)) + ├── flags: ∅ └── body: (length: 2) ├── @ LambdaNode (location: (1,0)-(3,1)) + │ ├── flags: newline │ ├── locals: [:_1, :_2] │ ├── operator_loc: (1,0)-(1,2) = "->" │ ├── opening_loc: (1,3)-(1,4) = "{" │ ├── closing_loc: (3,0)-(3,1) = "}" │ ├── parameters: │ │ @ NumberedParametersNode (location: (1,0)-(3,1)) + │ │ ├── flags: ∅ │ │ └── maximum: 2 │ └── body: │ @ StatementsNode (location: (2,2)-(2,9)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (2,2)-(2,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (2,2)-(2,4)) + │ │ ├── flags: ∅ │ │ ├── name: :_1 │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -29,20 +35,23 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ LocalVariableReadNode (location: (2,7)-(2,9)) + │ │ ├── flags: ∅ │ │ ├── name: :_2 │ │ └── depth: 0 │ ├── closing_loc: ∅ │ └── block: ∅ └── @ ParenthesesNode (location: (4,0)-(4,5)) + ├── flags: newline ├── body: │ @ StatementsNode (location: (4,1)-(4,4)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ RangeNode (location: (4,1)-(4,4)) - │ ├── flags: ∅ + │ ├── flags: newline, static_literal │ ├── left: ∅ │ ├── right: │ │ @ IntegerNode (location: (4,3)-(4,4)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ └── operator_loc: (4,1)-(4,3) = ".." ├── opening_loc: (4,0)-(4,1) = "(" diff --git a/test/prism/snapshots/unparser/corpus/literal/since/30.txt b/test/prism/snapshots/unparser/corpus/literal/since/30.txt index 300dd869f5..0102b2c97b 100644 --- a/test/prism/snapshots/unparser/corpus/literal/since/30.txt +++ b/test/prism/snapshots/unparser/corpus/literal/since/30.txt @@ -1,18 +1,23 @@ @ ProgramNode (location: (1,0)-(4,17)) +├── flags: ∅ ├── locals: [:a, :foo] └── statements: @ StatementsNode (location: (1,0)-(4,17)) + ├── flags: ∅ └── body: (length: 4) ├── @ MatchRequiredNode (location: (1,0)-(1,8)) + │ ├── flags: newline │ ├── value: │ │ @ IntegerNode (location: (1,0)-(1,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── pattern: │ │ @ ArrayPatternNode (location: (1,5)-(1,8)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ LocalVariableTargetNode (location: (1,6)-(1,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ ├── rest: ∅ @@ -21,16 +26,19 @@ │ │ └── closing_loc: (1,7)-(1,8) = "]" │ └── operator_loc: (1,2)-(1,4) = "=>" ├── @ MatchRequiredNode (location: (2,0)-(2,8)) + │ ├── flags: newline │ ├── value: │ │ @ IntegerNode (location: (2,0)-(2,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── pattern: │ │ @ ArrayPatternNode (location: (2,5)-(2,8)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── requireds: (length: 0) │ │ ├── rest: │ │ │ @ SplatNode (location: (2,6)-(2,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (2,6)-(2,7) = "*" │ │ │ └── expression: ∅ │ │ ├── posts: (length: 0) @@ -38,49 +46,59 @@ │ │ └── closing_loc: (2,7)-(2,8) = "]" │ └── operator_loc: (2,2)-(2,4) = "=>" ├── @ MatchPredicateNode (location: (3,0)-(3,15)) + │ ├── flags: newline │ ├── value: │ │ @ IntegerNode (location: (3,0)-(3,1)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── pattern: │ │ @ FindPatternNode (location: (3,5)-(3,15)) + │ │ ├── flags: ∅ │ │ ├── constant: ∅ │ │ ├── left: │ │ │ @ SplatNode (location: (3,6)-(3,7)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (3,6)-(3,7) = "*" │ │ │ └── expression: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ IntegerNode (location: (3,9)-(3,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 42 │ │ ├── right: │ │ │ @ SplatNode (location: (3,13)-(3,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (3,13)-(3,14) = "*" │ │ │ └── expression: ∅ │ │ ├── opening_loc: (3,5)-(3,6) = "[" │ │ └── closing_loc: (3,14)-(3,15) = "]" │ └── operator_loc: (3,2)-(3,4) = "in" └── @ MatchPredicateNode (location: (4,0)-(4,17)) + ├── flags: newline ├── value: │ @ IntegerNode (location: (4,0)-(4,1)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 1 ├── pattern: │ @ FindPatternNode (location: (4,5)-(4,17)) + │ ├── flags: ∅ │ ├── constant: ∅ │ ├── left: │ │ @ SplatNode (location: (4,6)-(4,7)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (4,6)-(4,7) = "*" │ │ └── expression: ∅ │ ├── requireds: (length: 1) │ │ └── @ LocalVariableTargetNode (location: (4,9)-(4,10)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── right: │ │ @ SplatNode (location: (4,12)-(4,16)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (4,12)-(4,13) = "*" │ │ └── expression: │ │ @ LocalVariableTargetNode (location: (4,13)-(4,16)) + │ │ ├── flags: ∅ │ │ ├── name: :foo │ │ └── depth: 0 │ ├── opening_loc: (4,5)-(4,6) = "[" diff --git a/test/prism/snapshots/unparser/corpus/literal/since/31.txt b/test/prism/snapshots/unparser/corpus/literal/since/31.txt index 142a56ae83..81bcd9662b 100644 --- a/test/prism/snapshots/unparser/corpus/literal/since/31.txt +++ b/test/prism/snapshots/unparser/corpus/literal/since/31.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(7,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(7,3)) + ├── flags: ∅ └── body: (length: 2) ├── @ DefNode (location: (1,0)-(3,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (1,4)-(1,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,8)-(1,9)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -23,9 +27,10 @@ │ │ └── operator_loc: (1,8)-(1,9) = "&" │ ├── body: │ │ @ StatementsNode (location: (2,2)-(2,7)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (2,2)-(2,7)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -35,6 +40,7 @@ │ │ ├── closing_loc: (2,7)-(2,8) = ")" │ │ └── block: │ │ @ BlockArgumentNode (location: (2,6)-(2,7)) + │ │ ├── flags: ∅ │ │ ├── expression: ∅ │ │ └── operator_loc: (2,6)-(2,7) = "&" │ ├── locals: [] @@ -45,11 +51,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (3,0)-(3,3) = "end" └── @ DefNode (location: (5,0)-(7,3)) + ├── flags: newline ├── name: :foo ├── name_loc: (5,4)-(5,7) = "foo" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (5,8)-(5,12)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (5,8)-(5,9)) │ │ ├── flags: ∅ @@ -67,9 +75,10 @@ │ └── operator_loc: (5,11)-(5,12) = "&" ├── body: │ @ StatementsNode (location: (6,2)-(6,7)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (6,2)-(6,7)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :bar @@ -79,6 +88,7 @@ │ ├── closing_loc: (6,7)-(6,8) = ")" │ └── block: │ @ BlockArgumentNode (location: (6,6)-(6,7)) + │ ├── flags: ∅ │ ├── expression: ∅ │ └── operator_loc: (6,6)-(6,7) = "&" ├── locals: [:a] diff --git a/test/prism/snapshots/unparser/corpus/literal/since/32.txt b/test/prism/snapshots/unparser/corpus/literal/since/32.txt index 2b28be2fa8..efd0119678 100644 --- a/test/prism/snapshots/unparser/corpus/literal/since/32.txt +++ b/test/prism/snapshots/unparser/corpus/literal/since/32.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(11,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(11,3)) + ├── flags: ∅ └── body: (length: 3) ├── @ DefNode (location: (1,0)-(3,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (1,4)-(1,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,8)-(1,20)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (1,8)-(1,16)) │ │ │ ├── flags: ∅ @@ -26,9 +30,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (2,2)-(2,19)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (2,2)-(2,19)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -39,12 +44,14 @@ │ │ │ ├── flags: contains_keywords, contains_keyword_splat │ │ │ └── arguments: (length: 2) │ │ │ ├── @ LocalVariableReadNode (location: (2,6)-(2,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :argument │ │ │ │ └── depth: 0 │ │ │ └── @ KeywordHashNode (location: (2,16)-(2,18)) │ │ │ ├── flags: ∅ │ │ │ └── elements: (length: 1) │ │ │ └── @ AssocSplatNode (location: (2,16)-(2,18)) + │ │ │ ├── flags: ∅ │ │ │ ├── value: ∅ │ │ │ └── operator_loc: (2,16)-(2,18) = "**" │ │ ├── closing_loc: (2,18)-(2,19) = ")" @@ -57,11 +64,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (3,0)-(3,3) = "end" ├── @ DefNode (location: (5,0)-(7,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (5,4)-(5,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (5,8)-(5,19)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (5,8)-(5,16)) │ │ │ ├── flags: ∅ @@ -79,9 +88,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (6,2)-(6,18)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (6,2)-(6,18)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -92,9 +102,11 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 2) │ │ │ ├── @ LocalVariableReadNode (location: (6,6)-(6,14)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :argument │ │ │ │ └── depth: 0 │ │ │ └── @ SplatNode (location: (6,16)-(6,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── operator_loc: (6,16)-(6,17) = "*" │ │ │ └── expression: ∅ │ │ ├── closing_loc: (6,17)-(6,18) = ")" @@ -107,11 +119,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (7,0)-(7,3) = "end" └── @ DefNode (location: (9,0)-(11,3)) + ├── flags: newline ├── name: :foo ├── name_loc: (9,4)-(9,7) = "foo" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (9,8)-(9,10)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -126,24 +140,28 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (10,2)-(10,20)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ HashNode (location: (10,2)-(10,20)) + │ ├── flags: newline │ ├── opening_loc: (10,2)-(10,3) = "{" │ ├── elements: (length: 2) │ │ ├── @ AssocNode (location: (10,4)-(10,14)) + │ │ │ ├── flags: static_literal │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (10,4)-(10,12)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (10,4)-(10,11) = "default" │ │ │ │ ├── closing_loc: (10,11)-(10,12) = ":" │ │ │ │ └── unescaped: "default" │ │ │ ├── value: │ │ │ │ @ IntegerNode (location: (10,13)-(10,14)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── operator_loc: ∅ │ │ └── @ AssocSplatNode (location: (10,16)-(10,18)) + │ │ ├── flags: ∅ │ │ ├── value: ∅ │ │ └── operator_loc: (10,16)-(10,18) = "**" │ └── closing_loc: (10,19)-(10,20) = "}" diff --git a/test/prism/snapshots/unparser/corpus/literal/singletons.txt b/test/prism/snapshots/unparser/corpus/literal/singletons.txt index 45c06f7b07..23069207c9 100644 --- a/test/prism/snapshots/unparser/corpus/literal/singletons.txt +++ b/test/prism/snapshots/unparser/corpus/literal/singletons.txt @@ -1,9 +1,15 @@ @ ProgramNode (location: (1,0)-(4,4)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(4,4)) + ├── flags: ∅ └── body: (length: 4) ├── @ FalseNode (location: (1,0)-(1,5)) + │ └── flags: newline, static_literal ├── @ NilNode (location: (2,0)-(2,3)) + │ └── flags: newline, static_literal ├── @ SelfNode (location: (3,0)-(3,4)) + │ └── flags: newline └── @ TrueNode (location: (4,0)-(4,4)) + └── flags: newline, static_literal diff --git a/test/prism/snapshots/unparser/corpus/literal/super.txt b/test/prism/snapshots/unparser/corpus/literal/super.txt index d5a7889919..a6311116ca 100644 --- a/test/prism/snapshots/unparser/corpus/literal/super.txt +++ b/test/prism/snapshots/unparser/corpus/literal/super.txt @@ -1,17 +1,22 @@ @ ProgramNode (location: (1,0)-(21,1)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(21,1)) + ├── flags: ∅ └── body: (length: 11) ├── @ ForwardingSuperNode (location: (1,0)-(1,5)) + │ ├── flags: newline │ └── block: ∅ ├── @ SuperNode (location: (2,0)-(2,7)) + │ ├── flags: newline │ ├── keyword_loc: (2,0)-(2,5) = "super" │ ├── lparen_loc: (2,5)-(2,6) = "(" │ ├── arguments: ∅ │ ├── rparen_loc: (2,6)-(2,7) = ")" │ └── block: ∅ ├── @ SuperNode (location: (3,0)-(3,8)) + │ ├── flags: newline │ ├── keyword_loc: (3,0)-(3,5) = "super" │ ├── lparen_loc: (3,5)-(3,6) = "(" │ ├── arguments: @@ -31,6 +36,7 @@ │ ├── rparen_loc: (3,7)-(3,8) = ")" │ └── block: ∅ ├── @ SuperNode (location: (4,0)-(4,11)) + │ ├── flags: newline │ ├── keyword_loc: (4,0)-(4,5) = "super" │ ├── lparen_loc: (4,5)-(4,6) = "(" │ ├── arguments: @@ -60,12 +66,14 @@ │ ├── rparen_loc: (4,10)-(4,11) = ")" │ └── block: ∅ ├── @ SuperNode (location: (5,0)-(5,13)) + │ ├── flags: newline │ ├── keyword_loc: (5,0)-(5,5) = "super" │ ├── lparen_loc: (5,5)-(5,6) = "(" │ ├── arguments: ∅ │ ├── rparen_loc: (5,12)-(5,13) = ")" │ └── block: │ @ BlockArgumentNode (location: (5,6)-(5,12)) + │ ├── flags: ∅ │ ├── expression: │ │ @ CallNode (location: (5,7)-(5,12)) │ │ ├── flags: variable_call, ignore_visibility @@ -79,6 +87,7 @@ │ │ └── block: ∅ │ └── operator_loc: (5,6)-(5,7) = "&" ├── @ SuperNode (location: (6,0)-(6,16)) + │ ├── flags: newline │ ├── keyword_loc: (6,0)-(6,5) = "super" │ ├── lparen_loc: (6,5)-(6,6) = "(" │ ├── arguments: @@ -98,6 +107,7 @@ │ ├── rparen_loc: (6,15)-(6,16) = ")" │ └── block: │ @ BlockArgumentNode (location: (6,9)-(6,15)) + │ ├── flags: ∅ │ ├── expression: │ │ @ CallNode (location: (6,10)-(6,15)) │ │ ├── flags: variable_call, ignore_visibility @@ -111,6 +121,7 @@ │ │ └── block: ∅ │ └── operator_loc: (6,9)-(6,10) = "&" ├── @ SuperNode (location: (7,0)-(9,2)) + │ ├── flags: newline │ ├── keyword_loc: (7,0)-(7,5) = "super" │ ├── lparen_loc: (7,5)-(7,6) = "(" │ ├── arguments: @@ -128,13 +139,15 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (7,8)-(9,1)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (8,2)-(8,5)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (8,2)-(8,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :foo @@ -148,15 +161,18 @@ │ ├── rparen_loc: (9,1)-(9,2) = ")" │ └── block: ∅ ├── @ ForwardingSuperNode (location: (10,0)-(12,1)) + │ ├── flags: newline │ └── block: │ @ BlockNode (location: (10,6)-(12,1)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (11,2)-(11,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (11,2)-(11,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :foo @@ -168,6 +184,7 @@ │ ├── opening_loc: (10,6)-(10,7) = "{" │ └── closing_loc: (12,0)-(12,1) = "}" ├── @ SuperNode (location: (13,0)-(15,1)) + │ ├── flags: newline │ ├── keyword_loc: (13,0)-(13,5) = "super" │ ├── lparen_loc: (13,5)-(13,6) = "(" │ ├── arguments: @@ -187,13 +204,15 @@ │ ├── rparen_loc: (13,7)-(13,8) = ")" │ └── block: │ @ BlockNode (location: (13,9)-(15,1)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (14,2)-(14,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (14,2)-(14,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :foo @@ -205,19 +224,22 @@ │ ├── opening_loc: (13,9)-(13,10) = "{" │ └── closing_loc: (15,0)-(15,1) = "}" ├── @ SuperNode (location: (16,0)-(18,1)) + │ ├── flags: newline │ ├── keyword_loc: (16,0)-(16,5) = "super" │ ├── lparen_loc: (16,5)-(16,6) = "(" │ ├── arguments: ∅ │ ├── rparen_loc: (16,6)-(16,7) = ")" │ └── block: │ @ BlockNode (location: (16,8)-(18,1)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (17,2)-(17,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (17,2)-(17,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :foo @@ -229,6 +251,7 @@ │ ├── opening_loc: (16,8)-(16,9) = "{" │ └── closing_loc: (18,0)-(18,1) = "}" └── @ SuperNode (location: (19,0)-(21,1)) + ├── flags: newline ├── keyword_loc: (19,0)-(19,5) = "super" ├── lparen_loc: (19,5)-(19,6) = "(" ├── arguments: @@ -258,13 +281,15 @@ ├── rparen_loc: (19,10)-(19,11) = ")" └── block: @ BlockNode (location: (19,12)-(21,1)) + ├── flags: ∅ ├── locals: [] ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (20,2)-(20,5)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (20,2)-(20,5)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo diff --git a/test/prism/snapshots/unparser/corpus/literal/unary.txt b/test/prism/snapshots/unparser/corpus/literal/unary.txt index 5e9563d811..be19b0457c 100644 --- a/test/prism/snapshots/unparser/corpus/literal/unary.txt +++ b/test/prism/snapshots/unparser/corpus/literal/unary.txt @@ -1,13 +1,15 @@ @ ProgramNode (location: (1,0)-(8,9)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(8,9)) + ├── flags: ∅ └── body: (length: 8) ├── @ CallNode (location: (1,0)-(1,2)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ IntegerNode (location: (1,1)-(1,2)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── call_operator_loc: ∅ │ ├── name: :! @@ -17,17 +19,19 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (2,0)-(2,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ParenthesesNode (location: (2,1)-(2,5)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (2,2)-(2,4)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (2,2)-(2,4)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ IntegerNode (location: (2,3)-(2,4)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ └── value: 1 │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :! @@ -46,20 +50,25 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (3,0)-(3,16)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ ParenthesesNode (location: (3,1)-(3,16)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (3,2)-(3,15)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (3,2)-(3,15)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ ParenthesesNode (location: (3,3)-(3,15)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── body: │ │ │ │ │ @ StatementsNode (location: (3,4)-(3,14)) + │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ OrNode (location: (3,4)-(3,14)) + │ │ │ │ │ ├── flags: newline │ │ │ │ │ ├── left: │ │ │ │ │ │ @ CallNode (location: (3,4)-(3,7)) │ │ │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -102,20 +111,22 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (4,0)-(4,9)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (4,1)-(4,9)) │ │ ├── flags: ∅ │ │ ├── receiver: │ │ │ @ ParenthesesNode (location: (4,1)-(4,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── body: │ │ │ │ @ StatementsNode (location: (4,2)-(4,4)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (4,2)-(4,4)) - │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── flags: newline │ │ │ │ ├── receiver: │ │ │ │ │ @ IntegerNode (location: (4,3)-(4,4)) - │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ ├── flags: static_literal, decimal │ │ │ │ │ └── value: 1 │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :! @@ -141,7 +152,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (5,0)-(5,2)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (5,1)-(5,2)) │ │ ├── flags: variable_call, ignore_visibility @@ -161,7 +172,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (6,0)-(6,2)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (6,1)-(6,2)) │ │ ├── flags: variable_call, ignore_visibility @@ -181,7 +192,7 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ CallNode (location: (7,0)-(7,2)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ CallNode (location: (7,1)-(7,2)) │ │ ├── flags: variable_call, ignore_visibility @@ -201,17 +212,19 @@ │ ├── closing_loc: ∅ │ └── block: ∅ └── @ CallNode (location: (8,0)-(8,9)) - ├── flags: ∅ + ├── flags: newline ├── receiver: │ @ CallNode (location: (8,1)-(8,9)) │ ├── flags: ∅ │ ├── receiver: │ │ @ ParenthesesNode (location: (8,1)-(8,5)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (8,2)-(8,4)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (8,2)-(8,4)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ CallNode (location: (8,3)-(8,4)) │ │ │ │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/unparser/corpus/literal/undef.txt b/test/prism/snapshots/unparser/corpus/literal/undef.txt index 282cbe8f87..b7ccf68e27 100644 --- a/test/prism/snapshots/unparser/corpus/literal/undef.txt +++ b/test/prism/snapshots/unparser/corpus/literal/undef.txt @@ -1,27 +1,31 @@ @ ProgramNode (location: (1,0)-(2,16)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(2,16)) + ├── flags: ∅ └── body: (length: 2) ├── @ UndefNode (location: (1,0)-(1,10)) + │ ├── flags: newline │ ├── names: (length: 1) │ │ └── @ SymbolNode (location: (1,6)-(1,10)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (1,6)-(1,7) = ":" │ │ ├── value_loc: (1,7)-(1,10) = "foo" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "foo" │ └── keyword_loc: (1,0)-(1,5) = "undef" └── @ UndefNode (location: (2,0)-(2,16)) + ├── flags: newline ├── names: (length: 2) │ ├── @ SymbolNode (location: (2,6)-(2,10)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (2,6)-(2,7) = ":" │ │ ├── value_loc: (2,7)-(2,10) = "foo" │ │ ├── closing_loc: ∅ │ │ └── unescaped: "foo" │ └── @ SymbolNode (location: (2,12)-(2,16)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: static_literal, forced_us_ascii_encoding │ ├── opening_loc: (2,12)-(2,13) = ":" │ ├── value_loc: (2,13)-(2,16) = "bar" │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/unparser/corpus/literal/variables.txt b/test/prism/snapshots/unparser/corpus/literal/variables.txt index 9ae8ad1207..3861af1a46 100644 --- a/test/prism/snapshots/unparser/corpus/literal/variables.txt +++ b/test/prism/snapshots/unparser/corpus/literal/variables.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(10,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(10,17)) + ├── flags: ∅ └── body: (length: 10) ├── @ CallNode (location: (1,0)-(1,1)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a @@ -14,32 +16,43 @@ │ ├── closing_loc: ∅ │ └── block: ∅ ├── @ InstanceVariableReadNode (location: (2,0)-(2,2)) + │ ├── flags: newline │ └── name: :@a ├── @ ClassVariableReadNode (location: (3,0)-(3,3)) + │ ├── flags: newline │ └── name: :@@a ├── @ GlobalVariableReadNode (location: (4,0)-(4,2)) + │ ├── flags: newline │ └── name: :$a ├── @ NumberedReferenceReadNode (location: (5,0)-(5,2)) + │ ├── flags: newline │ └── number: 1 ├── @ BackReferenceReadNode (location: (6,0)-(6,2)) + │ ├── flags: newline │ └── name: :$` ├── @ ConstantReadNode (location: (7,0)-(7,5)) + │ ├── flags: newline │ └── name: :CONST ├── @ ConstantPathNode (location: (8,0)-(8,13)) + │ ├── flags: newline │ ├── parent: │ │ @ ConstantReadNode (location: (8,0)-(8,6)) + │ │ ├── flags: ∅ │ │ └── name: :SCOPED │ ├── name: :CONST │ ├── delimiter_loc: (8,6)-(8,8) = "::" │ └── name_loc: (8,8)-(8,13) = "CONST" ├── @ ConstantPathNode (location: (9,0)-(9,10)) + │ ├── flags: newline │ ├── parent: ∅ │ ├── name: :TOPLEVEL │ ├── delimiter_loc: (9,0)-(9,2) = "::" │ └── name_loc: (9,2)-(9,10) = "TOPLEVEL" └── @ ConstantPathNode (location: (10,0)-(10,17)) + ├── flags: newline ├── parent: │ @ ConstantPathNode (location: (10,0)-(10,10)) + │ ├── flags: ∅ │ ├── parent: ∅ │ ├── name: :TOPLEVEL │ ├── delimiter_loc: (10,0)-(10,2) = "::" diff --git a/test/prism/snapshots/unparser/corpus/literal/while.txt b/test/prism/snapshots/unparser/corpus/literal/while.txt index 0f752f3392..7d9a24ec62 100644 --- a/test/prism/snapshots/unparser/corpus/literal/while.txt +++ b/test/prism/snapshots/unparser/corpus/literal/while.txt @@ -1,19 +1,24 @@ @ ProgramNode (location: (1,0)-(73,3)) +├── flags: ∅ ├── locals: [:x] └── statements: @ StatementsNode (location: (1,0)-(73,3)) + ├── flags: ∅ └── body: (length: 17) ├── @ ModuleNode (location: (1,0)-(7,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── module_keyword_loc: (1,0)-(1,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (1,7)-(1,8)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── body: │ │ @ StatementsNode (location: (2,2)-(6,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (2,2)-(6,3)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :foo @@ -23,11 +28,14 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (2,6)-(6,3)) + │ │ ├── flags: ∅ │ │ ├── locals: [:bar, :foo] │ │ ├── parameters: │ │ │ @ BlockParametersNode (location: (2,8)-(2,13)) + │ │ │ ├── flags: ∅ │ │ │ ├── parameters: │ │ │ │ @ ParametersNode (location: (2,9)-(2,12)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ └── @ RequiredParameterNode (location: (2,9)-(2,12)) │ │ │ │ │ ├── flags: ∅ @@ -43,9 +51,10 @@ │ │ │ └── closing_loc: (2,12)-(2,13) = "|" │ │ ├── body: │ │ │ @ StatementsNode (location: (3,4)-(5,7)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ WhileNode (location: (3,4)-(5,7)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── keyword_loc: (3,4)-(3,9) = "while" │ │ │ ├── closing_loc: (5,4)-(5,7) = "end" │ │ │ ├── predicate: @@ -61,13 +70,16 @@ │ │ │ │ └── block: ∅ │ │ │ └── statements: │ │ │ @ StatementsNode (location: (4,6)-(4,15)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableWriteNode (location: (4,6)-(4,15)) + │ │ │ ├── flags: newline │ │ │ ├── name: :foo │ │ │ ├── depth: 0 │ │ │ ├── name_loc: (4,6)-(4,9) = "foo" │ │ │ ├── value: │ │ │ │ @ LocalVariableReadNode (location: (4,12)-(4,15)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :bar │ │ │ │ └── depth: 0 │ │ │ └── operator_loc: (4,10)-(4,11) = "=" @@ -76,15 +88,17 @@ │ ├── end_keyword_loc: (7,0)-(7,3) = "end" │ └── name: :A ├── @ DefNode (location: (9,0)-(11,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (9,4)-(9,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (10,2)-(10,28)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ WhileNode (location: (10,2)-(10,28)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── keyword_loc: (10,12)-(10,17) = "while" │ │ ├── closing_loc: ∅ │ │ ├── predicate: @@ -92,6 +106,7 @@ │ │ │ ├── flags: ∅ │ │ │ ├── receiver: │ │ │ │ @ LocalVariableReadNode (location: (10,18)-(10,21)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :foo │ │ │ │ └── depth: 0 │ │ │ ├── call_operator_loc: ∅ @@ -116,8 +131,10 @@ │ │ │ └── block: ∅ │ │ └── statements: │ │ @ StatementsNode (location: (10,2)-(10,11)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableWriteNode (location: (10,2)-(10,11)) + │ │ ├── flags: newline │ │ ├── name: :foo │ │ ├── depth: 0 │ │ ├── name_loc: (10,2)-(10,5) = "foo" @@ -141,26 +158,32 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (11,0)-(11,3) = "end" ├── @ ModuleNode (location: (13,0)-(15,3)) + │ ├── flags: newline │ ├── locals: [:foo] │ ├── module_keyword_loc: (13,0)-(13,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (13,7)-(13,8)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── body: │ │ @ StatementsNode (location: (14,2)-(14,21)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ WhileNode (location: (14,2)-(14,21)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── keyword_loc: (14,12)-(14,17) = "while" │ │ ├── closing_loc: ∅ │ │ ├── predicate: │ │ │ @ LocalVariableReadNode (location: (14,18)-(14,21)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :foo │ │ │ └── depth: 0 │ │ └── statements: │ │ @ StatementsNode (location: (14,2)-(14,11)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableWriteNode (location: (14,2)-(14,11)) + │ │ ├── flags: newline │ │ ├── name: :foo │ │ ├── depth: 0 │ │ ├── name_loc: (14,2)-(14,5) = "foo" @@ -179,26 +202,32 @@ │ ├── end_keyword_loc: (15,0)-(15,3) = "end" │ └── name: :A ├── @ ModuleNode (location: (17,0)-(19,3)) + │ ├── flags: newline │ ├── locals: [:foo] │ ├── module_keyword_loc: (17,0)-(17,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (17,7)-(17,8)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── body: │ │ @ StatementsNode (location: (18,2)-(18,21)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ UntilNode (location: (18,2)-(18,21)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── keyword_loc: (18,12)-(18,17) = "until" │ │ ├── closing_loc: ∅ │ │ ├── predicate: │ │ │ @ LocalVariableReadNode (location: (18,18)-(18,21)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :foo │ │ │ └── depth: 0 │ │ └── statements: │ │ @ StatementsNode (location: (18,2)-(18,11)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableWriteNode (location: (18,2)-(18,11)) + │ │ ├── flags: newline │ │ ├── name: :foo │ │ ├── depth: 0 │ │ ├── name_loc: (18,2)-(18,5) = "foo" @@ -217,16 +246,19 @@ │ ├── end_keyword_loc: (19,0)-(19,3) = "end" │ └── name: :A ├── @ ModuleNode (location: (21,0)-(25,3)) + │ ├── flags: newline │ ├── locals: [:foo] │ ├── module_keyword_loc: (21,0)-(21,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (21,7)-(21,8)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── body: │ │ @ StatementsNode (location: (22,2)-(24,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ WhileNode (location: (22,2)-(24,5)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── keyword_loc: (22,2)-(22,7) = "while" │ │ ├── closing_loc: (24,2)-(24,5) = "end" │ │ ├── predicate: @@ -242,8 +274,10 @@ │ │ │ └── block: ∅ │ │ └── statements: │ │ @ StatementsNode (location: (23,4)-(23,13)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableWriteNode (location: (23,4)-(23,13)) + │ │ ├── flags: newline │ │ ├── name: :foo │ │ ├── depth: 0 │ │ ├── name_loc: (23,4)-(23,7) = "foo" @@ -262,16 +296,19 @@ │ ├── end_keyword_loc: (25,0)-(25,3) = "end" │ └── name: :A ├── @ ModuleNode (location: (27,0)-(33,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── module_keyword_loc: (27,0)-(27,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (27,7)-(27,8)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── body: │ │ @ StatementsNode (location: (28,2)-(32,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (28,2)-(32,3)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :each @@ -281,11 +318,14 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (28,7)-(32,3)) + │ │ ├── flags: ∅ │ │ ├── locals: [:baz, :foo] │ │ ├── parameters: │ │ │ @ BlockParametersNode (location: (28,9)-(28,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── parameters: │ │ │ │ @ ParametersNode (location: (28,10)-(28,13)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ └── @ RequiredParameterNode (location: (28,10)-(28,13)) │ │ │ │ │ ├── flags: ∅ @@ -301,9 +341,10 @@ │ │ │ └── closing_loc: (28,13)-(28,14) = "|" │ │ ├── body: │ │ │ @ StatementsNode (location: (29,4)-(31,7)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ WhileNode (location: (29,4)-(31,7)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── keyword_loc: (29,4)-(29,9) = "while" │ │ │ ├── closing_loc: (31,4)-(31,7) = "end" │ │ │ ├── predicate: @@ -319,8 +360,10 @@ │ │ │ │ └── block: ∅ │ │ │ └── statements: │ │ │ @ StatementsNode (location: (30,6)-(30,15)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableWriteNode (location: (30,6)-(30,15)) + │ │ │ ├── flags: newline │ │ │ ├── name: :foo │ │ │ ├── depth: 0 │ │ │ ├── name_loc: (30,6)-(30,9) = "foo" @@ -341,16 +384,19 @@ │ ├── end_keyword_loc: (33,0)-(33,3) = "end" │ └── name: :A ├── @ ModuleNode (location: (35,0)-(41,3)) + │ ├── flags: newline │ ├── locals: [] │ ├── module_keyword_loc: (35,0)-(35,6) = "module" │ ├── constant_path: │ │ @ ConstantReadNode (location: (35,7)-(35,8)) + │ │ ├── flags: ∅ │ │ └── name: :A │ ├── body: │ │ @ StatementsNode (location: (36,2)-(40,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (36,2)-(40,3)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :each @@ -360,11 +406,14 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (36,7)-(40,3)) + │ │ ├── flags: ∅ │ │ ├── locals: [:foo] │ │ ├── parameters: │ │ │ @ BlockParametersNode (location: (36,9)-(36,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── parameters: │ │ │ │ @ ParametersNode (location: (36,10)-(36,13)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── requireds: (length: 1) │ │ │ │ │ └── @ RequiredParameterNode (location: (36,10)-(36,13)) │ │ │ │ │ ├── flags: ∅ @@ -380,19 +429,23 @@ │ │ │ └── closing_loc: (36,13)-(36,14) = "|" │ │ ├── body: │ │ │ @ StatementsNode (location: (37,4)-(39,7)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ WhileNode (location: (37,4)-(39,7)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── keyword_loc: (37,4)-(37,9) = "while" │ │ │ ├── closing_loc: (39,4)-(39,7) = "end" │ │ │ ├── predicate: │ │ │ │ @ LocalVariableReadNode (location: (37,10)-(37,13)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :foo │ │ │ │ └── depth: 0 │ │ │ └── statements: │ │ │ @ StatementsNode (location: (38,6)-(38,15)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableWriteNode (location: (38,6)-(38,15)) + │ │ │ ├── flags: newline │ │ │ ├── name: :foo │ │ │ ├── depth: 0 │ │ │ ├── name_loc: (38,6)-(38,9) = "foo" @@ -413,16 +466,19 @@ │ ├── end_keyword_loc: (41,0)-(41,3) = "end" │ └── name: :A ├── @ LocalVariableWriteNode (location: (42,0)-(44,14)) + │ ├── flags: newline │ ├── name: :x │ ├── depth: 0 │ ├── name_loc: (42,0)-(42,1) = "x" │ ├── value: │ │ @ ParenthesesNode (location: (42,4)-(44,14)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (42,5)-(44,13)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ WhileNode (location: (42,5)-(44,13)) - │ │ │ ├── flags: begin_modifier + │ │ │ ├── flags: newline, begin_modifier │ │ │ ├── keyword_loc: (44,4)-(44,9) = "while" │ │ │ ├── closing_loc: ∅ │ │ │ ├── predicate: @@ -438,14 +494,17 @@ │ │ │ │ └── block: ∅ │ │ │ └── statements: │ │ │ @ StatementsNode (location: (42,5)-(44,3)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ BeginNode (location: (42,5)-(44,3)) + │ │ │ ├── flags: newline │ │ │ ├── begin_keyword_loc: (42,5)-(42,10) = "begin" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (43,2)-(43,5)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ CallNode (location: (43,2)-(43,5)) - │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ │ ├── receiver: ∅ │ │ │ │ ├── call_operator_loc: ∅ │ │ │ │ ├── name: :foo @@ -462,7 +521,7 @@ │ │ └── closing_loc: (44,13)-(44,14) = ")" │ └── operator_loc: (42,2)-(42,3) = "=" ├── @ WhileNode (location: (45,0)-(47,13)) - │ ├── flags: begin_modifier + │ ├── flags: newline, begin_modifier │ ├── keyword_loc: (47,4)-(47,9) = "while" │ ├── closing_loc: ∅ │ ├── predicate: @@ -478,14 +537,17 @@ │ │ └── block: ∅ │ └── statements: │ @ StatementsNode (location: (45,0)-(47,3)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ BeginNode (location: (45,0)-(47,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (45,0)-(45,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (46,2)-(46,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (46,2)-(46,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :foo @@ -499,7 +561,7 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (47,0)-(47,3) = "end" ├── @ UntilNode (location: (48,0)-(51,13)) - │ ├── flags: begin_modifier + │ ├── flags: newline, begin_modifier │ ├── keyword_loc: (51,4)-(51,9) = "until" │ ├── closing_loc: ∅ │ ├── predicate: @@ -515,14 +577,17 @@ │ │ └── block: ∅ │ └── statements: │ @ StatementsNode (location: (48,0)-(51,3)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ BeginNode (location: (48,0)-(51,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (48,0)-(48,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (49,2)-(50,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 2) │ │ ├── @ CallNode (location: (49,2)-(49,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :foo @@ -532,7 +597,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ CallNode (location: (50,2)-(50,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -546,7 +611,7 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (51,0)-(51,3) = "end" ├── @ WhileNode (location: (52,0)-(55,13)) - │ ├── flags: begin_modifier + │ ├── flags: newline, begin_modifier │ ├── keyword_loc: (55,4)-(55,9) = "while" │ ├── closing_loc: ∅ │ ├── predicate: @@ -562,14 +627,17 @@ │ │ └── block: ∅ │ └── statements: │ @ StatementsNode (location: (52,0)-(55,3)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ BeginNode (location: (52,0)-(55,3)) + │ ├── flags: newline │ ├── begin_keyword_loc: (52,0)-(52,5) = "begin" │ ├── statements: │ │ @ StatementsNode (location: (53,2)-(54,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 2) │ │ ├── @ CallNode (location: (53,2)-(53,5)) - │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ ├── flags: newline, variable_call, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :foo @@ -579,7 +647,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── @ CallNode (location: (54,2)-(54,5)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -593,35 +661,40 @@ │ ├── ensure_clause: ∅ │ └── end_keyword_loc: (55,0)-(55,3) = "end" ├── @ WhileNode (location: (56,0)-(57,3)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (56,0)-(56,5) = "while" │ ├── closing_loc: (57,0)-(57,3) = "end" │ ├── predicate: │ │ @ FalseNode (location: (56,6)-(56,11)) + │ │ └── flags: static_literal │ └── statements: ∅ ├── @ WhileNode (location: (58,0)-(60,3)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (58,0)-(58,5) = "while" │ ├── closing_loc: (60,0)-(60,3) = "end" │ ├── predicate: │ │ @ FalseNode (location: (58,6)-(58,11)) + │ │ └── flags: static_literal │ └── statements: │ @ StatementsNode (location: (59,2)-(59,3)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ IntegerNode (location: (59,2)-(59,3)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 3 ├── @ WhileNode (location: (61,0)-(64,3)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (61,0)-(61,5) = "while" │ ├── closing_loc: (64,0)-(64,3) = "end" │ ├── predicate: │ │ @ ParenthesesNode (location: (61,6)-(62,2)) + │ │ ├── flags: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (61,7)-(62,1)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (61,7)-(62,1)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :foo @@ -631,6 +704,7 @@ │ │ │ ├── closing_loc: ∅ │ │ │ └── block: │ │ │ @ BlockNode (location: (61,11)-(62,1)) + │ │ │ ├── flags: ∅ │ │ │ ├── locals: [] │ │ │ ├── parameters: ∅ │ │ │ ├── body: ∅ @@ -640,43 +714,49 @@ │ │ └── closing_loc: (62,1)-(62,2) = ")" │ └── statements: │ @ StatementsNode (location: (63,2)-(63,7)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ SymbolNode (location: (63,2)-(63,7)) - │ ├── flags: forced_us_ascii_encoding + │ ├── flags: newline, static_literal, forced_us_ascii_encoding │ ├── opening_loc: (63,2)-(63,3) = ":" │ ├── value_loc: (63,3)-(63,7) = "body" │ ├── closing_loc: ∅ │ └── unescaped: "body" ├── @ UntilNode (location: (65,0)-(66,3)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (65,0)-(65,5) = "until" │ ├── closing_loc: (66,0)-(66,3) = "end" │ ├── predicate: │ │ @ FalseNode (location: (65,6)-(65,11)) + │ │ └── flags: static_literal │ └── statements: ∅ ├── @ UntilNode (location: (67,0)-(69,3)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── keyword_loc: (67,0)-(67,5) = "until" │ ├── closing_loc: (69,0)-(69,3) = "end" │ ├── predicate: │ │ @ FalseNode (location: (67,6)-(67,11)) + │ │ └── flags: static_literal │ └── statements: │ @ StatementsNode (location: (68,2)-(68,3)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ IntegerNode (location: (68,2)-(68,3)) - │ ├── flags: decimal + │ ├── flags: newline, static_literal, decimal │ └── value: 3 └── @ UntilNode (location: (70,0)-(73,3)) - ├── flags: ∅ + ├── flags: newline ├── keyword_loc: (70,0)-(70,5) = "until" ├── closing_loc: (73,0)-(73,3) = "end" ├── predicate: │ @ ParenthesesNode (location: (70,6)-(71,2)) + │ ├── flags: ∅ │ ├── body: │ │ @ StatementsNode (location: (70,7)-(71,1)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (70,7)-(71,1)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :foo @@ -686,6 +766,7 @@ │ │ ├── closing_loc: ∅ │ │ └── block: │ │ @ BlockNode (location: (70,11)-(71,1)) + │ │ ├── flags: ∅ │ │ ├── locals: [] │ │ ├── parameters: ∅ │ │ ├── body: ∅ @@ -695,9 +776,10 @@ │ └── closing_loc: (71,1)-(71,2) = ")" └── statements: @ StatementsNode (location: (72,2)-(72,7)) + ├── flags: ∅ └── body: (length: 1) └── @ SymbolNode (location: (72,2)-(72,7)) - ├── flags: forced_us_ascii_encoding + ├── flags: newline, static_literal, forced_us_ascii_encoding ├── opening_loc: (72,2)-(72,3) = ":" ├── value_loc: (72,3)-(72,7) = "body" ├── closing_loc: ∅ diff --git a/test/prism/snapshots/unparser/corpus/semantic/and.txt b/test/prism/snapshots/unparser/corpus/semantic/and.txt index bc9d674e44..2a6fdcf2bc 100644 --- a/test/prism/snapshots/unparser/corpus/semantic/and.txt +++ b/test/prism/snapshots/unparser/corpus/semantic/and.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(8,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(8,3)) + ├── flags: ∅ └── body: (length: 4) ├── @ OrNode (location: (1,0)-(1,14)) + │ ├── flags: newline │ ├── left: │ │ @ RangeNode (location: (1,0)-(1,5)) │ │ ├── flags: exclude_end @@ -58,6 +61,7 @@ │ │ └── operator_loc: (1,10)-(1,13) = "..." │ └── operator_loc: (1,6)-(1,8) = "or" ├── @ AndNode (location: (2,0)-(2,15)) + │ ├── flags: newline │ ├── left: │ │ @ RangeNode (location: (2,0)-(2,5)) │ │ ├── flags: exclude_end @@ -112,9 +116,11 @@ │ │ └── operator_loc: (2,11)-(2,14) = "..." │ └── operator_loc: (2,6)-(2,9) = "and" ├── @ IfNode (location: (4,0)-(5,3)) + │ ├── flags: newline │ ├── if_keyword_loc: (4,0)-(4,2) = "if" │ ├── predicate: │ │ @ OrNode (location: (4,3)-(4,17)) + │ │ ├── flags: ∅ │ │ ├── left: │ │ │ @ FlipFlopNode (location: (4,3)-(4,8)) │ │ │ ├── flags: exclude_end @@ -173,9 +179,11 @@ │ ├── consequent: ∅ │ └── end_keyword_loc: (5,0)-(5,3) = "end" └── @ IfNode (location: (7,0)-(8,3)) + ├── flags: newline ├── if_keyword_loc: (7,0)-(7,2) = "if" ├── predicate: │ @ AndNode (location: (7,3)-(7,18)) + │ ├── flags: ∅ │ ├── left: │ │ @ FlipFlopNode (location: (7,3)-(7,8)) │ │ ├── flags: exclude_end diff --git a/test/prism/snapshots/unparser/corpus/semantic/block.txt b/test/prism/snapshots/unparser/corpus/semantic/block.txt index b9aa6b2184..c3b27b194e 100644 --- a/test/prism/snapshots/unparser/corpus/semantic/block.txt +++ b/test/prism/snapshots/unparser/corpus/semantic/block.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(26,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(26,3)) + ├── flags: ∅ └── body: (length: 6) ├── @ CallNode (location: (1,0)-(2,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -14,13 +16,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (1,4)-(2,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: ∅ │ ├── opening_loc: (1,4)-(1,6) = "do" │ └── closing_loc: (2,0)-(2,3) = "end" ├── @ CallNode (location: (4,0)-(6,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -30,14 +33,17 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (4,4)-(6,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ BeginNode (location: (4,4)-(6,3)) + │ │ ├── flags: ∅ │ │ ├── begin_keyword_loc: ∅ │ │ ├── statements: ∅ │ │ ├── rescue_clause: │ │ │ @ RescueNode (location: (5,0)-(5,6)) + │ │ │ ├── flags: ∅ │ │ │ ├── keyword_loc: (5,0)-(5,6) = "rescue" │ │ │ ├── exceptions: (length: 0) │ │ │ ├── operator_loc: ∅ @@ -50,7 +56,7 @@ │ ├── opening_loc: (4,4)-(4,6) = "do" │ └── closing_loc: (6,0)-(6,3) = "end" ├── @ CallNode (location: (8,0)-(11,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -60,22 +66,28 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (8,4)-(11,3)) + │ ├── flags: ∅ │ ├── locals: [] │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (9,2)-(10,5)) + │ │ ├── flags: ∅ │ │ └── body: (length: 2) │ │ ├── @ RescueModifierNode (location: (9,2)-(9,16)) + │ │ │ ├── flags: newline │ │ │ ├── expression: │ │ │ │ @ NilNode (location: (9,2)-(9,5)) + │ │ │ │ └── flags: static_literal │ │ │ ├── keyword_loc: (9,6)-(9,12) = "rescue" │ │ │ └── rescue_expression: │ │ │ @ NilNode (location: (9,13)-(9,16)) + │ │ │ └── flags: static_literal │ │ └── @ NilNode (location: (10,2)-(10,5)) + │ │ └── flags: newline, static_literal │ ├── opening_loc: (8,4)-(8,6) = "do" │ └── closing_loc: (11,0)-(11,3) = "end" ├── @ CallNode (location: (13,0)-(14,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -85,11 +97,14 @@ │ ├── closing_loc: ∅ │ └── block: │ @ BlockNode (location: (13,4)-(14,3)) + │ ├── flags: ∅ │ ├── locals: [:a] │ ├── parameters: │ │ @ BlockParametersNode (location: (13,7)-(13,10)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (13,8)-(13,9)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (13,8)-(13,9)) │ │ │ │ ├── flags: ∅ @@ -107,7 +122,7 @@ │ ├── opening_loc: (13,4)-(13,6) = "do" │ └── closing_loc: (14,0)-(14,3) = "end" ├── @ CallNode (location: (16,0)-(20,3)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :foo @@ -126,11 +141,14 @@ │ ├── closing_loc: (16,10)-(16,11) = ")" │ └── block: │ @ BlockNode (location: (16,12)-(20,3)) + │ ├── flags: ∅ │ ├── locals: [:a] │ ├── parameters: │ │ @ BlockParametersNode (location: (16,15)-(16,18)) + │ │ ├── flags: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (16,16)-(16,17)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 1) │ │ │ │ └── @ RequiredParameterNode (location: (16,16)-(16,17)) │ │ │ │ ├── flags: ∅ @@ -146,14 +164,16 @@ │ │ └── closing_loc: (16,17)-(16,18) = "|" │ ├── body: │ │ @ StatementsNode (location: (19,2)-(19,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (19,2)-(19,3)) + │ │ ├── flags: newline │ │ ├── name: :a │ │ └── depth: 0 │ ├── opening_loc: (16,12)-(16,14) = "do" │ └── closing_loc: (20,0)-(20,3) = "end" └── @ CallNode (location: (22,0)-(26,3)) - ├── flags: ignore_visibility + ├── flags: newline, ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :foo @@ -172,13 +192,15 @@ ├── closing_loc: (22,10)-(22,11) = ")" └── block: @ BlockNode (location: (22,12)-(26,3)) + ├── flags: ∅ ├── locals: [] ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (25,2)-(25,3)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (25,2)-(25,3)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :a diff --git a/test/prism/snapshots/unparser/corpus/semantic/def.txt b/test/prism/snapshots/unparser/corpus/semantic/def.txt index b44983c2f3..f05ce02bca 100644 --- a/test/prism/snapshots/unparser/corpus/semantic/def.txt +++ b/test/prism/snapshots/unparser/corpus/semantic/def.txt @@ -1,22 +1,28 @@ @ ProgramNode (location: (1,0)-(7,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(7,3)) + ├── flags: ∅ └── body: (length: 2) ├── @ DefNode (location: (1,0)-(3,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (1,4)-(1,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (2,2)-(2,9)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ ParenthesesNode (location: (2,2)-(2,9)) + │ │ ├── flags: newline │ │ ├── body: │ │ │ @ StatementsNode (location: (2,3)-(2,8)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (2,3)-(2,8)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── receiver: │ │ │ │ @ CallNode (location: (2,3)-(2,4)) │ │ │ │ ├── flags: variable_call, ignore_visibility @@ -58,14 +64,17 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (3,0)-(3,3) = "end" └── @ DefNode (location: (5,0)-(7,3)) + ├── flags: newline ├── name: :foo ├── name_loc: (5,4)-(5,7) = "foo" ├── receiver: ∅ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (6,2)-(6,20)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ RescueModifierNode (location: (6,2)-(6,20)) + │ ├── flags: newline │ ├── expression: │ │ @ CallNode (location: (6,2)-(6,3)) │ │ ├── flags: variable_call, ignore_visibility @@ -80,6 +89,7 @@ │ ├── keyword_loc: (6,4)-(6,10) = "rescue" │ └── rescue_expression: │ @ ConstantReadNode (location: (6,11)-(6,20)) + │ ├── flags: ∅ │ └── name: :Exception ├── locals: [] ├── def_keyword_loc: (5,0)-(5,3) = "def" diff --git a/test/prism/snapshots/unparser/corpus/semantic/dstr.txt b/test/prism/snapshots/unparser/corpus/semantic/dstr.txt index 499bf59d1a..e1b647c744 100644 --- a/test/prism/snapshots/unparser/corpus/semantic/dstr.txt +++ b/test/prism/snapshots/unparser/corpus/semantic/dstr.txt @@ -1,248 +1,262 @@ @ ProgramNode (location: (1,0)-(127,11)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(127,11)) + ├── flags: ∅ └── body: (length: 33) ├── @ StringNode (location: (1,0)-(1,5)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (1,0)-(1,5) = "<= ├── name_loc: (11,4)-(11,6) = ">=" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (11,7)-(11,12)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (11,7)-(11,12)) │ │ ├── flags: ∅ @@ -201,9 +220,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (11,16)-(11,28)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (11,16)-(11,28)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :do_something diff --git a/test/prism/snapshots/whitequark/endless_method.txt b/test/prism/snapshots/whitequark/endless_method.txt index 17d3873b66..5b48a95ae5 100644 --- a/test/prism/snapshots/whitequark/endless_method.txt +++ b/test/prism/snapshots/whitequark/endless_method.txt @@ -1,18 +1,22 @@ @ ProgramNode (location: (1,0)-(7,22)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(7,22)) + ├── flags: ∅ └── body: (length: 4) ├── @ DefNode (location: (1,0)-(1,14)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (1,4)-(1,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,12)-(1,14)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (1,12)-(1,14)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 42 │ ├── locals: [] │ ├── def_keyword_loc: (1,0)-(1,3) = "def" @@ -22,11 +26,13 @@ │ ├── equal_loc: (1,10)-(1,11) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (3,0)-(3,18)) + │ ├── flags: newline │ ├── name: :inc │ ├── name_loc: (3,4)-(3,7) = "inc" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (3,8)-(3,9)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (3,8)-(3,9)) │ │ │ ├── flags: ∅ @@ -39,11 +45,13 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (3,13)-(3,18)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (3,13)-(3,18)) - │ │ ├── flags: ∅ + │ │ ├── flags: newline │ │ ├── receiver: │ │ │ @ LocalVariableReadNode (location: (3,13)-(3,14)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :x │ │ │ └── depth: 0 │ │ ├── call_operator_loc: ∅ @@ -55,7 +63,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ IntegerNode (location: (3,17)-(3,18)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── closing_loc: ∅ │ │ └── block: ∅ @@ -67,6 +75,7 @@ │ ├── equal_loc: (3,11)-(3,12) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (5,0)-(5,18)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (5,8)-(5,11) = "foo" │ ├── receiver: @@ -83,9 +92,10 @@ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (5,16)-(5,18)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (5,16)-(5,18)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 42 │ ├── locals: [] │ ├── def_keyword_loc: (5,0)-(5,3) = "def" @@ -95,6 +105,7 @@ │ ├── equal_loc: (5,14)-(5,15) = "=" │ └── end_keyword_loc: ∅ └── @ DefNode (location: (7,0)-(7,22)) + ├── flags: newline ├── name: :inc ├── name_loc: (7,8)-(7,11) = "inc" ├── receiver: @@ -110,6 +121,7 @@ │ └── block: ∅ ├── parameters: │ @ ParametersNode (location: (7,12)-(7,13)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (7,12)-(7,13)) │ │ ├── flags: ∅ @@ -122,11 +134,13 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (7,17)-(7,22)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (7,17)-(7,22)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── receiver: │ │ @ LocalVariableReadNode (location: (7,17)-(7,18)) + │ │ ├── flags: ∅ │ │ ├── name: :x │ │ └── depth: 0 │ ├── call_operator_loc: ∅ @@ -138,7 +152,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IntegerNode (location: (7,21)-(7,22)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── closing_loc: ∅ │ └── block: ∅ diff --git a/test/prism/snapshots/whitequark/endless_method_command_syntax.txt b/test/prism/snapshots/whitequark/endless_method_command_syntax.txt index 4ec57ccd35..f2fa941fee 100644 --- a/test/prism/snapshots/whitequark/endless_method_command_syntax.txt +++ b/test/prism/snapshots/whitequark/endless_method_command_syntax.txt @@ -1,18 +1,22 @@ @ ProgramNode (location: (1,0)-(15,62)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(15,62)) + ├── flags: ∅ └── body: (length: 8) ├── @ DefNode (location: (1,0)-(1,22)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (1,4)-(1,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,10)-(1,22)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,10)-(1,22)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :puts @@ -38,15 +42,17 @@ │ ├── equal_loc: (1,8)-(1,9) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (3,0)-(3,24)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (3,4)-(3,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (3,12)-(3,24)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (3,12)-(3,24)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :puts @@ -72,11 +78,13 @@ │ ├── equal_loc: (3,10)-(3,11) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (5,0)-(5,19)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (5,4)-(5,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (5,8)-(5,9)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (5,8)-(5,9)) │ │ │ ├── flags: ∅ @@ -89,9 +97,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (5,13)-(5,19)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (5,13)-(5,19)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :puts @@ -102,6 +111,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ LocalVariableReadNode (location: (5,18)-(5,19)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :x │ │ │ └── depth: 0 │ │ ├── closing_loc: ∅ @@ -114,6 +124,7 @@ │ ├── equal_loc: (5,11)-(5,12) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (7,0)-(7,26)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (7,8)-(7,11) = "foo" │ ├── receiver: @@ -130,9 +141,10 @@ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (7,14)-(7,26)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (7,14)-(7,26)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :puts @@ -158,6 +170,7 @@ │ ├── equal_loc: (7,12)-(7,13) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (9,0)-(9,28)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (9,8)-(9,11) = "foo" │ ├── receiver: @@ -174,9 +187,10 @@ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (9,16)-(9,28)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (9,16)-(9,28)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :puts @@ -202,6 +216,7 @@ │ ├── equal_loc: (9,14)-(9,15) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (11,0)-(11,23)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (11,8)-(11,11) = "foo" │ ├── receiver: @@ -217,6 +232,7 @@ │ │ └── block: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (11,12)-(11,13)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (11,12)-(11,13)) │ │ │ ├── flags: ∅ @@ -229,9 +245,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (11,17)-(11,23)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (11,17)-(11,23)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :puts @@ -242,6 +259,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ LocalVariableReadNode (location: (11,22)-(11,23)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :x │ │ │ └── depth: 0 │ │ ├── closing_loc: ∅ @@ -254,11 +272,13 @@ │ ├── equal_loc: (11,15)-(11,16) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (13,0)-(13,60)) + │ ├── flags: newline │ ├── name: :rescued │ ├── name_loc: (13,4)-(13,11) = "rescued" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (13,12)-(13,13)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (13,12)-(13,13)) │ │ │ ├── flags: ∅ @@ -271,8 +291,10 @@ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (13,17)-(13,60)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RescueModifierNode (location: (13,17)-(13,60)) + │ │ ├── flags: newline │ │ ├── expression: │ │ │ @ CallNode (location: (13,17)-(13,37)) │ │ │ ├── flags: ignore_visibility @@ -300,17 +322,20 @@ │ │ ├── opening_loc: (13,45)-(13,46) = "\"" │ │ ├── parts: (length: 2) │ │ │ ├── @ StringNode (location: (13,46)-(13,55)) - │ │ │ │ ├── flags: frozen + │ │ │ │ ├── flags: static_literal, frozen │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── content_loc: (13,46)-(13,55) = "instance " │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "instance " │ │ │ └── @ EmbeddedStatementsNode (location: (13,55)-(13,59)) + │ │ │ ├── flags: ∅ │ │ │ ├── opening_loc: (13,55)-(13,57) = "\#{" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (13,57)-(13,58)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ LocalVariableReadNode (location: (13,57)-(13,58)) + │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :x │ │ │ │ └── depth: 0 │ │ │ └── closing_loc: (13,58)-(13,59) = "}" @@ -323,12 +348,15 @@ │ ├── equal_loc: (13,15)-(13,16) = "=" │ └── end_keyword_loc: ∅ └── @ DefNode (location: (15,0)-(15,62)) + ├── flags: newline ├── name: :rescued ├── name_loc: (15,9)-(15,16) = "rescued" ├── receiver: │ @ SelfNode (location: (15,4)-(15,8)) + │ └── flags: ∅ ├── parameters: │ @ ParametersNode (location: (15,17)-(15,18)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (15,17)-(15,18)) │ │ ├── flags: ∅ @@ -341,8 +369,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (15,22)-(15,62)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ RescueModifierNode (location: (15,22)-(15,62)) + │ ├── flags: newline │ ├── expression: │ │ @ CallNode (location: (15,22)-(15,42)) │ │ ├── flags: ignore_visibility @@ -370,17 +400,20 @@ │ ├── opening_loc: (15,50)-(15,51) = "\"" │ ├── parts: (length: 2) │ │ ├── @ StringNode (location: (15,51)-(15,57)) - │ │ │ ├── flags: frozen + │ │ │ ├── flags: static_literal, frozen │ │ │ ├── opening_loc: ∅ │ │ │ ├── content_loc: (15,51)-(15,57) = "class " │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "class " │ │ └── @ EmbeddedStatementsNode (location: (15,57)-(15,61)) + │ │ ├── flags: ∅ │ │ ├── opening_loc: (15,57)-(15,59) = "\#{" │ │ ├── statements: │ │ │ @ StatementsNode (location: (15,59)-(15,60)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ LocalVariableReadNode (location: (15,59)-(15,60)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :x │ │ │ └── depth: 0 │ │ └── closing_loc: (15,60)-(15,61) = "}" diff --git a/test/prism/snapshots/whitequark/endless_method_forwarded_args_legacy.txt b/test/prism/snapshots/whitequark/endless_method_forwarded_args_legacy.txt index 64a3ffa252..67264d3b1c 100644 --- a/test/prism/snapshots/whitequark/endless_method_forwarded_args_legacy.txt +++ b/test/prism/snapshots/whitequark/endless_method_forwarded_args_legacy.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,23)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,23)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,23)) + ├── flags: newline ├── name: :foo ├── name_loc: (1,4)-(1,7) = "foo" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,8)-(1,11)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -16,12 +20,14 @@ │ ├── keywords: (length: 0) │ ├── keyword_rest: │ │ @ ForwardingParameterNode (location: (1,8)-(1,11)) + │ │ └── flags: ∅ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,15)-(1,23)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,15)-(1,23)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :bar @@ -32,6 +38,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ForwardingArgumentsNode (location: (1,19)-(1,22)) + │ │ └── flags: ∅ │ ├── closing_loc: (1,22)-(1,23) = ")" │ └── block: ∅ ├── locals: [] diff --git a/test/prism/snapshots/whitequark/endless_method_with_rescue_mod.txt b/test/prism/snapshots/whitequark/endless_method_with_rescue_mod.txt index 2284b24354..5456221286 100644 --- a/test/prism/snapshots/whitequark/endless_method_with_rescue_mod.txt +++ b/test/prism/snapshots/whitequark/endless_method_with_rescue_mod.txt @@ -1,25 +1,30 @@ @ ProgramNode (location: (1,0)-(3,25)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,25)) + ├── flags: ∅ └── body: (length: 2) ├── @ DefNode (location: (1,0)-(1,20)) + │ ├── flags: newline │ ├── name: :m │ ├── name_loc: (1,4)-(1,5) = "m" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,10)-(1,20)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RescueModifierNode (location: (1,10)-(1,20)) + │ │ ├── flags: newline │ │ ├── expression: │ │ │ @ IntegerNode (location: (1,10)-(1,11)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── keyword_loc: (1,12)-(1,18) = "rescue" │ │ └── rescue_expression: │ │ @ IntegerNode (location: (1,19)-(1,20)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ ├── locals: [] │ ├── def_keyword_loc: (1,0)-(1,3) = "def" @@ -29,23 +34,27 @@ │ ├── equal_loc: (1,8)-(1,9) = "=" │ └── end_keyword_loc: ∅ └── @ DefNode (location: (3,0)-(3,25)) + ├── flags: newline ├── name: :m ├── name_loc: (3,9)-(3,10) = "m" ├── receiver: │ @ SelfNode (location: (3,4)-(3,8)) + │ └── flags: ∅ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (3,15)-(3,25)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ RescueModifierNode (location: (3,15)-(3,25)) + │ ├── flags: newline │ ├── expression: │ │ @ IntegerNode (location: (3,15)-(3,16)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 1 │ ├── keyword_loc: (3,17)-(3,23) = "rescue" │ └── rescue_expression: │ @ IntegerNode (location: (3,24)-(3,25)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 2 ├── locals: [] ├── def_keyword_loc: (3,0)-(3,3) = "def" diff --git a/test/prism/snapshots/whitequark/endless_method_without_args.txt b/test/prism/snapshots/whitequark/endless_method_without_args.txt index a7a9c93ef3..2e97f101c7 100644 --- a/test/prism/snapshots/whitequark/endless_method_without_args.txt +++ b/test/prism/snapshots/whitequark/endless_method_without_args.txt @@ -1,18 +1,22 @@ @ ProgramNode (location: (1,0)-(7,28)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(7,28)) + ├── flags: ∅ └── body: (length: 4) ├── @ DefNode (location: (1,0)-(1,12)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (1,4)-(1,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,10)-(1,12)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (1,10)-(1,12)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 42 │ ├── locals: [] │ ├── def_keyword_loc: (1,0)-(1,3) = "def" @@ -22,21 +26,25 @@ │ ├── equal_loc: (1,8)-(1,9) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (3,0)-(3,23)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (3,4)-(3,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (3,10)-(3,23)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ RescueModifierNode (location: (3,10)-(3,23)) + │ │ ├── flags: newline │ │ ├── expression: │ │ │ @ IntegerNode (location: (3,10)-(3,12)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 42 │ │ ├── keyword_loc: (3,13)-(3,19) = "rescue" │ │ └── rescue_expression: │ │ @ NilNode (location: (3,20)-(3,23)) + │ │ └── flags: static_literal │ ├── locals: [] │ ├── def_keyword_loc: (3,0)-(3,3) = "def" │ ├── operator_loc: ∅ @@ -45,16 +53,19 @@ │ ├── equal_loc: (3,8)-(3,9) = "=" │ └── end_keyword_loc: ∅ ├── @ DefNode (location: (5,0)-(5,17)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (5,9)-(5,12) = "foo" │ ├── receiver: │ │ @ SelfNode (location: (5,4)-(5,8)) + │ │ └── flags: ∅ │ ├── parameters: ∅ │ ├── body: │ │ @ StatementsNode (location: (5,15)-(5,17)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ IntegerNode (location: (5,15)-(5,17)) - │ │ ├── flags: decimal + │ │ ├── flags: newline, static_literal, decimal │ │ └── value: 42 │ ├── locals: [] │ ├── def_keyword_loc: (5,0)-(5,3) = "def" @@ -64,22 +75,27 @@ │ ├── equal_loc: (5,13)-(5,14) = "=" │ └── end_keyword_loc: ∅ └── @ DefNode (location: (7,0)-(7,28)) + ├── flags: newline ├── name: :foo ├── name_loc: (7,9)-(7,12) = "foo" ├── receiver: │ @ SelfNode (location: (7,4)-(7,8)) + │ └── flags: ∅ ├── parameters: ∅ ├── body: │ @ StatementsNode (location: (7,15)-(7,28)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ RescueModifierNode (location: (7,15)-(7,28)) + │ ├── flags: newline │ ├── expression: │ │ @ IntegerNode (location: (7,15)-(7,17)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 42 │ ├── keyword_loc: (7,18)-(7,24) = "rescue" │ └── rescue_expression: │ @ NilNode (location: (7,25)-(7,28)) + │ └── flags: static_literal ├── locals: [] ├── def_keyword_loc: (7,0)-(7,3) = "def" ├── operator_loc: (7,8)-(7,9) = "." diff --git a/test/prism/snapshots/whitequark/ensure.txt b/test/prism/snapshots/whitequark/ensure.txt index a48d2370e8..63d4a3b05d 100644 --- a/test/prism/snapshots/whitequark/ensure.txt +++ b/test/prism/snapshots/whitequark/ensure.txt @@ -1,15 +1,19 @@ @ ProgramNode (location: (1,0)-(1,29)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,29)) + ├── flags: ∅ └── body: (length: 1) └── @ BeginNode (location: (1,0)-(1,29)) + ├── flags: newline ├── begin_keyword_loc: (1,0)-(1,5) = "begin" ├── statements: │ @ StatementsNode (location: (1,7)-(1,11)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,7)-(1,11)) - │ ├── flags: variable_call, ignore_visibility + │ ├── flags: newline, variable_call, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :meth @@ -22,12 +26,14 @@ ├── else_clause: ∅ ├── ensure_clause: │ @ EnsureNode (location: (1,13)-(1,29)) + │ ├── flags: ∅ │ ├── ensure_keyword_loc: (1,13)-(1,19) = "ensure" │ ├── statements: │ │ @ StatementsNode (location: (1,21)-(1,24)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,21)-(1,24)) - │ │ ├── flags: variable_call, ignore_visibility + │ │ ├── flags: newline, variable_call, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar diff --git a/test/prism/snapshots/whitequark/ensure_empty.txt b/test/prism/snapshots/whitequark/ensure_empty.txt index 0bab5d80c3..c7369b7b1f 100644 --- a/test/prism/snapshots/whitequark/ensure_empty.txt +++ b/test/prism/snapshots/whitequark/ensure_empty.txt @@ -1,15 +1,19 @@ @ ProgramNode (location: (1,0)-(1,16)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,16)) + ├── flags: ∅ └── body: (length: 1) └── @ BeginNode (location: (1,0)-(1,16)) + ├── flags: newline ├── begin_keyword_loc: (1,0)-(1,5) = "begin" ├── statements: ∅ ├── rescue_clause: ∅ ├── else_clause: ∅ ├── ensure_clause: │ @ EnsureNode (location: (1,6)-(1,16)) + │ ├── flags: ∅ │ ├── ensure_keyword_loc: (1,6)-(1,12) = "ensure" │ ├── statements: ∅ │ └── end_keyword_loc: (1,13)-(1,16) = "end" diff --git a/test/prism/snapshots/whitequark/false.txt b/test/prism/snapshots/whitequark/false.txt index 00562f703a..4686f6aa08 100644 --- a/test/prism/snapshots/whitequark/false.txt +++ b/test/prism/snapshots/whitequark/false.txt @@ -1,6 +1,9 @@ @ ProgramNode (location: (1,0)-(1,5)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,5)) + ├── flags: ∅ └── body: (length: 1) └── @ FalseNode (location: (1,0)-(1,5)) + └── flags: newline, static_literal diff --git a/test/prism/snapshots/whitequark/float.txt b/test/prism/snapshots/whitequark/float.txt index 5e6a597db7..7839f89962 100644 --- a/test/prism/snapshots/whitequark/float.txt +++ b/test/prism/snapshots/whitequark/float.txt @@ -1,9 +1,13 @@ @ ProgramNode (location: (1,0)-(3,4)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,4)) + ├── flags: ∅ └── body: (length: 2) ├── @ FloatNode (location: (1,0)-(1,5)) + │ ├── flags: newline, static_literal │ └── value: -1.33 └── @ FloatNode (location: (3,0)-(3,4)) + ├── flags: newline, static_literal └── value: 1.33 diff --git a/test/prism/snapshots/whitequark/for.txt b/test/prism/snapshots/whitequark/for.txt index fec8bdfd64..8dca927c90 100644 --- a/test/prism/snapshots/whitequark/for.txt +++ b/test/prism/snapshots/whitequark/for.txt @@ -1,11 +1,15 @@ @ ProgramNode (location: (1,0)-(3,22)) +├── flags: ∅ ├── locals: [:a] └── statements: @ StatementsNode (location: (1,0)-(3,22)) + ├── flags: ∅ └── body: (length: 2) ├── @ ForNode (location: (1,0)-(1,24)) + │ ├── flags: newline │ ├── index: │ │ @ LocalVariableTargetNode (location: (1,4)-(1,5)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── collection: @@ -21,9 +25,10 @@ │ │ └── block: ∅ │ ├── statements: │ │ @ StatementsNode (location: (1,16)-(1,19)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,16)-(1,19)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :p @@ -34,6 +39,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ LocalVariableReadNode (location: (1,18)-(1,19)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ ├── closing_loc: ∅ @@ -43,8 +49,10 @@ │ ├── do_keyword_loc: (1,13)-(1,15) = "do" │ └── end_keyword_loc: (1,21)-(1,24) = "end" └── @ ForNode (location: (3,0)-(3,22)) + ├── flags: newline ├── index: │ @ LocalVariableTargetNode (location: (3,4)-(3,5)) + │ ├── flags: ∅ │ ├── name: :a │ └── depth: 0 ├── collection: @@ -60,9 +68,10 @@ │ └── block: ∅ ├── statements: │ @ StatementsNode (location: (3,14)-(3,17)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (3,14)-(3,17)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :p @@ -73,6 +82,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ LocalVariableReadNode (location: (3,16)-(3,17)) + │ │ ├── flags: ∅ │ │ ├── name: :a │ │ └── depth: 0 │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/whitequark/for_mlhs.txt b/test/prism/snapshots/whitequark/for_mlhs.txt index 42d8fa2258..0f70dd8a7d 100644 --- a/test/prism/snapshots/whitequark/for_mlhs.txt +++ b/test/prism/snapshots/whitequark/for_mlhs.txt @@ -1,16 +1,22 @@ @ ProgramNode (location: (1,0)-(1,28)) +├── flags: ∅ ├── locals: [:a, :b] └── statements: @ StatementsNode (location: (1,0)-(1,28)) + ├── flags: ∅ └── body: (length: 1) └── @ ForNode (location: (1,0)-(1,28)) + ├── flags: newline ├── index: │ @ MultiTargetNode (location: (1,4)-(1,8)) + │ ├── flags: ∅ │ ├── lefts: (length: 2) │ │ ├── @ LocalVariableTargetNode (location: (1,4)-(1,5)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ └── @ LocalVariableTargetNode (location: (1,7)-(1,8)) + │ │ ├── flags: ∅ │ │ ├── name: :b │ │ └── depth: 0 │ ├── rest: ∅ @@ -30,9 +36,10 @@ │ └── block: ∅ ├── statements: │ @ StatementsNode (location: (1,17)-(1,23)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,17)-(1,23)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :p @@ -43,9 +50,11 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ LocalVariableReadNode (location: (1,19)-(1,20)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :a │ │ │ └── depth: 0 │ │ └── @ LocalVariableReadNode (location: (1,22)-(1,23)) + │ │ ├── flags: ∅ │ │ ├── name: :b │ │ └── depth: 0 │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/whitequark/forward_arg.txt b/test/prism/snapshots/whitequark/forward_arg.txt index 17504c64e0..b8c22d08f2 100644 --- a/test/prism/snapshots/whitequark/forward_arg.txt +++ b/test/prism/snapshots/whitequark/forward_arg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,27)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,27)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,27)) + ├── flags: newline ├── name: :foo ├── name_loc: (1,4)-(1,7) = "foo" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,8)-(1,11)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -16,12 +20,14 @@ │ ├── keywords: (length: 0) │ ├── keyword_rest: │ │ @ ForwardingParameterNode (location: (1,8)-(1,11)) + │ │ └── flags: ∅ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,14)-(1,22)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,14)-(1,22)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :bar @@ -32,6 +38,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ForwardingArgumentsNode (location: (1,18)-(1,21)) + │ │ └── flags: ∅ │ ├── closing_loc: (1,21)-(1,22) = ")" │ └── block: ∅ ├── locals: [] diff --git a/test/prism/snapshots/whitequark/forward_arg_with_open_args.txt b/test/prism/snapshots/whitequark/forward_arg_with_open_args.txt index 7e58260b58..20c8486276 100644 --- a/test/prism/snapshots/whitequark/forward_arg_with_open_args.txt +++ b/test/prism/snapshots/whitequark/forward_arg_with_open_args.txt @@ -1,18 +1,24 @@ @ ProgramNode (location: (1,0)-(27,28)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(27,28)) + ├── flags: ∅ └── body: (length: 10) ├── @ ParenthesesNode (location: (1,0)-(3,4)) + │ ├── flags: newline │ ├── body: │ │ @ StatementsNode (location: (1,1)-(3,3)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ DefNode (location: (1,1)-(3,3)) + │ │ ├── flags: newline │ │ ├── name: :foo │ │ ├── name_loc: (1,5)-(1,8) = "foo" │ │ ├── receiver: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (1,9)-(1,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 0) │ │ │ ├── optionals: (length: 0) │ │ │ ├── rest: ∅ @@ -20,12 +26,14 @@ │ │ │ ├── keywords: (length: 0) │ │ │ ├── keyword_rest: │ │ │ │ @ ForwardingParameterNode (location: (1,9)-(1,12)) + │ │ │ │ └── flags: ∅ │ │ │ └── block: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (2,2)-(2,10)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (2,2)-(2,10)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -36,6 +44,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ ForwardingArgumentsNode (location: (2,6)-(2,9)) + │ │ │ │ └── flags: ∅ │ │ │ ├── closing_loc: (2,9)-(2,10) = ")" │ │ │ └── block: ∅ │ │ ├── locals: [] @@ -48,15 +57,19 @@ │ ├── opening_loc: (1,0)-(1,1) = "(" │ └── closing_loc: (3,3)-(3,4) = ")" ├── @ ParenthesesNode (location: (5,0)-(5,28)) + │ ├── flags: newline │ ├── body: │ │ @ StatementsNode (location: (5,1)-(5,27)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ DefNode (location: (5,1)-(5,27)) + │ │ ├── flags: newline │ │ ├── name: :foo │ │ ├── name_loc: (5,5)-(5,8) = "foo" │ │ ├── receiver: ∅ │ │ ├── parameters: │ │ │ @ ParametersNode (location: (5,9)-(5,12)) + │ │ │ ├── flags: ∅ │ │ │ ├── requireds: (length: 0) │ │ │ ├── optionals: (length: 0) │ │ │ ├── rest: ∅ @@ -64,12 +77,14 @@ │ │ │ ├── keywords: (length: 0) │ │ │ ├── keyword_rest: │ │ │ │ @ ForwardingParameterNode (location: (5,9)-(5,12)) + │ │ │ │ └── flags: ∅ │ │ │ └── block: ∅ │ │ ├── body: │ │ │ @ StatementsNode (location: (5,14)-(5,22)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ CallNode (location: (5,14)-(5,22)) - │ │ │ ├── flags: ignore_visibility + │ │ │ ├── flags: newline, ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :bar @@ -80,6 +95,7 @@ │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ ForwardingArgumentsNode (location: (5,18)-(5,21)) + │ │ │ │ └── flags: ∅ │ │ │ ├── closing_loc: (5,21)-(5,22) = ")" │ │ │ └── block: ∅ │ │ ├── locals: [] @@ -92,11 +108,13 @@ │ ├── opening_loc: (5,0)-(5,1) = "(" │ └── closing_loc: (5,27)-(5,28) = ")" ├── @ DefNode (location: (7,0)-(8,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (7,4)-(7,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (7,8)-(7,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -104,6 +122,7 @@ │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (7,8)-(7,11)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -114,11 +133,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (8,0)-(8,3) = "end" ├── @ DefNode (location: (10,0)-(10,26)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (10,4)-(10,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (10,8)-(10,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -126,12 +147,14 @@ │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (10,8)-(10,11)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (10,13)-(10,21)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (10,13)-(10,21)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -142,6 +165,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ForwardingArgumentsNode (location: (10,17)-(10,20)) + │ │ │ └── flags: ∅ │ │ ├── closing_loc: (10,20)-(10,21) = ")" │ │ └── block: ∅ │ ├── locals: [] @@ -152,11 +176,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (10,23)-(10,26) = "end" ├── @ DefNode (location: (12,0)-(14,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (12,4)-(12,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (12,8)-(12,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (12,8)-(12,9)) │ │ │ ├── flags: ∅ @@ -167,12 +193,14 @@ │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (12,11)-(12,14)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (13,2)-(13,10)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (13,2)-(13,10)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -183,6 +211,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ForwardingArgumentsNode (location: (13,6)-(13,9)) + │ │ │ └── flags: ∅ │ │ ├── closing_loc: (13,9)-(13,10) = ")" │ │ └── block: ∅ │ ├── locals: [:a] @@ -193,11 +222,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (14,0)-(14,3) = "end" ├── @ DefNode (location: (16,0)-(16,29)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (16,4)-(16,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (16,8)-(16,14)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (16,8)-(16,9)) │ │ │ ├── flags: ∅ @@ -208,12 +239,14 @@ │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (16,11)-(16,14)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (16,16)-(16,24)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (16,16)-(16,24)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -224,6 +257,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ForwardingArgumentsNode (location: (16,20)-(16,23)) + │ │ │ └── flags: ∅ │ │ ├── closing_loc: (16,23)-(16,24) = ")" │ │ └── block: ∅ │ ├── locals: [:a] @@ -234,11 +268,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (16,26)-(16,29) = "end" ├── @ DefNode (location: (18,0)-(19,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (18,4)-(18,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (18,8)-(18,21)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 1) │ │ │ └── @ RequiredParameterNode (location: (18,8)-(18,9)) │ │ │ ├── flags: ∅ @@ -251,13 +287,14 @@ │ │ │ ├── operator_loc: (18,13)-(18,14) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (18,15)-(18,16)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (18,18)-(18,21)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: ∅ │ ├── locals: [:a, :b] @@ -268,11 +305,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (19,0)-(19,3) = "end" ├── @ DefNode (location: (21,0)-(23,3)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (21,4)-(21,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (21,8)-(21,18)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (21,8)-(21,13)) @@ -282,19 +321,21 @@ │ │ │ ├── operator_loc: (21,10)-(21,11) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (21,12)-(21,13)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (21,15)-(21,18)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (22,2)-(22,10)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (22,2)-(22,10)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -305,6 +346,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ForwardingArgumentsNode (location: (22,6)-(22,9)) + │ │ │ └── flags: ∅ │ │ ├── closing_loc: (22,9)-(22,10) = ")" │ │ └── block: ∅ │ ├── locals: [:b] @@ -315,11 +357,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (23,0)-(23,3) = "end" ├── @ DefNode (location: (25,0)-(25,33)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (25,4)-(25,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (25,8)-(25,18)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 1) │ │ │ └── @ OptionalParameterNode (location: (25,8)-(25,13)) @@ -329,19 +373,21 @@ │ │ │ ├── operator_loc: (25,10)-(25,11) = "=" │ │ │ └── value: │ │ │ @ IntegerNode (location: (25,12)-(25,13)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── rest: ∅ │ │ ├── posts: (length: 0) │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (25,15)-(25,18)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (25,20)-(25,28)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (25,20)-(25,28)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -352,6 +398,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ForwardingArgumentsNode (location: (25,24)-(25,27)) + │ │ │ └── flags: ∅ │ │ ├── closing_loc: (25,27)-(25,28) = ")" │ │ └── block: ∅ │ ├── locals: [:b] @@ -362,11 +409,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (25,30)-(25,33) = "end" └── @ DefNode (location: (27,0)-(27,28)) + ├── flags: newline ├── name: :foo ├── name_loc: (27,4)-(27,7) = "foo" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (27,8)-(27,14)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (27,8)-(27,9)) │ │ ├── flags: ∅ @@ -377,12 +426,14 @@ │ ├── keywords: (length: 0) │ ├── keyword_rest: │ │ @ ForwardingParameterNode (location: (27,11)-(27,14)) + │ │ └── flags: ∅ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (27,16)-(27,24)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (27,16)-(27,24)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :bar @@ -393,6 +444,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ForwardingArgumentsNode (location: (27,20)-(27,23)) + │ │ └── flags: ∅ │ ├── closing_loc: (27,23)-(27,24) = ")" │ └── block: ∅ ├── locals: [:a] diff --git a/test/prism/snapshots/whitequark/forward_args_legacy.txt b/test/prism/snapshots/whitequark/forward_args_legacy.txt index f46967ba50..6fd9c536e3 100644 --- a/test/prism/snapshots/whitequark/forward_args_legacy.txt +++ b/test/prism/snapshots/whitequark/forward_args_legacy.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(5,29)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(5,29)) + ├── flags: ∅ └── body: (length: 3) ├── @ DefNode (location: (1,0)-(1,27)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (1,4)-(1,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (1,8)-(1,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -16,12 +20,14 @@ │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (1,8)-(1,11)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: │ │ @ StatementsNode (location: (1,14)-(1,22)) + │ │ ├── flags: ∅ │ │ └── body: (length: 1) │ │ └── @ CallNode (location: (1,14)-(1,22)) - │ │ ├── flags: ignore_visibility + │ │ ├── flags: newline, ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :bar @@ -32,6 +38,7 @@ │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ ForwardingArgumentsNode (location: (1,18)-(1,21)) + │ │ │ └── flags: ∅ │ │ ├── closing_loc: (1,21)-(1,22) = ")" │ │ └── block: ∅ │ ├── locals: [] @@ -42,11 +49,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (1,24)-(1,27) = "end" ├── @ DefNode (location: (3,0)-(3,17)) + │ ├── flags: newline │ ├── name: :foo │ ├── name_loc: (3,4)-(3,7) = "foo" │ ├── receiver: ∅ │ ├── parameters: │ │ @ ParametersNode (location: (3,8)-(3,11)) + │ │ ├── flags: ∅ │ │ ├── requireds: (length: 0) │ │ ├── optionals: (length: 0) │ │ ├── rest: ∅ @@ -54,6 +63,7 @@ │ │ ├── keywords: (length: 0) │ │ ├── keyword_rest: │ │ │ @ ForwardingParameterNode (location: (3,8)-(3,11)) + │ │ │ └── flags: ∅ │ │ └── block: ∅ │ ├── body: ∅ │ ├── locals: [] @@ -64,11 +74,13 @@ │ ├── equal_loc: ∅ │ └── end_keyword_loc: (3,14)-(3,17) = "end" └── @ DefNode (location: (5,0)-(5,29)) + ├── flags: newline ├── name: :foo ├── name_loc: (5,4)-(5,7) = "foo" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (5,8)-(5,11)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -76,11 +88,14 @@ │ ├── keywords: (length: 0) │ ├── keyword_rest: │ │ @ ForwardingParameterNode (location: (5,8)-(5,11)) + │ │ └── flags: ∅ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (5,14)-(5,24)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ SuperNode (location: (5,14)-(5,24)) + │ ├── flags: newline │ ├── keyword_loc: (5,14)-(5,19) = "super" │ ├── lparen_loc: (5,19)-(5,20) = "(" │ ├── arguments: @@ -88,6 +103,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ ForwardingArgumentsNode (location: (5,20)-(5,23)) + │ │ └── flags: ∅ │ ├── rparen_loc: (5,23)-(5,24) = ")" │ └── block: ∅ ├── locals: [] diff --git a/test/prism/snapshots/whitequark/forwarded_argument_with_kwrestarg.txt b/test/prism/snapshots/whitequark/forwarded_argument_with_kwrestarg.txt index acaf9c052d..d80ace6fba 100644 --- a/test/prism/snapshots/whitequark/forwarded_argument_with_kwrestarg.txt +++ b/test/prism/snapshots/whitequark/forwarded_argument_with_kwrestarg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,45)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,45)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,45)) + ├── flags: newline ├── name: :foo ├── name_loc: (1,4)-(1,7) = "foo" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,8)-(1,20)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (1,8)-(1,16)) │ │ ├── flags: ∅ @@ -26,9 +30,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,23)-(1,40)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,23)-(1,40)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :bar @@ -39,12 +44,14 @@ │ │ ├── flags: contains_keywords, contains_keyword_splat │ │ └── arguments: (length: 2) │ │ ├── @ LocalVariableReadNode (location: (1,27)-(1,35)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :argument │ │ │ └── depth: 0 │ │ └── @ KeywordHashNode (location: (1,37)-(1,39)) │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocSplatNode (location: (1,37)-(1,39)) + │ │ ├── flags: ∅ │ │ ├── value: ∅ │ │ └── operator_loc: (1,37)-(1,39) = "**" │ ├── closing_loc: (1,39)-(1,40) = ")" diff --git a/test/prism/snapshots/whitequark/forwarded_argument_with_restarg.txt b/test/prism/snapshots/whitequark/forwarded_argument_with_restarg.txt index 367fad7fec..3607930b72 100644 --- a/test/prism/snapshots/whitequark/forwarded_argument_with_restarg.txt +++ b/test/prism/snapshots/whitequark/forwarded_argument_with_restarg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,43)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,43)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,43)) + ├── flags: newline ├── name: :foo ├── name_loc: (1,4)-(1,7) = "foo" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,8)-(1,19)) + │ ├── flags: ∅ │ ├── requireds: (length: 1) │ │ └── @ RequiredParameterNode (location: (1,8)-(1,16)) │ │ ├── flags: ∅ @@ -26,9 +30,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,22)-(1,38)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,22)-(1,38)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :bar @@ -39,9 +44,11 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 2) │ │ ├── @ LocalVariableReadNode (location: (1,26)-(1,34)) + │ │ │ ├── flags: ∅ │ │ │ ├── name: :argument │ │ │ └── depth: 0 │ │ └── @ SplatNode (location: (1,36)-(1,37)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (1,36)-(1,37) = "*" │ │ └── expression: ∅ │ ├── closing_loc: (1,37)-(1,38) = ")" diff --git a/test/prism/snapshots/whitequark/forwarded_kwrestarg.txt b/test/prism/snapshots/whitequark/forwarded_kwrestarg.txt index b4235fb20a..50cc9ca38b 100644 --- a/test/prism/snapshots/whitequark/forwarded_kwrestarg.txt +++ b/test/prism/snapshots/whitequark/forwarded_kwrestarg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,25)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,25)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,25)) + ├── flags: newline ├── name: :foo ├── name_loc: (1,4)-(1,7) = "foo" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,8)-(1,10)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -23,9 +27,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,13)-(1,20)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,13)-(1,20)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :bar @@ -39,6 +44,7 @@ │ │ ├── flags: ∅ │ │ └── elements: (length: 1) │ │ └── @ AssocSplatNode (location: (1,17)-(1,19)) + │ │ ├── flags: ∅ │ │ ├── value: ∅ │ │ └── operator_loc: (1,17)-(1,19) = "**" │ ├── closing_loc: (1,19)-(1,20) = ")" diff --git a/test/prism/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt b/test/prism/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt index 33779abcc1..32ace5cb3d 100644 --- a/test/prism/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt +++ b/test/prism/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,41)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,41)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,41)) + ├── flags: newline ├── name: :foo ├── name_loc: (1,4)-(1,7) = "foo" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,8)-(1,10)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: ∅ @@ -23,9 +27,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,13)-(1,36)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,13)-(1,36)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :bar @@ -39,18 +44,21 @@ │ │ ├── flags: ∅ │ │ └── elements: (length: 2) │ │ ├── @ AssocSplatNode (location: (1,17)-(1,19)) + │ │ │ ├── flags: ∅ │ │ │ ├── value: ∅ │ │ │ └── operator_loc: (1,17)-(1,19) = "**" │ │ └── @ AssocNode (location: (1,21)-(1,35)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (1,21)-(1,30)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (1,21)-(1,29) = "from_foo" │ │ │ ├── closing_loc: (1,29)-(1,30) = ":" │ │ │ └── unescaped: "from_foo" │ │ ├── value: │ │ │ @ TrueNode (location: (1,31)-(1,35)) + │ │ │ └── flags: static_literal │ │ └── operator_loc: ∅ │ ├── closing_loc: (1,35)-(1,36) = ")" │ └── block: ∅ diff --git a/test/prism/snapshots/whitequark/forwarded_restarg.txt b/test/prism/snapshots/whitequark/forwarded_restarg.txt index 17ff8894af..c0bdd05a36 100644 --- a/test/prism/snapshots/whitequark/forwarded_restarg.txt +++ b/test/prism/snapshots/whitequark/forwarded_restarg.txt @@ -1,14 +1,18 @@ @ ProgramNode (location: (1,0)-(1,23)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,23)) + ├── flags: ∅ └── body: (length: 1) └── @ DefNode (location: (1,0)-(1,23)) + ├── flags: newline ├── name: :foo ├── name_loc: (1,4)-(1,7) = "foo" ├── receiver: ∅ ├── parameters: │ @ ParametersNode (location: (1,8)-(1,9)) + │ ├── flags: ∅ │ ├── requireds: (length: 0) │ ├── optionals: (length: 0) │ ├── rest: @@ -23,9 +27,10 @@ │ └── block: ∅ ├── body: │ @ StatementsNode (location: (1,12)-(1,18)) + │ ├── flags: ∅ │ └── body: (length: 1) │ └── @ CallNode (location: (1,12)-(1,18)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :bar @@ -36,6 +41,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ SplatNode (location: (1,16)-(1,17)) + │ │ ├── flags: ∅ │ │ ├── operator_loc: (1,16)-(1,17) = "*" │ │ └── expression: ∅ │ ├── closing_loc: (1,17)-(1,18) = ")" diff --git a/test/prism/snapshots/whitequark/gvar.txt b/test/prism/snapshots/whitequark/gvar.txt index f4401c4389..5191f28e24 100644 --- a/test/prism/snapshots/whitequark/gvar.txt +++ b/test/prism/snapshots/whitequark/gvar.txt @@ -1,7 +1,10 @@ @ ProgramNode (location: (1,0)-(1,4)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,4)) + ├── flags: ∅ └── body: (length: 1) └── @ GlobalVariableReadNode (location: (1,0)-(1,4)) + ├── flags: newline └── name: :$foo diff --git a/test/prism/snapshots/whitequark/gvasgn.txt b/test/prism/snapshots/whitequark/gvasgn.txt index fc044054d8..e5bfe44d18 100644 --- a/test/prism/snapshots/whitequark/gvasgn.txt +++ b/test/prism/snapshots/whitequark/gvasgn.txt @@ -1,13 +1,16 @@ @ ProgramNode (location: (1,0)-(1,9)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,9)) + ├── flags: ∅ └── body: (length: 1) └── @ GlobalVariableWriteNode (location: (1,0)-(1,9)) + ├── flags: newline ├── name: :$var ├── name_loc: (1,0)-(1,4) = "$var" ├── value: │ @ IntegerNode (location: (1,7)-(1,9)) - │ ├── flags: decimal + │ ├── flags: static_literal, decimal │ └── value: 10 └── operator_loc: (1,5)-(1,6) = "=" diff --git a/test/prism/snapshots/whitequark/hash_empty.txt b/test/prism/snapshots/whitequark/hash_empty.txt index 38a2c15a9a..3f6fcdd171 100644 --- a/test/prism/snapshots/whitequark/hash_empty.txt +++ b/test/prism/snapshots/whitequark/hash_empty.txt @@ -1,9 +1,12 @@ @ ProgramNode (location: (1,0)-(1,3)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,3)) + ├── flags: ∅ └── body: (length: 1) └── @ HashNode (location: (1,0)-(1,3)) + ├── flags: newline, static_literal ├── opening_loc: (1,0)-(1,1) = "{" ├── elements: (length: 0) └── closing_loc: (1,2)-(1,3) = "}" diff --git a/test/prism/snapshots/whitequark/hash_hashrocket.txt b/test/prism/snapshots/whitequark/hash_hashrocket.txt index e661a7b048..fcf3fe3055 100644 --- a/test/prism/snapshots/whitequark/hash_hashrocket.txt +++ b/test/prism/snapshots/whitequark/hash_hashrocket.txt @@ -1,39 +1,46 @@ @ ProgramNode (location: (1,0)-(3,25)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,25)) + ├── flags: ∅ └── body: (length: 2) ├── @ HashNode (location: (1,0)-(1,10)) + │ ├── flags: newline, static_literal │ ├── opening_loc: (1,0)-(1,1) = "{" │ ├── elements: (length: 1) │ │ └── @ AssocNode (location: (1,2)-(1,8)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ IntegerNode (location: (1,2)-(1,3)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── value: │ │ │ @ IntegerNode (location: (1,7)-(1,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: (1,4)-(1,6) = "=>" │ └── closing_loc: (1,9)-(1,10) = "}" └── @ HashNode (location: (3,0)-(3,25)) + ├── flags: newline ├── opening_loc: (3,0)-(3,1) = "{" ├── elements: (length: 2) │ ├── @ AssocNode (location: (3,2)-(3,8)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ IntegerNode (location: (3,2)-(3,3)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 1 │ │ ├── value: │ │ │ @ IntegerNode (location: (3,7)-(3,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: (3,4)-(3,6) = "=>" │ └── @ AssocNode (location: (3,10)-(3,23)) + │ ├── flags: ∅ │ ├── key: │ │ @ SymbolNode (location: (3,10)-(3,14)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (3,10)-(3,11) = ":" │ │ ├── value_loc: (3,11)-(3,14) = "foo" │ │ ├── closing_loc: ∅ diff --git a/test/prism/snapshots/whitequark/hash_kwsplat.txt b/test/prism/snapshots/whitequark/hash_kwsplat.txt index a5d12174cc..acccc48b3d 100644 --- a/test/prism/snapshots/whitequark/hash_kwsplat.txt +++ b/test/prism/snapshots/whitequark/hash_kwsplat.txt @@ -1,25 +1,30 @@ @ ProgramNode (location: (1,0)-(1,17)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,17)) + ├── flags: ∅ └── body: (length: 1) └── @ HashNode (location: (1,0)-(1,17)) + ├── flags: newline ├── opening_loc: (1,0)-(1,1) = "{" ├── elements: (length: 2) │ ├── @ AssocNode (location: (1,2)-(1,8)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (1,2)-(1,6)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (1,2)-(1,5) = "foo" │ │ │ ├── closing_loc: (1,5)-(1,6) = ":" │ │ │ └── unescaped: "foo" │ │ ├── value: │ │ │ @ IntegerNode (location: (1,7)-(1,8)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: ∅ │ └── @ AssocSplatNode (location: (1,10)-(1,15)) + │ ├── flags: ∅ │ ├── value: │ │ @ CallNode (location: (1,12)-(1,15)) │ │ ├── flags: variable_call, ignore_visibility diff --git a/test/prism/snapshots/whitequark/hash_label.txt b/test/prism/snapshots/whitequark/hash_label.txt index fdf7a21ed0..b321e21859 100644 --- a/test/prism/snapshots/whitequark/hash_label.txt +++ b/test/prism/snapshots/whitequark/hash_label.txt @@ -1,22 +1,26 @@ @ ProgramNode (location: (1,0)-(1,10)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(1,10)) + ├── flags: ∅ └── body: (length: 1) └── @ HashNode (location: (1,0)-(1,10)) + ├── flags: newline, static_literal ├── opening_loc: (1,0)-(1,1) = "{" ├── elements: (length: 1) │ └── @ AssocNode (location: (1,2)-(1,8)) + │ ├── flags: static_literal │ ├── key: │ │ @ SymbolNode (location: (1,2)-(1,6)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (1,2)-(1,5) = "foo" │ │ ├── closing_loc: (1,5)-(1,6) = ":" │ │ └── unescaped: "foo" │ ├── value: │ │ @ IntegerNode (location: (1,7)-(1,8)) - │ │ ├── flags: decimal + │ │ ├── flags: static_literal, decimal │ │ └── value: 2 │ └── operator_loc: ∅ └── closing_loc: (1,9)-(1,10) = "}" diff --git a/test/prism/snapshots/whitequark/hash_label_end.txt b/test/prism/snapshots/whitequark/hash_label_end.txt index 88b70d38e2..7714021dbb 100644 --- a/test/prism/snapshots/whitequark/hash_label_end.txt +++ b/test/prism/snapshots/whitequark/hash_label_end.txt @@ -1,10 +1,12 @@ @ ProgramNode (location: (1,0)-(5,22)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(5,22)) + ├── flags: ∅ └── body: (length: 3) ├── @ CallNode (location: (1,0)-(1,12)) - │ ├── flags: ignore_visibility + │ ├── flags: newline, ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :f @@ -15,6 +17,7 @@ │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ IfNode (location: (1,2)-(1,11)) + │ │ ├── flags: newline │ │ ├── if_keyword_loc: ∅ │ │ ├── predicate: │ │ │ @ CallNode (location: (1,2)-(1,3)) @@ -30,69 +33,78 @@ │ │ ├── then_keyword_loc: (1,4)-(1,5) = "?" │ │ ├── statements: │ │ │ @ StatementsNode (location: (1,6)-(1,9)) + │ │ │ ├── flags: ∅ │ │ │ └── body: (length: 1) │ │ │ └── @ StringNode (location: (1,6)-(1,9)) - │ │ │ ├── flags: ∅ + │ │ │ ├── flags: newline │ │ │ ├── opening_loc: (1,6)-(1,7) = "\"" │ │ │ ├── content_loc: (1,7)-(1,8) = "a" │ │ │ ├── closing_loc: (1,8)-(1,9) = "\"" │ │ │ └── unescaped: "a" │ │ ├── consequent: │ │ │ @ ElseNode (location: (1,9)-(1,11)) + │ │ │ ├── flags: ∅ │ │ │ ├── else_keyword_loc: (1,9)-(1,10) = ":" │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (1,10)-(1,11)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ IntegerNode (location: (1,10)-(1,11)) - │ │ │ │ ├── flags: decimal + │ │ │ │ ├── flags: newline, static_literal, decimal │ │ │ │ └── value: 1 │ │ │ └── end_keyword_loc: ∅ │ │ └── end_keyword_loc: ∅ │ ├── closing_loc: (1,11)-(1,12) = ")" │ └── block: ∅ ├── @ HashNode (location: (3,0)-(3,12)) + │ ├── flags: newline, static_literal │ ├── opening_loc: (3,0)-(3,1) = "{" │ ├── elements: (length: 1) │ │ └── @ AssocNode (location: (3,2)-(3,10)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (3,2)-(3,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (3,2)-(3,3) = "'" │ │ │ ├── value_loc: (3,3)-(3,6) = "foo" │ │ │ ├── closing_loc: (3,6)-(3,8) = "':" │ │ │ └── unescaped: "foo" │ │ ├── value: │ │ │ @ IntegerNode (location: (3,9)-(3,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: ∅ │ └── closing_loc: (3,11)-(3,12) = "}" └── @ HashNode (location: (5,0)-(5,22)) + ├── flags: newline ├── opening_loc: (5,0)-(5,1) = "{" ├── elements: (length: 2) │ ├── @ AssocNode (location: (5,2)-(5,10)) + │ │ ├── flags: static_literal │ │ ├── key: │ │ │ @ SymbolNode (location: (5,2)-(5,8)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: (5,2)-(5,3) = "'" │ │ │ ├── value_loc: (5,3)-(5,6) = "foo" │ │ │ ├── closing_loc: (5,6)-(5,8) = "':" │ │ │ └── unescaped: "foo" │ │ ├── value: │ │ │ @ IntegerNode (location: (5,9)-(5,10)) - │ │ │ ├── flags: decimal + │ │ │ ├── flags: static_literal, decimal │ │ │ └── value: 2 │ │ └── operator_loc: ∅ │ └── @ AssocNode (location: (5,12)-(5,21)) + │ ├── flags: ∅ │ ├── key: │ │ @ SymbolNode (location: (5,12)-(5,18)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: (5,12)-(5,13) = "'" │ │ ├── value_loc: (5,13)-(5,16) = "bar" │ │ ├── closing_loc: (5,16)-(5,18) = "':" │ │ └── unescaped: "bar" │ ├── value: │ │ @ HashNode (location: (5,19)-(5,21)) + │ │ ├── flags: static_literal │ │ ├── opening_loc: (5,19)-(5,20) = "{" │ │ ├── elements: (length: 0) │ │ └── closing_loc: (5,20)-(5,21) = "}" diff --git a/test/prism/snapshots/whitequark/hash_pair_value_omission.txt b/test/prism/snapshots/whitequark/hash_pair_value_omission.txt index 455ba48407..d87b1ef0f9 100644 --- a/test/prism/snapshots/whitequark/hash_pair_value_omission.txt +++ b/test/prism/snapshots/whitequark/hash_pair_value_omission.txt @@ -1,39 +1,48 @@ @ ProgramNode (location: (1,0)-(5,7)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(5,7)) + ├── flags: ∅ └── body: (length: 3) ├── @ HashNode (location: (1,0)-(1,6)) + │ ├── flags: newline │ ├── opening_loc: (1,0)-(1,1) = "{" │ ├── elements: (length: 1) │ │ └── @ AssocNode (location: (1,1)-(1,5)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (1,1)-(1,5)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (1,1)-(1,4) = "BAR" │ │ │ ├── closing_loc: (1,4)-(1,5) = ":" │ │ │ └── unescaped: "BAR" │ │ ├── value: │ │ │ @ ImplicitNode (location: (1,1)-(1,5)) + │ │ │ ├── flags: ∅ │ │ │ └── value: │ │ │ @ ConstantReadNode (location: (1,1)-(1,5)) + │ │ │ ├── flags: ∅ │ │ │ └── name: :BAR │ │ └── operator_loc: ∅ │ └── closing_loc: (1,5)-(1,6) = "}" ├── @ HashNode (location: (3,0)-(3,8)) + │ ├── flags: newline │ ├── opening_loc: (3,0)-(3,1) = "{" │ ├── elements: (length: 2) │ │ ├── @ AssocNode (location: (3,1)-(3,3)) + │ │ │ ├── flags: ∅ │ │ │ ├── key: │ │ │ │ @ SymbolNode (location: (3,1)-(3,3)) - │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ │ ├── opening_loc: ∅ │ │ │ │ ├── value_loc: (3,1)-(3,2) = "a" │ │ │ │ ├── closing_loc: (3,2)-(3,3) = ":" │ │ │ │ └── unescaped: "a" │ │ │ ├── value: │ │ │ │ @ ImplicitNode (location: (3,1)-(3,3)) + │ │ │ │ ├── flags: ∅ │ │ │ │ └── value: │ │ │ │ @ CallNode (location: (3,1)-(3,3)) │ │ │ │ ├── flags: ignore_visibility @@ -47,15 +56,17 @@ │ │ │ │ └── block: ∅ │ │ │ └── operator_loc: ∅ │ │ └── @ AssocNode (location: (3,5)-(3,7)) + │ │ ├── flags: ∅ │ │ ├── key: │ │ │ @ SymbolNode (location: (3,5)-(3,7)) - │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ │ ├── opening_loc: ∅ │ │ │ ├── value_loc: (3,5)-(3,6) = "b" │ │ │ ├── closing_loc: (3,6)-(3,7) = ":" │ │ │ └── unescaped: "b" │ │ ├── value: │ │ │ @ ImplicitNode (location: (3,5)-(3,7)) + │ │ │ ├── flags: ∅ │ │ │ └── value: │ │ │ @ CallNode (location: (3,5)-(3,7)) │ │ │ ├── flags: ignore_visibility @@ -70,18 +81,21 @@ │ │ └── operator_loc: ∅ │ └── closing_loc: (3,7)-(3,8) = "}" └── @ HashNode (location: (5,0)-(5,7)) + ├── flags: newline ├── opening_loc: (5,0)-(5,1) = "{" ├── elements: (length: 1) │ └── @ AssocNode (location: (5,1)-(5,6)) + │ ├── flags: ∅ │ ├── key: │ │ @ SymbolNode (location: (5,1)-(5,6)) - │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── flags: static_literal, forced_us_ascii_encoding │ │ ├── opening_loc: ∅ │ │ ├── value_loc: (5,1)-(5,5) = "puts" │ │ ├── closing_loc: (5,5)-(5,6) = ":" │ │ └── unescaped: "puts" │ ├── value: │ │ @ ImplicitNode (location: (5,1)-(5,6)) + │ │ ├── flags: ∅ │ │ └── value: │ │ @ CallNode (location: (5,1)-(5,6)) │ │ ├── flags: ignore_visibility diff --git a/test/prism/snapshots/whitequark/heredoc.txt b/test/prism/snapshots/whitequark/heredoc.txt index 86543097ee..76b3e94a92 100644 --- a/test/prism/snapshots/whitequark/heredoc.txt +++ b/test/prism/snapshots/whitequark/heredoc.txt @@ -1,22 +1,24 @@ @ ProgramNode (location: (1,0)-(11,8)) +├── flags: ∅ ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(11,8)) + ├── flags: ∅ └── body: (length: 3) ├── @ StringNode (location: (1,0)-(1,8)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (1,0)-(1,8) = "<<'HERE'" │ ├── content_loc: (2,0)-(4,0) = "foo\nbar\n" │ ├── closing_loc: (4,0)-(5,0) = "HERE\n" │ └── unescaped: "foo\nbar\n" ├── @ StringNode (location: (6,0)-(6,6)) - │ ├── flags: ∅ + │ ├── flags: newline │ ├── opening_loc: (6,0)-(6,6) = "<